diff --git a/mappings/net/minecraft/block/AmethystClusterBlock.mapping b/mappings/net/minecraft/block/AmethystClusterBlock.mapping
index 8e391e9779..fb812217ee 100644
--- a/mappings/net/minecraft/block/AmethystClusterBlock.mapping
+++ b/mappings/net/minecraft/block/AmethystClusterBlock.mapping
@@ -4,7 +4,7 @@ CLASS net/minecraft/class_5542 net/minecraft/block/AmethystClusterBlock
 	FIELD field_46255 CODEC Lcom/mojang/serialization/MapCodec;
 	FIELD field_46256 height F
 	FIELD field_55728 width F
-	FIELD field_55729 shapesByDirections Ljava/util/Map;
+	FIELD field_55729 shapesByDirection Ljava/util/Map;
 	METHOD <init> (FFLnet/minecraft/class_4970$class_2251;)V
 		ARG 1 height
 		ARG 2 width
diff --git a/mappings/net/minecraft/block/AnvilBlock.mapping b/mappings/net/minecraft/block/AnvilBlock.mapping
index e895129a45..9c941258a6 100644
--- a/mappings/net/minecraft/block/AnvilBlock.mapping
+++ b/mappings/net/minecraft/block/AnvilBlock.mapping
@@ -3,7 +3,7 @@ CLASS net/minecraft/class_2199 net/minecraft/block/AnvilBlock
 	FIELD field_30993 FALLING_BLOCK_ENTITY_DAMAGE_MULTIPLIER F
 	FIELD field_30994 FALLING_BLOCK_ENTITY_MAX_DAMAGE I
 	FIELD field_46258 CODEC Lcom/mojang/serialization/MapCodec;
-	FIELD field_55730 SHAPES_BY_AXES Ljava/util/Map;
+	FIELD field_55730 SHAPES_BY_AXIS Ljava/util/Map;
 	FIELD field_9883 FACING Lnet/minecraft/class_2754;
 	METHOD method_17453 (Lnet/minecraft/class_1937;Lnet/minecraft/class_2338;ILnet/minecraft/class_1661;Lnet/minecraft/class_1657;)Lnet/minecraft/class_1703;
 		ARG 2 syncId
diff --git a/mappings/net/minecraft/block/AttachedStemBlock.mapping b/mappings/net/minecraft/block/AttachedStemBlock.mapping
index 97a1d57416..6a7a55971b 100644
--- a/mappings/net/minecraft/block/AttachedStemBlock.mapping
+++ b/mappings/net/minecraft/block/AttachedStemBlock.mapping
@@ -3,7 +3,7 @@ CLASS net/minecraft/class_2195 net/minecraft/block/AttachedStemBlock
 	FIELD field_46259 CODEC Lcom/mojang/serialization/MapCodec;
 	FIELD field_46260 stemBlock Lnet/minecraft/class_5321;
 	FIELD field_9873 FACING Lnet/minecraft/class_2754;
-	FIELD field_9874 FACING_TO_SHAPE Ljava/util/Map;
+	FIELD field_9874 SHAPES_BY_DIRECTION Ljava/util/Map;
 	FIELD field_9875 gourdBlock Lnet/minecraft/class_5321;
 	METHOD <init> (Lnet/minecraft/class_5321;Lnet/minecraft/class_5321;Lnet/minecraft/class_5321;Lnet/minecraft/class_4970$class_2251;)V
 		ARG 1 stemBlock
diff --git a/mappings/net/minecraft/block/BedBlock.mapping b/mappings/net/minecraft/block/BedBlock.mapping
index 98c04933ee..b0a618355b 100644
--- a/mappings/net/minecraft/block/BedBlock.mapping
+++ b/mappings/net/minecraft/block/BedBlock.mapping
@@ -1,6 +1,6 @@
 CLASS net/minecraft/class_2244 net/minecraft/block/BedBlock
 	FIELD field_46273 CODEC Lcom/mojang/serialization/MapCodec;
-	FIELD field_55732 SHAPES_BY_AXES Ljava/util/Map;
+	FIELD field_55732 SHAPES_BY_DIRECTION Ljava/util/Map;
 	FIELD field_9966 color Lnet/minecraft/class_1767;
 	FIELD field_9967 PART Lnet/minecraft/class_2754;
 	FIELD field_9968 OCCUPIED Lnet/minecraft/class_2746;
diff --git a/mappings/net/minecraft/block/BeetrootsBlock.mapping b/mappings/net/minecraft/block/BeetrootsBlock.mapping
index bcc5958c38..483730a82a 100644
--- a/mappings/net/minecraft/block/BeetrootsBlock.mapping
+++ b/mappings/net/minecraft/block/BeetrootsBlock.mapping
@@ -1,5 +1,7 @@
 CLASS net/minecraft/class_2242 net/minecraft/block/BeetrootsBlock
 	FIELD field_31013 BEETROOTS_MAX_AGE I
 	FIELD field_46275 CODEC Lcom/mojang/serialization/MapCodec;
-	FIELD field_9961 AGE_TO_SHAPE [Lnet/minecraft/class_265;
+	FIELD field_9961 SHAPES_BY_AGE [Lnet/minecraft/class_265;
 	FIELD field_9962 AGE Lnet/minecraft/class_2758;
+	METHOD method_66390 (I)Lnet/minecraft/class_265;
+		ARG 0 age
diff --git a/mappings/net/minecraft/block/BellBlock.mapping b/mappings/net/minecraft/block/BellBlock.mapping
index bc04870bca..26094e34f8 100644
--- a/mappings/net/minecraft/block/BellBlock.mapping
+++ b/mappings/net/minecraft/block/BellBlock.mapping
@@ -2,9 +2,12 @@ CLASS net/minecraft/class_3709 net/minecraft/block/BellBlock
 	FIELD field_16324 FACING Lnet/minecraft/class_2754;
 	FIELD field_16326 ATTACHMENT Lnet/minecraft/class_2754;
 	FIELD field_17089 BELL_SHAPE Lnet/minecraft/class_265;
-	FIELD field_17094 HANGING_SHAPE Lnet/minecraft/class_265;
+	FIELD field_17094 CEILING_SHAPE Lnet/minecraft/class_265;
 	FIELD field_20648 POWERED Lnet/minecraft/class_2746;
 	FIELD field_46276 CODEC Lcom/mojang/serialization/MapCodec;
+	FIELD field_55733 SINGLE_WALL_SHAPES Ljava/util/Map;
+	FIELD field_55734 FLOOR_SHAPES Ljava/util/Map;
+	FIELD field_55735 DOUBLE_WALL_SHAPES Ljava/util/Map;
 	METHOD method_16115 getPlacementSide (Lnet/minecraft/class_2680;)Lnet/minecraft/class_2350;
 		ARG 0 state
 	METHOD method_16116 getShape (Lnet/minecraft/class_2680;)Lnet/minecraft/class_265;
diff --git a/mappings/net/minecraft/block/BigDripleafBlock.mapping b/mappings/net/minecraft/block/BigDripleafBlock.mapping
index 3560f424d6..f2fc0b089b 100644
--- a/mappings/net/minecraft/block/BigDripleafBlock.mapping
+++ b/mappings/net/minecraft/block/BigDripleafBlock.mapping
@@ -3,8 +3,8 @@ CLASS net/minecraft/class_5801 net/minecraft/block/BigDripleafBlock
 	FIELD field_28661 TILT Lnet/minecraft/class_2754;
 	FIELD field_28662 NEXT_TILT_DELAYS Lit/unimi/dsi/fastutil/objects/Object2IntMap;
 	FIELD field_46277 CODEC Lcom/mojang/serialization/MapCodec;
-	FIELD field_55736 SHAPES_BY_TILTS Ljava/util/Map;
-	FIELD field_55737 shapeGetter Ljava/util/function/Function;
+	FIELD field_55736 SHAPES_BY_TILT Ljava/util/Map;
+	FIELD field_55737 shapeFunction Ljava/util/function/Function;
 	METHOD method_33601 playTiltSound (Lnet/minecraft/class_1937;Lnet/minecraft/class_2338;Lnet/minecraft/class_3414;)V
 		ARG 0 world
 		ARG 1 pos
@@ -45,4 +45,6 @@ CLASS net/minecraft/class_5801 net/minecraft/block/BigDripleafBlock
 		ARG 3 direction
 	METHOD method_33727 canGrowInto (Lnet/minecraft/class_2680;)Z
 		ARG 0 state
-	METHOD method_66392 getShapeGetter ()Ljava/util/function/Function;
+	METHOD method_66391 (Ljava/util/Map;Lnet/minecraft/class_2680;)Lnet/minecraft/class_265;
+		ARG 1 state
+	METHOD method_66392 createShapeFunction ()Ljava/util/function/Function;
diff --git a/mappings/net/minecraft/block/BigDripleafStemBlock.mapping b/mappings/net/minecraft/block/BigDripleafStemBlock.mapping
index ebd43c005f..cb8cb60ee0 100644
--- a/mappings/net/minecraft/block/BigDripleafStemBlock.mapping
+++ b/mappings/net/minecraft/block/BigDripleafStemBlock.mapping
@@ -1,7 +1,7 @@
 CLASS net/minecraft/class_5802 net/minecraft/block/BigDripleafStemBlock
 	FIELD field_28667 WATERLOGGED Lnet/minecraft/class_2746;
 	FIELD field_46278 CODEC Lcom/mojang/serialization/MapCodec;
-	FIELD field_55738 SHAPES_BY_DIRECTIONS Ljava/util/Map;
+	FIELD field_55738 SHAPES_BY_DIRECTION Ljava/util/Map;
 	METHOD method_33728 placeStemAt (Lnet/minecraft/class_1936;Lnet/minecraft/class_2338;Lnet/minecraft/class_3610;Lnet/minecraft/class_2350;)Z
 		ARG 0 world
 		ARG 1 pos
diff --git a/mappings/net/minecraft/block/Block.mapping b/mappings/net/minecraft/block/Block.mapping
index 2d717e3087..c0b169b4a5 100644
--- a/mappings/net/minecraft/block/Block.mapping
+++ b/mappings/net/minecraft/block/Block.mapping
@@ -89,7 +89,7 @@ CLASS net/minecraft/class_2248 net/minecraft/block/Block
 		ARG 2 player
 		ARG 3 pos
 		ARG 4 state
-	METHOD method_33615 getShapesForStates (Ljava/util/function/Function;)Ljava/util/function/Function;
+	METHOD method_33615 createShapeFunction (Ljava/util/function/Function;)Ljava/util/function/Function;
 		ARG 1 stateToShape
 	METHOD method_34724 copyProperty (Lnet/minecraft/class_2680;Lnet/minecraft/class_2680;Lnet/minecraft/class_2769;)Lnet/minecraft/class_2680;
 		ARG 0 source
@@ -121,6 +121,54 @@ CLASS net/minecraft/class_2248 net/minecraft/block/Block
 		ARG 3 tool
 			COMMENT the tool used to break the block, or {@link ItemStack#EMPTY} for explosions
 		ARG 4 experience
+	METHOD method_66393 createCubeShape (D)Lnet/minecraft/class_265;
+		ARG 0 size
+	METHOD method_66394 createCuboidShape (DDD)Lnet/minecraft/class_265;
+		ARG 0 sizeX
+		ARG 2 sizeY
+		ARG 4 sizeZ
+	METHOD method_66395 createColumnShape (DDDD)Lnet/minecraft/class_265;
+		ARG 0 sizeX
+		ARG 2 sizeZ
+		ARG 4 minY
+		ARG 6 maxY
+	METHOD method_66396 createCuboidZShape (DDDDD)Lnet/minecraft/class_265;
+		ARG 0 sizeX
+		ARG 2 minY
+		ARG 4 maxY
+		ARG 6 minZ
+		ARG 8 maxZ
+	METHOD method_66397 createShapeArray (ILjava/util/function/IntFunction;)[Lnet/minecraft/class_265;
+		ARG 0 size
+		ARG 1 indexToShape
+	METHOD method_66399 applyValueToState (Lnet/minecraft/class_2688;Lnet/minecraft/class_2769;Ljava/lang/Object;)Lnet/minecraft/class_2688;
+		ARG 0 state
+		ARG 1 property
+		ARG 2 value
+	METHOD method_66400 (Lnet/minecraft/class_2769;)Ljava/lang/Object;
+		ARG 0 property
+	METHOD method_66401 (Ljava/util/Map;Lcom/google/common/collect/ImmutableMap;Lnet/minecraft/class_2680;)Lnet/minecraft/class_265;
+		ARG 2 state
+	METHOD method_66402 (Ljava/util/Map;Lnet/minecraft/class_2680;)Z
+		ARG 1 state
+	METHOD method_66403 createShapeFunction (Ljava/util/function/Function;[Lnet/minecraft/class_2769;)Ljava/util/function/Function;
+		ARG 1 stateToShape
+		ARG 2 properties
+	METHOD method_66404 createColumnShape (DDD)Lnet/minecraft/class_265;
+		ARG 0 sizeXz
+		ARG 2 minY
+		ARG 4 maxY
+	METHOD method_66405 createCuboidZShape (DDDD)Lnet/minecraft/class_265;
+		ARG 0 sizeX
+		ARG 2 sizeY
+		ARG 4 minZ
+		ARG 6 maxZ
+	METHOD method_66407 (Lnet/minecraft/class_2769;)Lnet/minecraft/class_2769;
+		ARG 0 property
+	METHOD method_66408 createCuboidZShape (DDD)Lnet/minecraft/class_265;
+		ARG 0 sizeXy
+		ARG 2 minZ
+		ARG 4 maxZ
 	METHOD method_9496 randomDisplayTick (Lnet/minecraft/class_2680;Lnet/minecraft/class_1937;Lnet/minecraft/class_2338;Lnet/minecraft/class_5819;)V
 		COMMENT Called randomly on the client. Blocks may override this to spawn particles.
 		COMMENT Unlike {@link AbstractBlock#randomTick} this is not affected by a game rule.
diff --git a/mappings/net/minecraft/block/ButtonBlock.mapping b/mappings/net/minecraft/block/ButtonBlock.mapping
index 514dc87af2..03ceca707c 100644
--- a/mappings/net/minecraft/block/ButtonBlock.mapping
+++ b/mappings/net/minecraft/block/ButtonBlock.mapping
@@ -3,7 +3,7 @@ CLASS net/minecraft/class_2269 net/minecraft/block/ButtonBlock
 	FIELD field_40298 pressTicks I
 	FIELD field_42753 blockSetType Lnet/minecraft/class_8177;
 	FIELD field_46293 CODEC Lcom/mojang/serialization/MapCodec;
-	FIELD field_55743 shapeGetter Ljava/util/function/Function;
+	FIELD field_55743 shapeFunction Ljava/util/function/Function;
 	METHOD <init> (Lnet/minecraft/class_8177;ILnet/minecraft/class_4970$class_2251;)V
 		ARG 1 blockSetType
 		ARG 2 pressTicks
@@ -19,10 +19,14 @@ CLASS net/minecraft/class_2269 net/minecraft/block/ButtonBlock
 		ARG 0 block
 	METHOD method_53985 (Lnet/minecraft/class_2269;)Lnet/minecraft/class_8177;
 		ARG 0 block
-	METHOD method_66419 getShapeGetter ()Ljava/util/function/Function;
+	METHOD method_66418 (Ljava/util/Map;Lnet/minecraft/class_265;Lnet/minecraft/class_265;Lnet/minecraft/class_2680;)Lnet/minecraft/class_265;
+		ARG 3 state
+	METHOD method_66419 createShapeFunction ()Ljava/util/function/Function;
 	METHOD method_9712 getClickSound (Z)Lnet/minecraft/class_3414;
 		ARG 1 powered
 	METHOD method_9713 updateNeighbors (Lnet/minecraft/class_2680;Lnet/minecraft/class_1937;Lnet/minecraft/class_2338;)V
+		ARG 1 state
+		ARG 2 world
 		ARG 3 pos
 	METHOD method_9714 playClickSound (Lnet/minecraft/class_1657;Lnet/minecraft/class_1936;Lnet/minecraft/class_2338;Z)V
 		ARG 1 player
diff --git a/mappings/net/minecraft/block/CakeBlock.mapping b/mappings/net/minecraft/block/CakeBlock.mapping
index 36baac6810..0a00ca747d 100644
--- a/mappings/net/minecraft/block/CakeBlock.mapping
+++ b/mappings/net/minecraft/block/CakeBlock.mapping
@@ -1,11 +1,13 @@
 CLASS net/minecraft/class_2272 net/minecraft/block/CakeBlock
-	FIELD field_10738 BITES_TO_SHAPE [Lnet/minecraft/class_265;
+	FIELD field_10738 SHAPES_BY_BITES [Lnet/minecraft/class_265;
 	FIELD field_10739 BITES Lnet/minecraft/class_2758;
 	FIELD field_27173 DEFAULT_COMPARATOR_OUTPUT I
 	FIELD field_31046 MAX_BITES I
 	FIELD field_46295 CODEC Lcom/mojang/serialization/MapCodec;
 	METHOD method_31627 getComparatorOutput (I)I
 		ARG 0 bites
+	METHOD method_66420 (I)Lnet/minecraft/class_265;
+		ARG 0 bites
 	METHOD method_9719 tryEat (Lnet/minecraft/class_1936;Lnet/minecraft/class_2338;Lnet/minecraft/class_2680;Lnet/minecraft/class_1657;)Lnet/minecraft/class_1269;
 		ARG 0 world
 		ARG 1 pos
diff --git a/mappings/net/minecraft/block/CandleBlock.mapping b/mappings/net/minecraft/block/CandleBlock.mapping
index ca0b571e54..37ce9d765a 100644
--- a/mappings/net/minecraft/block/CandleBlock.mapping
+++ b/mappings/net/minecraft/block/CandleBlock.mapping
@@ -6,6 +6,7 @@ CLASS net/minecraft/class_5544 net/minecraft/block/CandleBlock
 	FIELD field_27178 CANDLES_TO_PARTICLE_OFFSETS Lit/unimi/dsi/fastutil/ints/Int2ObjectMap;
 	FIELD field_31051 MAX_CANDLE_AMOUNT I
 	FIELD field_46298 CODEC Lcom/mojang/serialization/MapCodec;
+	FIELD field_55744 SHAPES_BY_CANDLES [Lnet/minecraft/class_265;
 	METHOD method_31628 (Lnet/minecraft/class_4970$class_4971;)Z
 		ARG 0 statex
 	METHOD method_31630 canBeLit (Lnet/minecraft/class_2680;)Z
diff --git a/mappings/net/minecraft/block/CarrotsBlock.mapping b/mappings/net/minecraft/block/CarrotsBlock.mapping
index ce812090af..6ae4c7b9aa 100644
--- a/mappings/net/minecraft/block/CarrotsBlock.mapping
+++ b/mappings/net/minecraft/block/CarrotsBlock.mapping
@@ -1,3 +1,5 @@
 CLASS net/minecraft/class_2271 net/minecraft/block/CarrotsBlock
-	FIELD field_10737 AGE_TO_SHAPE [Lnet/minecraft/class_265;
+	FIELD field_10737 SHAPES_BY_AGE [Lnet/minecraft/class_265;
 	FIELD field_46302 CODEC Lcom/mojang/serialization/MapCodec;
+	METHOD method_66422 (I)Lnet/minecraft/class_265;
+		ARG 0 age
diff --git a/mappings/net/minecraft/block/ChainBlock.mapping b/mappings/net/minecraft/block/ChainBlock.mapping
index 3fc96c4b75..7b1f7e4b14 100644
--- a/mappings/net/minecraft/block/ChainBlock.mapping
+++ b/mappings/net/minecraft/block/ChainBlock.mapping
@@ -1,4 +1,4 @@
 CLASS net/minecraft/class_5172 net/minecraft/block/ChainBlock
 	FIELD field_24411 WATERLOGGED Lnet/minecraft/class_2746;
 	FIELD field_46309 CODEC Lcom/mojang/serialization/MapCodec;
-	FIELD field_55746 SHAPES_BY_AXES Ljava/util/Map;
+	FIELD field_55746 SHAPES_BY_AXIS Ljava/util/Map;
diff --git a/mappings/net/minecraft/block/ChestBlock.mapping b/mappings/net/minecraft/block/ChestBlock.mapping
index 8f8647788c..b5bf5ee0a5 100644
--- a/mappings/net/minecraft/block/ChestBlock.mapping
+++ b/mappings/net/minecraft/block/ChestBlock.mapping
@@ -6,7 +6,7 @@ CLASS net/minecraft/class_2281 net/minecraft/block/ChestBlock
 	FIELD field_17357 NAME_RETRIEVER Lnet/minecraft/class_4732$class_3923;
 	FIELD field_46311 CODEC Lcom/mojang/serialization/MapCodec;
 	FIELD field_55747 SINGLE_SHAPE Lnet/minecraft/class_265;
-	FIELD field_55748 DOUBLE_SHAPES_BY_DIRECTIONS Ljava/util/Map;
+	FIELD field_55748 DOUBLE_SHAPES_BY_DIRECTION Ljava/util/Map;
 	METHOD <init> (Ljava/util/function/Supplier;Lnet/minecraft/class_4970$class_2251;)V
 		ARG 1 blockEntityTypeSupplier
 		ARG 2 settings
diff --git a/mappings/net/minecraft/block/CocoaBlock.mapping b/mappings/net/minecraft/block/CocoaBlock.mapping
index 20b016cd12..c351b929c2 100644
--- a/mappings/net/minecraft/block/CocoaBlock.mapping
+++ b/mappings/net/minecraft/block/CocoaBlock.mapping
@@ -3,3 +3,5 @@ CLASS net/minecraft/class_2282 net/minecraft/block/CocoaBlock
 	FIELD field_31061 MAX_AGE I
 	FIELD field_46315 CODEC Lcom/mojang/serialization/MapCodec;
 	FIELD field_55749 SHAPES Ljava/util/List;
+	METHOD method_66424 (I)Ljava/util/Map;
+		ARG 0 age
diff --git a/mappings/net/minecraft/block/ComposterBlock.mapping b/mappings/net/minecraft/block/ComposterBlock.mapping
index 5eaaab34f2..2fecb32e15 100644
--- a/mappings/net/minecraft/block/ComposterBlock.mapping
+++ b/mappings/net/minecraft/block/ComposterBlock.mapping
@@ -1,7 +1,7 @@
 CLASS net/minecraft/class_3962 net/minecraft/block/ComposterBlock
 	FIELD field_17565 LEVEL Lnet/minecraft/class_2758;
 	FIELD field_17566 ITEM_TO_LEVEL_INCREASE_CHANCE Lit/unimi/dsi/fastutil/objects/Object2FloatMap;
-	FIELD field_17568 LEVEL_TO_COLLISION_SHAPE [Lnet/minecraft/class_265;
+	FIELD field_17568 COLLISION_SHAPES_BY_LEVEL [Lnet/minecraft/class_265;
 	FIELD field_31071 NUM_LEVELS I
 	FIELD field_31072 MIN_LEVEL I
 	FIELD field_31073 MAX_LEVEL I
@@ -36,6 +36,8 @@ CLASS net/minecraft/class_3962 net/minecraft/block/ComposterBlock
 		ARG 1 state
 		ARG 2 world
 		ARG 3 pos
+	METHOD method_66425 (I)Lnet/minecraft/class_265;
+		ARG 0 level
 	CLASS class_3925 DummyInventory
 	CLASS class_3963 ComposterInventory
 		FIELD field_17569 state Lnet/minecraft/class_2680;
diff --git a/mappings/net/minecraft/block/ConnectingBlock.mapping b/mappings/net/minecraft/block/ConnectingBlock.mapping
index e48e91c3a5..3e2473de40 100644
--- a/mappings/net/minecraft/block/ConnectingBlock.mapping
+++ b/mappings/net/minecraft/block/ConnectingBlock.mapping
@@ -6,8 +6,11 @@ CLASS net/minecraft/class_2429 net/minecraft/block/ConnectingBlock
 	FIELD field_11331 SOUTH Lnet/minecraft/class_2746;
 	FIELD field_11332 NORTH Lnet/minecraft/class_2746;
 	FIELD field_11335 EAST Lnet/minecraft/class_2746;
+	FIELD field_55782 shapeFunction Ljava/util/function/Function;
 	METHOD <init> (FLnet/minecraft/class_4970$class_2251;)V
 		ARG 1 radius
 		ARG 2 settings
-	METHOD method_10370 generateFacingsToShapeMap (F)Ljava/util/function/Function;
+	METHOD method_10370 createShapeFunction (F)Ljava/util/function/Function;
 		ARG 1 radius
+	METHOD method_66457 (Lnet/minecraft/class_265;Ljava/util/Map;Lnet/minecraft/class_2680;)Lnet/minecraft/class_265;
+		ARG 2 state
diff --git a/mappings/net/minecraft/block/CropBlock.mapping b/mappings/net/minecraft/block/CropBlock.mapping
index ad7555084c..666c10c258 100644
--- a/mappings/net/minecraft/block/CropBlock.mapping
+++ b/mappings/net/minecraft/block/CropBlock.mapping
@@ -1,11 +1,13 @@
 CLASS net/minecraft/class_2302 net/minecraft/block/CropBlock
 	FIELD field_10835 AGE Lnet/minecraft/class_2758;
-	FIELD field_10836 AGE_TO_SHAPE [Lnet/minecraft/class_265;
+	FIELD field_10836 SHAPES_BY_AGE [Lnet/minecraft/class_265;
 	FIELD field_31079 MAX_AGE I
 	FIELD field_46329 CODEC Lcom/mojang/serialization/MapCodec;
 	METHOD method_52572 hasEnoughLightAt (Lnet/minecraft/class_4538;Lnet/minecraft/class_2338;)Z
 		ARG 0 world
 		ARG 1 pos
+	METHOD method_66427 (I)Lnet/minecraft/class_265;
+		ARG 0 age
 	METHOD method_9824 getAgeProperty ()Lnet/minecraft/class_2758;
 	METHOD method_9825 isMature (Lnet/minecraft/class_2680;)Z
 		ARG 1 state
diff --git a/mappings/net/minecraft/block/DeadCoralWallFanBlock.mapping b/mappings/net/minecraft/block/DeadCoralWallFanBlock.mapping
index 239a86b8ce..321df1aed4 100644
--- a/mappings/net/minecraft/block/DeadCoralWallFanBlock.mapping
+++ b/mappings/net/minecraft/block/DeadCoralWallFanBlock.mapping
@@ -1,4 +1,4 @@
 CLASS net/minecraft/class_2222 net/minecraft/block/DeadCoralWallFanBlock
 	FIELD field_46269 CODEC Lcom/mojang/serialization/MapCodec;
 	FIELD field_9933 FACING Lnet/minecraft/class_2754;
-	FIELD field_9934 FACING_TO_SHAPE Ljava/util/Map;
+	FIELD field_9934 SHAPES_BY_DIRECTION Ljava/util/Map;
diff --git a/mappings/net/minecraft/block/DoorBlock.mapping b/mappings/net/minecraft/block/DoorBlock.mapping
index c9c47ca38c..2fd2b9289d 100644
--- a/mappings/net/minecraft/block/DoorBlock.mapping
+++ b/mappings/net/minecraft/block/DoorBlock.mapping
@@ -6,6 +6,7 @@ CLASS net/minecraft/class_2323 net/minecraft/block/DoorBlock
 	FIELD field_10946 HALF Lnet/minecraft/class_2754;
 	FIELD field_42757 blockSetType Lnet/minecraft/class_8177;
 	FIELD field_46337 CODEC Lcom/mojang/serialization/MapCodec;
+	FIELD field_55753 SHAPES_BY_DIRECTION Ljava/util/Map;
 	METHOD <init> (Lnet/minecraft/class_8177;Lnet/minecraft/class_4970$class_2251;)V
 		ARG 1 type
 		ARG 2 settings
diff --git a/mappings/net/minecraft/block/DoubleBlockProperties.mapping b/mappings/net/minecraft/block/DoubleBlockProperties.mapping
index 7998460c54..63213025b5 100644
--- a/mappings/net/minecraft/block/DoubleBlockProperties.mapping
+++ b/mappings/net/minecraft/block/DoubleBlockProperties.mapping
@@ -3,6 +3,7 @@ CLASS net/minecraft/class_4732 net/minecraft/block/DoubleBlockProperties
 		ARG 0 blockEntityType
 		ARG 1 typeMapper
 		ARG 2 directionMapper
+		ARG 3 facingProperty
 		ARG 4 state
 		ARG 5 world
 		ARG 6 pos
diff --git a/mappings/net/minecraft/block/EnderChestBlock.mapping b/mappings/net/minecraft/block/EnderChestBlock.mapping
index 3e5da6cd9c..bf7852fa88 100644
--- a/mappings/net/minecraft/block/EnderChestBlock.mapping
+++ b/mappings/net/minecraft/block/EnderChestBlock.mapping
@@ -4,3 +4,7 @@ CLASS net/minecraft/class_2336 net/minecraft/block/EnderChestBlock
 	FIELD field_10968 WATERLOGGED Lnet/minecraft/class_2746;
 	FIELD field_17363 CONTAINER_NAME Lnet/minecraft/class_2561;
 	FIELD field_46347 CODEC Lcom/mojang/serialization/MapCodec;
+	METHOD method_55773 (Lnet/minecraft/class_1730;ILnet/minecraft/class_1661;Lnet/minecraft/class_1657;)Lnet/minecraft/class_1703;
+		ARG 1 syncId
+		ARG 2 playerInventory
+		ARG 3 player
diff --git a/mappings/net/minecraft/block/FenceBlock.mapping b/mappings/net/minecraft/block/FenceBlock.mapping
index e162f879c3..3146b13949 100644
--- a/mappings/net/minecraft/block/FenceBlock.mapping
+++ b/mappings/net/minecraft/block/FenceBlock.mapping
@@ -1,5 +1,5 @@
 CLASS net/minecraft/class_2354 net/minecraft/block/FenceBlock
-	FIELD field_11066 cullingShapes Ljava/util/function/Function;
+	FIELD field_11066 cullingShapeFunction Ljava/util/function/Function;
 	FIELD field_46350 CODEC Lcom/mojang/serialization/MapCodec;
 	METHOD method_10184 canConnect (Lnet/minecraft/class_2680;ZLnet/minecraft/class_2350;)Z
 		ARG 1 state
diff --git a/mappings/net/minecraft/block/FenceGateBlock.mapping b/mappings/net/minecraft/block/FenceGateBlock.mapping
index 63633f2892..b1bca711ec 100644
--- a/mappings/net/minecraft/block/FenceGateBlock.mapping
+++ b/mappings/net/minecraft/block/FenceGateBlock.mapping
@@ -4,6 +4,12 @@ CLASS net/minecraft/class_2349 net/minecraft/block/FenceGateBlock
 	FIELD field_11026 OPEN Lnet/minecraft/class_2746;
 	FIELD field_42758 type Lnet/minecraft/class_4719;
 	FIELD field_46351 CODEC Lcom/mojang/serialization/MapCodec;
+	FIELD field_55754 REGULAR_CULLING_SHAPES Ljava/util/Map;
+	FIELD field_55755 IN_WALL_CULLING_SHAPES Ljava/util/Map;
+	FIELD field_55756 REGULAR_OUTLINE_SHAPES Ljava/util/Map;
+	FIELD field_55757 IN_WALL_OUTLINE_SHAPES Ljava/util/Map;
+	FIELD field_55758 CLOSED_COLLISION_SHAPES Ljava/util/Map;
+	FIELD field_55759 CLOSED_SIDES_SHAPES Ljava/util/Map;
 	METHOD <init> (Lnet/minecraft/class_4719;Lnet/minecraft/class_4970$class_2251;)V
 		ARG 1 type
 		ARG 2 settings
@@ -16,3 +22,7 @@ CLASS net/minecraft/class_2349 net/minecraft/block/FenceGateBlock
 		ARG 0 instance
 	METHOD method_54014 (Lnet/minecraft/class_2349;)Lnet/minecraft/class_4719;
 		ARG 0 block
+	METHOD method_66429 (Lnet/minecraft/class_265;)Lnet/minecraft/class_265;
+		ARG 0 shape
+	METHOD method_66430 (Lnet/minecraft/class_265;)Lnet/minecraft/class_265;
+		ARG 0 shape
diff --git a/mappings/net/minecraft/block/FireBlock.mapping b/mappings/net/minecraft/block/FireBlock.mapping
index 5d21ce0351..a13ebfd7e9 100644
--- a/mappings/net/minecraft/block/FireBlock.mapping
+++ b/mappings/net/minecraft/block/FireBlock.mapping
@@ -9,7 +9,7 @@ CLASS net/minecraft/class_2358 net/minecraft/block/FireBlock
 	FIELD field_11095 burnChances Lit/unimi/dsi/fastutil/objects/Object2IntMap;
 	FIELD field_11096 NORTH Lnet/minecraft/class_2746;
 	FIELD field_46352 CODEC Lcom/mojang/serialization/MapCodec;
-	FIELD field_55760 shapeGetter Ljava/util/function/Function;
+	FIELD field_55760 shapeFunction Ljava/util/function/Function;
 	METHOD method_10189 registerFlammableBlock (Lnet/minecraft/class_2248;II)V
 		ARG 1 block
 		ARG 2 burnChance
@@ -45,4 +45,6 @@ CLASS net/minecraft/class_2358 net/minecraft/block/FireBlock
 		ARG 3 age
 	METHOD method_26155 getFireTickDelay (Lnet/minecraft/class_5819;)I
 		ARG 0 random
-	METHOD method_66432 getShapeGetter ()Ljava/util/function/Function;
+	METHOD method_66431 (Ljava/util/Map;Lnet/minecraft/class_2680;)Lnet/minecraft/class_265;
+		ARG 1 state
+	METHOD method_66432 createShapeFunction ()Ljava/util/function/Function;
diff --git a/mappings/net/minecraft/block/FlowerbedBlock.mapping b/mappings/net/minecraft/block/FlowerbedBlock.mapping
index 2954c2c850..30a8613660 100644
--- a/mappings/net/minecraft/block/FlowerbedBlock.mapping
+++ b/mappings/net/minecraft/block/FlowerbedBlock.mapping
@@ -3,4 +3,4 @@ CLASS net/minecraft/class_10594 net/minecraft/block/FlowerbedBlock
 	FIELD field_55762 HORIZONTAL_FACING Lnet/minecraft/class_2754;
 	FIELD field_55763 FLOWER_AMOUNT Lnet/minecraft/class_2758;
 	FIELD field_55764 shapeFunction Ljava/util/function/Function;
-	METHOD method_66435 buildShapeFunction ()Ljava/util/function/Function;
+	METHOD method_66435 createShapeFunction ()Ljava/util/function/Function;
diff --git a/mappings/net/minecraft/block/GrindstoneBlock.mapping b/mappings/net/minecraft/block/GrindstoneBlock.mapping
index 3876bab962..e2c13cf9bb 100644
--- a/mappings/net/minecraft/block/GrindstoneBlock.mapping
+++ b/mappings/net/minecraft/block/GrindstoneBlock.mapping
@@ -1,8 +1,13 @@
 CLASS net/minecraft/class_3713 net/minecraft/block/GrindstoneBlock
 	FIELD field_17364 TITLE Lnet/minecraft/class_2561;
 	FIELD field_46365 CODEC Lcom/mojang/serialization/MapCodec;
+	FIELD field_55765 shapeFunction Ljava/util/function/Function;
 	METHOD method_16119 getShape (Lnet/minecraft/class_2680;)Lnet/minecraft/class_265;
+		ARG 1 state
 	METHOD method_17469 (Lnet/minecraft/class_1937;Lnet/minecraft/class_2338;ILnet/minecraft/class_1661;Lnet/minecraft/class_1657;)Lnet/minecraft/class_1703;
 		ARG 2 syncId
 		ARG 3 inventory
 		ARG 4 player
+	METHOD method_66436 (Ljava/util/Map;Lnet/minecraft/class_2680;)Lnet/minecraft/class_265;
+		ARG 1 state
+	METHOD method_66437 createShapeFunction ()Ljava/util/function/Function;
diff --git a/mappings/net/minecraft/block/HangingSignBlock.mapping b/mappings/net/minecraft/block/HangingSignBlock.mapping
index 378554fdfe..744c8488b2 100644
--- a/mappings/net/minecraft/block/HangingSignBlock.mapping
+++ b/mappings/net/minecraft/block/HangingSignBlock.mapping
@@ -3,6 +3,7 @@ CLASS net/minecraft/class_7713 net/minecraft/block/HangingSignBlock
 	FIELD field_40301 ATTACHED Lnet/minecraft/class_2746;
 	FIELD field_40303 DEFAULT_SHAPE Lnet/minecraft/class_265;
 	FIELD field_46308 CODEC Lcom/mojang/serialization/MapCodec;
+	FIELD field_55745 SHAPES_BY_ROTATION Ljava/util/Map;
 	METHOD method_50002 shouldTryAttaching (Lnet/minecraft/class_1657;Lnet/minecraft/class_3965;Lnet/minecraft/class_2625;Lnet/minecraft/class_1799;)Z
 		ARG 1 player
 		ARG 2 hitResult
diff --git a/mappings/net/minecraft/block/HopperBlock.mapping b/mappings/net/minecraft/block/HopperBlock.mapping
index b6641511b5..7904030aba 100644
--- a/mappings/net/minecraft/block/HopperBlock.mapping
+++ b/mappings/net/minecraft/block/HopperBlock.mapping
@@ -2,7 +2,13 @@ CLASS net/minecraft/class_2377 net/minecraft/block/HopperBlock
 	FIELD field_11126 ENABLED Lnet/minecraft/class_2746;
 	FIELD field_11129 FACING Lnet/minecraft/class_2754;
 	FIELD field_46370 CODEC Lcom/mojang/serialization/MapCodec;
+	FIELD field_55766 shapeFunction Ljava/util/function/Function;
+	FIELD field_55767 shapesByDirection Ljava/util/Map;
 	METHOD method_10217 updateEnabled (Lnet/minecraft/class_1937;Lnet/minecraft/class_2338;Lnet/minecraft/class_2680;)V
 		ARG 1 world
 		ARG 2 pos
 		ARG 3 state
+	METHOD method_66438 (Lnet/minecraft/class_265;Ljava/util/Map;Lnet/minecraft/class_2680;)Lnet/minecraft/class_265;
+		ARG 2 state
+	METHOD method_66439 createShapeFunction (Lnet/minecraft/class_265;)Ljava/util/function/Function;
+		ARG 1 shape
diff --git a/mappings/net/minecraft/block/HorizontalConnectingBlock.mapping b/mappings/net/minecraft/block/HorizontalConnectingBlock.mapping
index 060843f89c..e98b181394 100644
--- a/mappings/net/minecraft/block/HorizontalConnectingBlock.mapping
+++ b/mappings/net/minecraft/block/HorizontalConnectingBlock.mapping
@@ -5,6 +5,8 @@ CLASS net/minecraft/class_2310 net/minecraft/block/HorizontalConnectingBlock
 	FIELD field_10904 SOUTH Lnet/minecraft/class_2746;
 	FIELD field_10905 NORTH Lnet/minecraft/class_2746;
 	FIELD field_10907 EAST Lnet/minecraft/class_2746;
+	FIELD field_55751 collisionShapeFunction Ljava/util/function/Function;
+	FIELD field_55752 outlineShapeFunction Ljava/util/function/Function;
 	METHOD <init> (FFFFFLnet/minecraft/class_4970$class_2251;)V
 		ARG 1 radius1
 		ARG 2 radius2
@@ -12,7 +14,9 @@ CLASS net/minecraft/class_2310 net/minecraft/block/HorizontalConnectingBlock
 		ARG 4 boundingHeight2
 		ARG 5 collisionHeight
 		ARG 6 settings
-	METHOD method_9984 createShapes (FFFFF)Ljava/util/function/Function;
+	METHOD method_66428 (Lnet/minecraft/class_265;Ljava/util/Map;Lnet/minecraft/class_2680;)Lnet/minecraft/class_265;
+		ARG 2 state
+	METHOD method_9984 createShapeFunction (FFFFF)Ljava/util/function/Function;
 		ARG 1 radius1
 		ARG 2 radius2
 		ARG 3 height1
diff --git a/mappings/net/minecraft/block/LadderBlock.mapping b/mappings/net/minecraft/block/LadderBlock.mapping
index 2ffe0531b9..c805f9aa8f 100644
--- a/mappings/net/minecraft/block/LadderBlock.mapping
+++ b/mappings/net/minecraft/block/LadderBlock.mapping
@@ -2,6 +2,7 @@ CLASS net/minecraft/class_2399 net/minecraft/block/LadderBlock
 	FIELD field_11253 FACING Lnet/minecraft/class_2754;
 	FIELD field_11257 WATERLOGGED Lnet/minecraft/class_2746;
 	FIELD field_46380 CODEC Lcom/mojang/serialization/MapCodec;
+	FIELD field_55768 SHAPES_BY_DIRECTION Ljava/util/Map;
 	METHOD method_10305 canPlaceOn (Lnet/minecraft/class_1922;Lnet/minecraft/class_2338;Lnet/minecraft/class_2350;)Z
 		ARG 1 world
 		ARG 2 pos
diff --git a/mappings/net/minecraft/block/LeafLitterBlock.mapping b/mappings/net/minecraft/block/LeafLitterBlock.mapping
index 1fec3c2313..46a6f9b234 100644
--- a/mappings/net/minecraft/block/LeafLitterBlock.mapping
+++ b/mappings/net/minecraft/block/LeafLitterBlock.mapping
@@ -2,4 +2,4 @@ CLASS net/minecraft/class_10595 net/minecraft/block/LeafLitterBlock
 	FIELD field_55769 CODEC Lcom/mojang/serialization/MapCodec;
 	FIELD field_55770 HORIZONTAL_FACING Lnet/minecraft/class_2754;
 	FIELD field_55771 shapeFunction Ljava/util/function/Function;
-	METHOD method_66440 buildShapeFunction ()Ljava/util/function/Function;
+	METHOD method_66440 createShapeFunction ()Ljava/util/function/Function;
diff --git a/mappings/net/minecraft/block/LecternBlock.mapping b/mappings/net/minecraft/block/LecternBlock.mapping
index ad344cf7e5..807cb21cad 100644
--- a/mappings/net/minecraft/block/LecternBlock.mapping
+++ b/mappings/net/minecraft/block/LecternBlock.mapping
@@ -4,6 +4,8 @@ CLASS net/minecraft/class_3715 net/minecraft/block/LecternBlock
 	FIELD field_17366 HAS_BOOK Lnet/minecraft/class_2746;
 	FIELD field_31113 SCHEDULED_TICK_DELAY I
 	FIELD field_46386 CODEC Lcom/mojang/serialization/MapCodec;
+	FIELD field_55774 BASE_SHAPE Lnet/minecraft/class_265;
+	FIELD field_55775 OUTLINE_SHAPES_BY_DIRECTION Ljava/util/Map;
 	METHOD method_17470 openScreen (Lnet/minecraft/class_1937;Lnet/minecraft/class_2338;Lnet/minecraft/class_1657;)V
 		ARG 1 world
 		ARG 2 pos
diff --git a/mappings/net/minecraft/block/LeverBlock.mapping b/mappings/net/minecraft/block/LeverBlock.mapping
index 3c393e5532..64f950b74e 100644
--- a/mappings/net/minecraft/block/LeverBlock.mapping
+++ b/mappings/net/minecraft/block/LeverBlock.mapping
@@ -1,6 +1,7 @@
 CLASS net/minecraft/class_2401 net/minecraft/block/LeverBlock
 	FIELD field_11265 POWERED Lnet/minecraft/class_2746;
 	FIELD field_46387 CODEC Lcom/mojang/serialization/MapCodec;
+	FIELD field_55776 shapeFunction Ljava/util/function/Function;
 	METHOD method_10308 spawnParticles (Lnet/minecraft/class_2680;Lnet/minecraft/class_1936;Lnet/minecraft/class_2338;F)V
 		ARG 0 state
 		ARG 1 world
@@ -20,3 +21,6 @@ CLASS net/minecraft/class_2401 net/minecraft/block/LeverBlock
 		ARG 1 world
 		ARG 2 pos
 		ARG 3 state
+	METHOD method_66446 (Ljava/util/Map;Lnet/minecraft/class_2680;)Lnet/minecraft/class_265;
+		ARG 1 state
+	METHOD method_66447 createShapeFunction ()Ljava/util/function/Function;
diff --git a/mappings/net/minecraft/block/MangroveLeavesBlock.mapping b/mappings/net/minecraft/block/MangroveLeavesBlock.mapping
index b1819027a1..a0cd6e1563 100644
--- a/mappings/net/minecraft/block/MangroveLeavesBlock.mapping
+++ b/mappings/net/minecraft/block/MangroveLeavesBlock.mapping
@@ -1,2 +1,8 @@
 CLASS net/minecraft/class_7114 net/minecraft/block/MangroveLeavesBlock
 	FIELD field_46394 CODEC Lcom/mojang/serialization/MapCodec;
+	METHOD method_66448 (Lcom/mojang/serialization/codecs/RecordCodecBuilder$Instance;)Lcom/mojang/datafixers/kinds/App;
+		ARG 0 instance
+	METHOD method_66449 (Lnet/minecraft/class_7114;)Lnet/minecraft/class_2394;
+		ARG 0 block
+	METHOD method_66450 (Lnet/minecraft/class_7114;)Ljava/lang/Integer;
+		ARG 0 block
diff --git a/mappings/net/minecraft/block/MultifaceBlock.mapping b/mappings/net/minecraft/block/MultifaceBlock.mapping
index da432b3a6d..2d19b87691 100644
--- a/mappings/net/minecraft/block/MultifaceBlock.mapping
+++ b/mappings/net/minecraft/block/MultifaceBlock.mapping
@@ -6,6 +6,7 @@ CLASS net/minecraft/class_5778 net/minecraft/block/MultifaceBlock
 	FIELD field_28425 canMirrorZ Z
 	FIELD field_55079 CODEC Lcom/mojang/serialization/MapCodec;
 	FIELD field_55497 WATERLOGGED Lnet/minecraft/class_2746;
+	FIELD field_55780 shapeFunction Ljava/util/function/Function;
 	METHOD method_33358 canGrowOn (Lnet/minecraft/class_1922;Lnet/minecraft/class_2350;Lnet/minecraft/class_2338;Lnet/minecraft/class_2680;)Z
 		ARG 0 world
 		ARG 1 direction
@@ -52,3 +53,6 @@ CLASS net/minecraft/class_5778 net/minecraft/block/MultifaceBlock
 		ARG 0 world
 		ARG 1 pos
 		ARG 2 direction
+	METHOD method_66454 (Ljava/util/Map;Lnet/minecraft/class_2680;)Lnet/minecraft/class_265;
+		ARG 1 state
+	METHOD method_66455 createShapeFunction ()Ljava/util/function/Function;
diff --git a/mappings/net/minecraft/block/NetherPortalBlock.mapping b/mappings/net/minecraft/block/NetherPortalBlock.mapping
index f051066642..693dd6f075 100644
--- a/mappings/net/minecraft/block/NetherPortalBlock.mapping
+++ b/mappings/net/minecraft/block/NetherPortalBlock.mapping
@@ -2,6 +2,7 @@ CLASS net/minecraft/class_2423 net/minecraft/block/NetherPortalBlock
 	FIELD field_11310 AXIS Lnet/minecraft/class_2754;
 	FIELD field_46401 CODEC Lcom/mojang/serialization/MapCodec;
 	FIELD field_52060 LOGGER Lorg/slf4j/Logger;
+	FIELD field_55781 SHAPES_BY_AXIS Ljava/util/Map;
 	METHOD method_60773 getOrCreateExitPortalTarget (Lnet/minecraft/class_3218;Lnet/minecraft/class_1297;Lnet/minecraft/class_2338;Lnet/minecraft/class_2338;ZLnet/minecraft/class_2784;)Lnet/minecraft/class_5454;
 		ARG 1 world
 		ARG 2 entity
diff --git a/mappings/net/minecraft/block/NetherWartBlock.mapping b/mappings/net/minecraft/block/NetherWartBlock.mapping
index 1b4d6f030a..328cd56692 100644
--- a/mappings/net/minecraft/block/NetherWartBlock.mapping
+++ b/mappings/net/minecraft/block/NetherWartBlock.mapping
@@ -1,5 +1,7 @@
 CLASS net/minecraft/class_2421 net/minecraft/block/NetherWartBlock
-	FIELD field_11305 AGE_TO_SHAPE [Lnet/minecraft/class_265;
+	FIELD field_11305 SHAPES_BY_AGE [Lnet/minecraft/class_265;
 	FIELD field_11306 AGE Lnet/minecraft/class_2758;
 	FIELD field_31199 MAX_AGE I
 	FIELD field_46403 CODEC Lcom/mojang/serialization/MapCodec;
+	METHOD method_66456 (I)Lnet/minecraft/class_265;
+		ARG 0 age
diff --git a/mappings/net/minecraft/block/PaleMossCarpetBlock.mapping b/mappings/net/minecraft/block/PaleMossCarpetBlock.mapping
index 893c3520dc..0141279815 100644
--- a/mappings/net/minecraft/block/PaleMossCarpetBlock.mapping
+++ b/mappings/net/minecraft/block/PaleMossCarpetBlock.mapping
@@ -5,6 +5,8 @@ CLASS net/minecraft/class_10322 net/minecraft/block/PaleMossCarpetBlock
 	FIELD field_54758 EAST Lnet/minecraft/class_2754;
 	FIELD field_54759 SOUTH Lnet/minecraft/class_2754;
 	FIELD field_54760 WEST Lnet/minecraft/class_2754;
+	FIELD field_55778 WALL_SHAPE_PROPERTIES_BY_DIRECTION Ljava/util/Map;
+	FIELD field_55779 shapeFunction Ljava/util/function/Function;
 	METHOD method_64790 createUpperState (Lnet/minecraft/class_1922;Lnet/minecraft/class_2338;Ljava/util/function/BooleanSupplier;)Lnet/minecraft/class_2680;
 		ARG 0 world
 		ARG 1 pos
@@ -25,3 +27,6 @@ CLASS net/minecraft/class_10322 net/minecraft/block/PaleMossCarpetBlock
 		ARG 0 face
 	METHOD method_64799 hasAnyShape (Lnet/minecraft/class_2680;)Z
 		ARG 0 state
+	METHOD method_66452 (Ljava/util/Map;Ljava/util/Map;Lnet/minecraft/class_2680;)Lnet/minecraft/class_265;
+		ARG 2 state
+	METHOD method_66453 createShapeFunction ()Ljava/util/function/Function;
diff --git a/mappings/net/minecraft/block/PistonBlock.mapping b/mappings/net/minecraft/block/PistonBlock.mapping
index fa188dbf3e..109180fa4b 100644
--- a/mappings/net/minecraft/block/PistonBlock.mapping
+++ b/mappings/net/minecraft/block/PistonBlock.mapping
@@ -2,6 +2,7 @@ CLASS net/minecraft/class_2665 net/minecraft/block/PistonBlock
 	FIELD field_12187 sticky Z
 	FIELD field_12191 EXTENDED Lnet/minecraft/class_2746;
 	FIELD field_46530 CODEC Lcom/mojang/serialization/MapCodec;
+	FIELD field_55824 EXTENDED_SHAPES_BY_DIRECTION Ljava/util/Map;
 	METHOD <init> (ZLnet/minecraft/class_4970$class_2251;)V
 		ARG 1 sticky
 		ARG 2 settings
diff --git a/mappings/net/minecraft/block/PistonHeadBlock.mapping b/mappings/net/minecraft/block/PistonHeadBlock.mapping
index 2c08e6f973..5bfabbcc33 100644
--- a/mappings/net/minecraft/block/PistonHeadBlock.mapping
+++ b/mappings/net/minecraft/block/PistonHeadBlock.mapping
@@ -2,6 +2,9 @@ CLASS net/minecraft/class_2671 net/minecraft/block/PistonHeadBlock
 	FIELD field_12224 TYPE Lnet/minecraft/class_2754;
 	FIELD field_12227 SHORT Lnet/minecraft/class_2746;
 	FIELD field_46531 CODEC Lcom/mojang/serialization/MapCodec;
+	FIELD field_55826 BASE_SHAPE Lnet/minecraft/class_265;
+	FIELD field_55827 SHORT_SHAPES Ljava/util/Map;
+	FIELD field_55828 LONG_SHAPES Ljava/util/Map;
 	METHOD method_26980 isAttached (Lnet/minecraft/class_2680;Lnet/minecraft/class_2680;)Z
 		ARG 1 headState
 		ARG 2 pistonState
diff --git a/mappings/net/minecraft/block/PitcherCropBlock.mapping b/mappings/net/minecraft/block/PitcherCropBlock.mapping
index 60ca9c7717..5dc4126458 100644
--- a/mappings/net/minecraft/block/PitcherCropBlock.mapping
+++ b/mappings/net/minecraft/block/PitcherCropBlock.mapping
@@ -3,6 +3,8 @@ CLASS net/minecraft/class_8237 net/minecraft/block/PitcherCropBlock
 	FIELD field_43246 AGE_0_SHAPE Lnet/minecraft/class_265;
 	FIELD field_43247 LOWER_COLLISION_SHAPE Lnet/minecraft/class_265;
 	FIELD field_46410 CODEC Lcom/mojang/serialization/MapCodec;
+	FIELD field_55783 shapeFunction Ljava/util/function/Function;
+	FIELD field_55784 HALF Lnet/minecraft/class_2754;
 	METHOD method_49819 tryGrow (Lnet/minecraft/class_3218;Lnet/minecraft/class_2680;Lnet/minecraft/class_2338;I)V
 		ARG 1 world
 		ARG 2 state
@@ -29,4 +31,7 @@ CLASS net/minecraft/class_8237 net/minecraft/block/PitcherCropBlock
 		ARG 3 state
 	METHOD method_52575 isDoubleTallAtAge (I)Z
 		ARG 0 age
+	METHOD method_66458 ([ILnet/minecraft/class_2680;)Lnet/minecraft/class_265;
+		ARG 1 state
+	METHOD method_66459 createShapeFunction ()Ljava/util/function/Function;
 	CLASS class_8587 LowerHalfContext
diff --git a/mappings/net/minecraft/block/PointedDripstoneBlock.mapping b/mappings/net/minecraft/block/PointedDripstoneBlock.mapping
index f6caa1c9eb..19a324385f 100644
--- a/mappings/net/minecraft/block/PointedDripstoneBlock.mapping
+++ b/mappings/net/minecraft/block/PointedDripstoneBlock.mapping
@@ -8,6 +8,8 @@ CLASS net/minecraft/class_5689 net/minecraft/block/PointedDripstoneBlock
 	FIELD field_28056 FRUSTUM_SHAPE Lnet/minecraft/class_265;
 	FIELD field_28057 MIDDLE_SHAPE Lnet/minecraft/class_265;
 	FIELD field_28058 BASE_SHAPE Lnet/minecraft/class_265;
+	FIELD field_31203 DOWN_TIP_Y D
+	FIELD field_31204 MAX_HORIZONTAL_MODEL_OFFSET F
 	FIELD field_31211 WATER_DRIP_CHANCE F
 	FIELD field_31212 LAVA_DRIP_CHANCE F
 	FIELD field_33568 MAX_STALACTITE_GROWTH I
diff --git a/mappings/net/minecraft/block/PotatoesBlock.mapping b/mappings/net/minecraft/block/PotatoesBlock.mapping
index fca1ad4a55..bef4a23784 100644
--- a/mappings/net/minecraft/block/PotatoesBlock.mapping
+++ b/mappings/net/minecraft/block/PotatoesBlock.mapping
@@ -1,3 +1,5 @@
 CLASS net/minecraft/class_2439 net/minecraft/block/PotatoesBlock
-	FIELD field_11357 AGE_TO_SHAPE [Lnet/minecraft/class_265;
+	FIELD field_11357 SHAPES_BY_AGE [Lnet/minecraft/class_265;
 	FIELD field_46414 CODEC Lcom/mojang/serialization/MapCodec;
+	METHOD method_66460 (I)Lnet/minecraft/class_265;
+		ARG 0 age
diff --git a/mappings/net/minecraft/block/PropaguleBlock.mapping b/mappings/net/minecraft/block/PropaguleBlock.mapping
index ebbb0f0c6e..af91339c93 100644
--- a/mappings/net/minecraft/block/PropaguleBlock.mapping
+++ b/mappings/net/minecraft/block/PropaguleBlock.mapping
@@ -2,8 +2,9 @@ CLASS net/minecraft/class_7115 net/minecraft/block/PropaguleBlock
 	FIELD field_37588 AGE Lnet/minecraft/class_2758;
 	FIELD field_37590 WATERLOGGED Lnet/minecraft/class_2746;
 	FIELD field_37591 HANGING Lnet/minecraft/class_2746;
-	FIELD field_37592 SHAPES [Lnet/minecraft/class_265;
+	FIELD field_37592 SHAPES_BY_AGE [Lnet/minecraft/class_265;
 	FIELD field_46395 CODEC Lcom/mojang/serialization/MapCodec;
+	FIELD field_55777 MIN_Y_BY_AGE [I
 	METHOD method_41434 getDefaultHangingState ()Lnet/minecraft/class_2680;
 	METHOD method_41435 isHanging (Lnet/minecraft/class_2680;)Z
 		ARG 0 state
@@ -15,3 +16,5 @@ CLASS net/minecraft/class_7115 net/minecraft/block/PropaguleBlock
 		ARG 0 instance
 	METHOD method_54033 (Lnet/minecraft/class_7115;)Lnet/minecraft/class_8813;
 		ARG 0 block
+	METHOD method_66451 (I)Lnet/minecraft/class_265;
+		ARG 0 age
diff --git a/mappings/net/minecraft/block/RedstoneWireBlock.mapping b/mappings/net/minecraft/block/RedstoneWireBlock.mapping
index b8b64bf87a..e8708f8449 100644
--- a/mappings/net/minecraft/block/RedstoneWireBlock.mapping
+++ b/mappings/net/minecraft/block/RedstoneWireBlock.mapping
@@ -10,6 +10,7 @@ CLASS net/minecraft/class_2457 net/minecraft/block/RedstoneWireBlock
 	FIELD field_24733 dotState Lnet/minecraft/class_2680;
 	FIELD field_46422 CODEC Lcom/mojang/serialization/MapCodec;
 	FIELD field_52632 redstoneController Lnet/minecraft/class_9906;
+	FIELD field_55787 shapeFunction Ljava/util/function/Function;
 	METHOD method_10477 getRenderConnectionType (Lnet/minecraft/class_1922;Lnet/minecraft/class_2338;Lnet/minecraft/class_2350;)Lnet/minecraft/class_2773;
 		ARG 1 world
 		ARG 2 pos
@@ -74,3 +75,6 @@ CLASS net/minecraft/class_2457 net/minecraft/block/RedstoneWireBlock
 		ARG 2 pos
 	METHOD method_61747 ([I)V
 		ARG 0 colors
+	METHOD method_66461 (Lnet/minecraft/class_265;Ljava/util/Map;Ljava/util/Map;Lnet/minecraft/class_2680;)Lnet/minecraft/class_265;
+		ARG 3 state
+	METHOD method_66462 createShapeFunction ()Ljava/util/function/Function;
diff --git a/mappings/net/minecraft/block/RodBlock.mapping b/mappings/net/minecraft/block/RodBlock.mapping
index ba75734097..96107518d8 100644
--- a/mappings/net/minecraft/block/RodBlock.mapping
+++ b/mappings/net/minecraft/block/RodBlock.mapping
@@ -1 +1,2 @@
 CLASS net/minecraft/class_2337 net/minecraft/block/RodBlock
+	FIELD field_55788 SHAPES_BY_AXIS Ljava/util/Map;
diff --git a/mappings/net/minecraft/block/Segmented.mapping b/mappings/net/minecraft/block/Segmented.mapping
index 7e74629f7d..2082e1f700 100644
--- a/mappings/net/minecraft/block/Segmented.mapping
+++ b/mappings/net/minecraft/block/Segmented.mapping
@@ -13,7 +13,7 @@ CLASS net/minecraft/class_10596 net/minecraft/block/Segmented
 		ARG 1 state
 		ARG 2 context
 		ARG 3 property
-	METHOD method_66465 buildShapeFunction (Lnet/minecraft/class_2754;Lnet/minecraft/class_2758;)Ljava/util/function/Function;
+	METHOD method_66465 createShapeFunction (Lnet/minecraft/class_2754;Lnet/minecraft/class_2758;)Ljava/util/function/Function;
 		ARG 1 directionProperty
 		ARG 2 segmentAmountProperty
 	METHOD method_66466 (Lnet/minecraft/class_2754;Lnet/minecraft/class_2758;Ljava/util/Map;Lnet/minecraft/class_2680;)Lnet/minecraft/class_265;
diff --git a/mappings/net/minecraft/block/ShulkerBoxBlock.mapping b/mappings/net/minecraft/block/ShulkerBoxBlock.mapping
index e248456bad..00c391e9ae 100644
--- a/mappings/net/minecraft/block/ShulkerBoxBlock.mapping
+++ b/mappings/net/minecraft/block/ShulkerBoxBlock.mapping
@@ -4,6 +4,7 @@ CLASS net/minecraft/class_2480 net/minecraft/block/ShulkerBoxBlock
 	FIELD field_11496 FACING Lnet/minecraft/class_2754;
 	FIELD field_46440 CODEC Lcom/mojang/serialization/MapCodec;
 	FIELD field_49401 UNKNOWN_CONTENTS_TEXT Lnet/minecraft/class_2561;
+	FIELD field_55792 SHAPES_BY_DIRECTION Ljava/util/Map;
 	METHOD <init> (Lnet/minecraft/class_1767;Lnet/minecraft/class_4970$class_2251;)V
 		ARG 1 color
 		ARG 2 settings
diff --git a/mappings/net/minecraft/block/SnowBlock.mapping b/mappings/net/minecraft/block/SnowBlock.mapping
index 761088ea4b..31850f2f70 100644
--- a/mappings/net/minecraft/block/SnowBlock.mapping
+++ b/mappings/net/minecraft/block/SnowBlock.mapping
@@ -1,5 +1,7 @@
 CLASS net/minecraft/class_2488 net/minecraft/block/SnowBlock
-	FIELD field_11517 LAYERS_TO_SHAPE [Lnet/minecraft/class_265;
+	FIELD field_11517 SHAPES_BY_LAYERS [Lnet/minecraft/class_265;
 	FIELD field_11518 LAYERS Lnet/minecraft/class_2758;
 	FIELD field_31247 MAX_LAYERS I
 	FIELD field_46451 CODEC Lcom/mojang/serialization/MapCodec;
+	METHOD method_66467 (I)Lnet/minecraft/class_265;
+		ARG 0 layers
diff --git a/mappings/net/minecraft/block/StairsBlock.mapping b/mappings/net/minecraft/block/StairsBlock.mapping
index 36a4664741..206a7e1363 100644
--- a/mappings/net/minecraft/block/StairsBlock.mapping
+++ b/mappings/net/minecraft/block/StairsBlock.mapping
@@ -6,6 +6,15 @@ CLASS net/minecraft/class_2510 net/minecraft/block/StairsBlock
 	FIELD field_11574 baseBlockState Lnet/minecraft/class_2680;
 	FIELD field_11579 baseBlock Lnet/minecraft/class_2248;
 	FIELD field_46460 CODEC Lcom/mojang/serialization/MapCodec;
+	FIELD field_55795 OUTER_BOTTOM_SHAPES Ljava/util/Map;
+	FIELD field_55796 STRAIGHT_BOTTOM_SHAPES Ljava/util/Map;
+	FIELD field_55797 INNER_BOTTOM_SHAPES Ljava/util/Map;
+	FIELD field_55798 OUTER_TOP_SHAPES Ljava/util/Map;
+	FIELD field_55799 STRAIGHT_TOP_SHAPES Ljava/util/Map;
+	FIELD field_55800 INNER_TOP_SHAPES Ljava/util/Map;
+	FIELD field_55801 OUTER_SHAPE Lnet/minecraft/class_265;
+	FIELD field_55802 STRAIGHT_SHAPE Lnet/minecraft/class_265;
+	FIELD field_55803 INNER_SHAPE Lnet/minecraft/class_265;
 	METHOD <init> (Lnet/minecraft/class_2680;Lnet/minecraft/class_4970$class_2251;)V
 		ARG 1 baseBlockState
 		ARG 2 settings
diff --git a/mappings/net/minecraft/block/StemBlock.mapping b/mappings/net/minecraft/block/StemBlock.mapping
index b148457fd3..1112801a52 100644
--- a/mappings/net/minecraft/block/StemBlock.mapping
+++ b/mappings/net/minecraft/block/StemBlock.mapping
@@ -1,5 +1,5 @@
 CLASS net/minecraft/class_2513 net/minecraft/block/StemBlock
-	FIELD field_11583 AGE_TO_SHAPE [Lnet/minecraft/class_265;
+	FIELD field_11583 SHAPES_BY_AGE [Lnet/minecraft/class_265;
 	FIELD field_11584 AGE Lnet/minecraft/class_2758;
 	FIELD field_11585 gourdBlock Lnet/minecraft/class_5321;
 	FIELD field_27205 pickBlockItem Lnet/minecraft/class_5321;
@@ -19,3 +19,5 @@ CLASS net/minecraft/class_2513 net/minecraft/block/StemBlock
 		ARG 0 block
 	METHOD method_54052 (Lnet/minecraft/class_2513;)Lnet/minecraft/class_5321;
 		ARG 0 block
+	METHOD method_66468 (I)Lnet/minecraft/class_265;
+		ARG 0 age
diff --git a/mappings/net/minecraft/block/TorchflowerBlock.mapping b/mappings/net/minecraft/block/TorchflowerBlock.mapping
index 900973ef73..1e414578be 100644
--- a/mappings/net/minecraft/block/TorchflowerBlock.mapping
+++ b/mappings/net/minecraft/block/TorchflowerBlock.mapping
@@ -1,3 +1,6 @@
 CLASS net/minecraft/class_8171 net/minecraft/block/TorchflowerBlock
 	FIELD field_42776 AGE Lnet/minecraft/class_2758;
 	FIELD field_46477 CODEC Lcom/mojang/serialization/MapCodec;
+	FIELD field_55804 SHAPES_BY_AGE [Lnet/minecraft/class_265;
+	METHOD method_66469 (I)Lnet/minecraft/class_265;
+		ARG 0 age
diff --git a/mappings/net/minecraft/block/TrapdoorBlock.mapping b/mappings/net/minecraft/block/TrapdoorBlock.mapping
index 2ae278e4c5..af1d74eddb 100644
--- a/mappings/net/minecraft/block/TrapdoorBlock.mapping
+++ b/mappings/net/minecraft/block/TrapdoorBlock.mapping
@@ -5,6 +5,7 @@ CLASS net/minecraft/class_2533 net/minecraft/block/TrapdoorBlock
 	FIELD field_11631 OPEN Lnet/minecraft/class_2746;
 	FIELD field_42779 blockSetType Lnet/minecraft/class_8177;
 	FIELD field_46478 CODEC Lcom/mojang/serialization/MapCodec;
+	FIELD field_55805 shapeByDirection Ljava/util/Map;
 	METHOD <init> (Lnet/minecraft/class_8177;Lnet/minecraft/class_4970$class_2251;)V
 		ARG 1 type
 		ARG 2 settings
diff --git a/mappings/net/minecraft/block/TripwireBlock.mapping b/mappings/net/minecraft/block/TripwireBlock.mapping
index 288de56550..5096839ecc 100644
--- a/mappings/net/minecraft/block/TripwireBlock.mapping
+++ b/mappings/net/minecraft/block/TripwireBlock.mapping
@@ -10,6 +10,8 @@ CLASS net/minecraft/class_2538 net/minecraft/block/TripwireBlock
 	FIELD field_11683 ATTACHED Lnet/minecraft/class_2746;
 	FIELD field_31267 SCHEDULED_TICK_DELAY I
 	FIELD field_46480 CODEC Lcom/mojang/serialization/MapCodec;
+	FIELD field_55806 ATTACHED_SHAPE Lnet/minecraft/class_265;
+	FIELD field_55807 UNATTACHED_SHAPE Lnet/minecraft/class_265;
 	METHOD <init> (Lnet/minecraft/class_2248;Lnet/minecraft/class_4970$class_2251;)V
 		ARG 1 hookBlock
 		ARG 2 settings
diff --git a/mappings/net/minecraft/block/TripwireHookBlock.mapping b/mappings/net/minecraft/block/TripwireHookBlock.mapping
index 34ae6fc761..182cf0ecca 100644
--- a/mappings/net/minecraft/block/TripwireHookBlock.mapping
+++ b/mappings/net/minecraft/block/TripwireHookBlock.mapping
@@ -4,6 +4,7 @@ CLASS net/minecraft/class_2537 net/minecraft/block/TripwireHookBlock
 	FIELD field_11671 POWERED Lnet/minecraft/class_2746;
 	FIELD field_31271 SCHEDULED_TICK_DELAY I
 	FIELD field_46481 CODEC Lcom/mojang/serialization/MapCodec;
+	FIELD field_55808 SHAPES_BY_DIRECTION Ljava/util/Map;
 	METHOD method_10775 updateNeighborsOnAxis (Lnet/minecraft/class_2248;Lnet/minecraft/class_1937;Lnet/minecraft/class_2338;Lnet/minecraft/class_2350;)V
 		ARG 0 block
 		ARG 1 world
diff --git a/mappings/net/minecraft/block/TurtleEggBlock.mapping b/mappings/net/minecraft/block/TurtleEggBlock.mapping
index 4e414b74d4..a697b8b60a 100644
--- a/mappings/net/minecraft/block/TurtleEggBlock.mapping
+++ b/mappings/net/minecraft/block/TurtleEggBlock.mapping
@@ -2,6 +2,8 @@ CLASS net/minecraft/class_2542 net/minecraft/block/TurtleEggBlock
 	FIELD field_11710 EGGS Lnet/minecraft/class_2758;
 	FIELD field_11711 HATCH Lnet/minecraft/class_2758;
 	FIELD field_46482 CODEC Lcom/mojang/serialization/MapCodec;
+	FIELD field_55809 SINGLE_SHAPE Lnet/minecraft/class_265;
+	FIELD field_55810 MULTIPLE_SHAPE Lnet/minecraft/class_265;
 	METHOD method_10831 isSandBelow (Lnet/minecraft/class_1922;Lnet/minecraft/class_2338;)Z
 		ARG 0 world
 		ARG 1 pos
diff --git a/mappings/net/minecraft/block/VineBlock.mapping b/mappings/net/minecraft/block/VineBlock.mapping
index 4adb0109f3..9105cdb653 100644
--- a/mappings/net/minecraft/block/VineBlock.mapping
+++ b/mappings/net/minecraft/block/VineBlock.mapping
@@ -6,6 +6,7 @@ CLASS net/minecraft/class_2541 net/minecraft/block/VineBlock
 	FIELD field_11703 UP Lnet/minecraft/class_2746;
 	FIELD field_11706 NORTH Lnet/minecraft/class_2746;
 	FIELD field_46485 CODEC Lcom/mojang/serialization/MapCodec;
+	FIELD field_55811 shapeFunction Ljava/util/function/Function;
 	METHOD method_10820 getGrownState (Lnet/minecraft/class_2680;Lnet/minecraft/class_2680;Lnet/minecraft/class_5819;)Lnet/minecraft/class_2680;
 		ARG 1 above
 		ARG 2 state
@@ -35,3 +36,6 @@ CLASS net/minecraft/class_2541 net/minecraft/block/VineBlock
 		ARG 3 side
 	METHOD method_10830 hasHorizontalSide (Lnet/minecraft/class_2680;)Z
 		ARG 1 state
+	METHOD method_66470 (Ljava/util/Map;Lnet/minecraft/class_2680;)Lnet/minecraft/class_265;
+		ARG 1 state
+	METHOD method_66471 createShapeFunction ()Ljava/util/function/Function;
diff --git a/mappings/net/minecraft/block/WallBannerBlock.mapping b/mappings/net/minecraft/block/WallBannerBlock.mapping
index 3d557c3ec7..93a2d164a5 100644
--- a/mappings/net/minecraft/block/WallBannerBlock.mapping
+++ b/mappings/net/minecraft/block/WallBannerBlock.mapping
@@ -1,6 +1,6 @@
 CLASS net/minecraft/class_2546 net/minecraft/block/WallBannerBlock
 	FIELD field_11722 FACING Lnet/minecraft/class_2754;
-	FIELD field_11723 FACING_TO_SHAPE Ljava/util/Map;
+	FIELD field_11723 SHAPES_BY_DIRECTION Ljava/util/Map;
 	FIELD field_46486 CODEC Lcom/mojang/serialization/MapCodec;
 	METHOD method_54062 (Lcom/mojang/serialization/codecs/RecordCodecBuilder$Instance;)Lcom/mojang/datafixers/kinds/App;
 		ARG 0 instance
diff --git a/mappings/net/minecraft/block/WallBlock.mapping b/mappings/net/minecraft/block/WallBlock.mapping
index 4f34282466..6c27c08137 100644
--- a/mappings/net/minecraft/block/WallBlock.mapping
+++ b/mappings/net/minecraft/block/WallBlock.mapping
@@ -2,11 +2,22 @@ CLASS net/minecraft/class_2544 net/minecraft/block/WallBlock
 	FIELD field_11717 UP Lnet/minecraft/class_2746;
 	FIELD field_22160 WATERLOGGED Lnet/minecraft/class_2746;
 	FIELD field_46487 CODEC Lcom/mojang/serialization/MapCodec;
+	FIELD field_55812 collisionShapeFunction Ljava/util/function/Function;
+	FIELD field_55813 POST_SHAPE_FOR_TALL_TEST Lnet/minecraft/class_265;
+	FIELD field_55814 WALL_SHAPES_FOR_TALL_TEST_BY_DIRECTION Ljava/util/Map;
+	FIELD field_55815 EAST_WALL_SHAPE Lnet/minecraft/class_2754;
+	FIELD field_55816 NORTH_WALL_SHAPE Lnet/minecraft/class_2754;
+	FIELD field_55817 SOUTH_WALL_SHAPE Lnet/minecraft/class_2754;
+	FIELD field_55818 WEST_WALL_SHAPE Lnet/minecraft/class_2754;
+	FIELD field_55819 WALL_SHAPE_PROPERTIES_BY_DIRECTION Ljava/util/Map;
+	FIELD field_55820 outlineShapeFunction Ljava/util/function/Function;
 	METHOD method_16704 shouldConnectTo (Lnet/minecraft/class_2680;ZLnet/minecraft/class_2350;)Z
 		ARG 1 state
 		ARG 2 faceFullSquare
 		ARG 3 side
-	METHOD method_24420 getShapeMap (FF)Ljava/util/function/Function;
+	METHOD method_24420 createShapeFunction (FF)Ljava/util/function/Function;
+		ARG 1 tallHeight
+		ARG 2 lowHeight
 	METHOD method_24421 getStateAt (Lnet/minecraft/class_4538;Lnet/minecraft/class_2680;Lnet/minecraft/class_2338;Lnet/minecraft/class_2680;)Lnet/minecraft/class_2680;
 		ARG 1 world
 		ARG 2 state
@@ -49,3 +60,5 @@ CLASS net/minecraft/class_2544 net/minecraft/block/WallBlock
 		ARG 1 state
 		ARG 2 aboveState
 		ARG 3 aboveShape
+	METHOD method_66472 (Lnet/minecraft/class_265;Ljava/util/Map;Ljava/util/Map;Lnet/minecraft/class_2680;)Lnet/minecraft/class_265;
+		ARG 3 state
diff --git a/mappings/net/minecraft/block/WallHangingSignBlock.mapping b/mappings/net/minecraft/block/WallHangingSignBlock.mapping
index d23aaf8627..861232ced9 100644
--- a/mappings/net/minecraft/block/WallHangingSignBlock.mapping
+++ b/mappings/net/minecraft/block/WallHangingSignBlock.mapping
@@ -1,7 +1,8 @@
 CLASS net/minecraft/class_7715 net/minecraft/block/WallHangingSignBlock
 	FIELD field_40319 FACING Lnet/minecraft/class_2754;
-	FIELD field_40324 OUTLINE_SHAPES Ljava/util/Map;
+	FIELD field_40324 OUTLINE_SHAPES_BY_AXIS Ljava/util/Map;
 	FIELD field_46488 CODEC Lcom/mojang/serialization/MapCodec;
+	FIELD field_55822 COLLISION_SHAPES_BY_AXIS Ljava/util/Map;
 	METHOD method_45460 canAttachTo (Lnet/minecraft/class_4538;Lnet/minecraft/class_2680;Lnet/minecraft/class_2338;Lnet/minecraft/class_2350;)Z
 		ARG 1 world
 		ARG 2 state
diff --git a/mappings/net/minecraft/block/WallSignBlock.mapping b/mappings/net/minecraft/block/WallSignBlock.mapping
index a7e8030fb3..caa9de1c82 100644
--- a/mappings/net/minecraft/block/WallSignBlock.mapping
+++ b/mappings/net/minecraft/block/WallSignBlock.mapping
@@ -1,6 +1,6 @@
 CLASS net/minecraft/class_2551 net/minecraft/block/WallSignBlock
 	FIELD field_11726 FACING Lnet/minecraft/class_2754;
-	FIELD field_11727 FACING_TO_SHAPE Ljava/util/Map;
+	FIELD field_11727 SHAPES_BY_DIRECTION Ljava/util/Map;
 	FIELD field_46489 CODEC Lcom/mojang/serialization/MapCodec;
 	METHOD method_54064 (Lcom/mojang/serialization/codecs/RecordCodecBuilder$Instance;)Lcom/mojang/datafixers/kinds/App;
 		ARG 0 instance
diff --git a/mappings/net/minecraft/block/WallSkullBlock.mapping b/mappings/net/minecraft/block/WallSkullBlock.mapping
index 578b7a852a..1b4838eac0 100644
--- a/mappings/net/minecraft/block/WallSkullBlock.mapping
+++ b/mappings/net/minecraft/block/WallSkullBlock.mapping
@@ -1,6 +1,6 @@
 CLASS net/minecraft/class_2549 net/minecraft/block/WallSkullBlock
 	FIELD field_11724 FACING Lnet/minecraft/class_2754;
-	FIELD field_11725 FACING_TO_SHAPE Ljava/util/Map;
+	FIELD field_11725 SHAPES_BY_DIRECTION Ljava/util/Map;
 	FIELD field_46490 CODEC Lcom/mojang/serialization/MapCodec;
 	METHOD method_54065 (Lcom/mojang/serialization/codecs/RecordCodecBuilder$Instance;)Lcom/mojang/datafixers/kinds/App;
 		ARG 0 instance
diff --git a/mappings/net/minecraft/block/WallTorchBlock.mapping b/mappings/net/minecraft/block/WallTorchBlock.mapping
index 0d7ca67945..74ad77e361 100644
--- a/mappings/net/minecraft/block/WallTorchBlock.mapping
+++ b/mappings/net/minecraft/block/WallTorchBlock.mapping
@@ -1,6 +1,6 @@
 CLASS net/minecraft/class_2555 net/minecraft/block/WallTorchBlock
 	FIELD field_11731 FACING Lnet/minecraft/class_2754;
-	FIELD field_11732 BOUNDING_SHAPES Ljava/util/Map;
+	FIELD field_11732 SHAPES_BY_DIRECTION Ljava/util/Map;
 	FIELD field_46491 CODEC Lcom/mojang/serialization/MapCodec;
 	METHOD method_10841 getBoundingShape (Lnet/minecraft/class_2680;)Lnet/minecraft/class_265;
 		ARG 0 state
diff --git a/mappings/net/minecraft/text/HoverEvent.mapping b/mappings/net/minecraft/text/HoverEvent.mapping
index bdb906540d..2c57e514be 100644
--- a/mappings/net/minecraft/text/HoverEvent.mapping
+++ b/mappings/net/minecraft/text/HoverEvent.mapping
@@ -1,6 +1,8 @@
 CLASS net/minecraft/class_2568 net/minecraft/text/HoverEvent
 	FIELD field_46601 CODEC Lcom/mojang/serialization/Codec;
 	METHOD method_10892 getAction ()Lnet/minecraft/class_2568$class_5247;
+	METHOD method_54184 (Lnet/minecraft/class_2568$class_5247;)Lcom/mojang/serialization/MapCodec;
+		ARG 0 action
 	CLASS class_10611 ShowEntity
 		FIELD field_55911 CODEC Lcom/mojang/serialization/MapCodec;
 		METHOD method_66577 (Lcom/mojang/serialization/codecs/RecordCodecBuilder$Instance;)Lcom/mojang/datafixers/kinds/App;
diff --git a/mappings/net/minecraft/util/math/DirectionTransformation.mapping b/mappings/net/minecraft/util/math/DirectionTransformation.mapping
index 2909675d1e..4d281597c7 100644
--- a/mappings/net/minecraft/util/math/DirectionTransformation.mapping
+++ b/mappings/net/minecraft/util/math/DirectionTransformation.mapping
@@ -36,6 +36,9 @@ CLASS net/minecraft/class_4990 net/minecraft/util/math/DirectionTransformation
 		ARG 0 transformation
 	METHOD method_35813 inverse ()Lnet/minecraft/class_4990;
 	METHOD method_35814 getMatrix ()Lorg/joml/Matrix3f;
+	METHOD method_66543 fromAngles (II)Lnet/minecraft/class_4990;
+		ARG 0 xAngle
+		ARG 1 yAngle
 	METHOD method_66544 map (Lnet/minecraft/class_2350$class_2351;)Lnet/minecraft/class_2350$class_2351;
 		ARG 1 axis
 	METHOD method_66545 (Lnet/minecraft/class_2350;)Lnet/minecraft/class_2350;
diff --git a/mappings/net/minecraft/util/shape/VoxelSet.mapping b/mappings/net/minecraft/util/shape/VoxelSet.mapping
index b456325cad..5c57598c28 100644
--- a/mappings/net/minecraft/util/shape/VoxelSet.mapping
+++ b/mappings/net/minecraft/util/shape/VoxelSet.mapping
@@ -62,6 +62,8 @@ CLASS net/minecraft/class_251 net/minecraft/util/shape/VoxelSet
 		ARG 1 axis
 		ARG 2 from
 		ARG 3 to
+	METHOD method_66493 transform (Lnet/minecraft/class_4990;)Lnet/minecraft/class_251;
+		ARG 1 transformation
 	CLASS class_252 PositionConsumer
 		METHOD consume (Lnet/minecraft/class_2350;III)V
 			ARG 1 direction
diff --git a/mappings/net/minecraft/util/shape/VoxelShapes.mapping b/mappings/net/minecraft/util/shape/VoxelShapes.mapping
index c5b87b7a84..767be7439e 100644
--- a/mappings/net/minecraft/util/shape/VoxelShapes.mapping
+++ b/mappings/net/minecraft/util/shape/VoxelShapes.mapping
@@ -3,6 +3,7 @@ CLASS net/minecraft/class_259 net/minecraft/util/shape/VoxelShapes
 	FIELD field_1385 FULL_CUBE Lnet/minecraft/class_265;
 	FIELD field_17669 UNBOUNDED Lnet/minecraft/class_265;
 	FIELD field_31880 MIN_SIZE D
+	FIELD field_55842 BLOCK_CENTER Lnet/minecraft/class_243;
 	METHOD method_1069 createListPair (ILit/unimi/dsi/fastutil/doubles/DoubleList;Lit/unimi/dsi/fastutil/doubles/DoubleList;ZZ)Lnet/minecraft/class_255;
 		ARG 0 size
 		ARG 1 first
@@ -86,6 +87,43 @@ CLASS net/minecraft/class_259 net/minecraft/util/shape/VoxelShapes
 		ARG 6 maxX
 		ARG 8 maxY
 		ARG 10 maxZ
+	METHOD method_66494 createHorizontalAxisShapeMap (Lnet/minecraft/class_265;)Ljava/util/Map;
+		ARG 0 shape
+	METHOD method_66495 createHorizontalAxisShapeMap (Lnet/minecraft/class_265;Lnet/minecraft/class_243;)Ljava/util/Map;
+		ARG 0 shape
+		ARG 1 anchor
+	METHOD method_66496 transform (Lnet/minecraft/class_265;Lnet/minecraft/class_4990;)Lnet/minecraft/class_265;
+		ARG 0 shape
+		ARG 1 transformation
+	METHOD method_66497 transform (Lnet/minecraft/class_265;Lnet/minecraft/class_4990;Lnet/minecraft/class_243;)Lnet/minecraft/class_265;
+		ARG 0 shape
+		ARG 1 transformation
+		ARG 2 anchor
+	METHOD method_66498 transform (Lit/unimi/dsi/fastutil/doubles/DoubleList;ZDD)Lit/unimi/dsi/fastutil/doubles/DoubleList;
+		ARG 0 pointPositions
+		ARG 1 flip
+		ARG 2 component
+		ARG 4 anchor
+	METHOD method_66499 createAxisShapeMap (Lnet/minecraft/class_265;)Ljava/util/Map;
+		ARG 0 shape
+	METHOD method_66500 createAxisShapeMap (Lnet/minecraft/class_265;Lnet/minecraft/class_243;)Ljava/util/Map;
+		ARG 0 shape
+		ARG 1 anchor
+	METHOD method_66501 createHorizontalFacingShapeMap (Lnet/minecraft/class_265;)Ljava/util/Map;
+		ARG 0 shape
+	METHOD method_66502 createHorizontalFacingShapeMap (Lnet/minecraft/class_265;Lnet/minecraft/class_243;)Ljava/util/Map;
+		ARG 0 shape
+		ARG 1 anchor
+	METHOD method_66503 equal (Lnet/minecraft/class_265;Lnet/minecraft/class_265;)Z
+		ARG 0 shape1
+		ARG 1 shape2
+	METHOD method_66504 createFacingShapeMap (Lnet/minecraft/class_265;)Ljava/util/Map;
+		ARG 0 shape
+	METHOD method_66505 createFacingShapeMap (Lnet/minecraft/class_265;Lnet/minecraft/class_243;)Ljava/util/Map;
+		ARG 0 shape
+		ARG 1 anchor
+	METHOD method_66506 createBlockFaceHorizontalFacingShapeMap (Lnet/minecraft/class_265;)Ljava/util/Map;
+		ARG 0 shape
 	CLASS class_260 BoxConsumer
 		METHOD consume (DDDDDD)V
 			ARG 1 minX