X : 
-ALL: Block.box(0, 0, 14.45, 16, 16, 16)

PC:
-FOOT: Stream.of(
Block.box(4, 0, 14, 12, 16, 16),
Block.box(12, 8, 14, 16, 14, 16),
Block.box(0, 8, 14, 4, 14, 16)
).reduce((v1, v2) -> Shapes.join(v1, v2, BooleanOp.OR)).get();
-HEAD: Block.box(4, 0, 14, 12, 16, 16)
-RIGHT: Block.box(9, 8, 14, 16, 14, 16)
-LEFT: Block.box(0, 8, 14, 7, 14, 16)

C:
-FOOT: Block.box(4, 0, 14, 12, 16, 16)
-HEAD: Stream.of(
Block.box(4, 2, 14, 12, 8, 16),
Block.box(4, 8, 14, 12, 16, 16),
Block.box(4, 0, 14, 12, 2, 16),
Block.box(12, 2, 14, 16, 8, 16),
Block.box(0, 2, 14, 4, 8, 16)
).reduce((v1, v2) -> Shapes.join(v1, v2, BooleanOp.OR)).get();
-LEFT: Block.box(0, 2, 14, 7, 8, 16)
-RIGHT:Block.box(9, 2, 14, 16, 8, 16)