diff --git a/game/core/src/main/java/net/minecraft/core/block/BlockLogicFire.java b/game/core/src/main/java/net/minecraft/core/block/BlockLogicFire.java
index a50e5da09..65b9cc09c 100644
--- a/game/core/src/main/java/net/minecraft/core/block/BlockLogicFire.java
+++ b/game/core/src/main/java/net/minecraft/core/block/BlockLogicFire.java
@@ -116,7 +116,7 @@ public class BlockLogicFire extends BlockLogic {
 	@Override
 	public void updateTick(World world, int x, int y, int z, Random rand) {
 		Block<?> blockUnder = world.getBlock(x, y - 1, z);
-		boolean infiniBurn = blockUnder != null && blockUnder.hasTag(BlockTags.INFINITE_BURN) || !world.getGameRuleValue(GameRules.DO_FIRE_SPREAD);
+		boolean infiniBurn = blockUnder != null && blockUnder.hasTag(BlockTags.INFINITE_BURN);
 
 		//Extinguish fire
 		if (!isValidFireLocation(world, x, y, z)) {
diff --git a/game/core/src/main/java/net/minecraft/core/block/BlockLogicSlab.java b/game/core/src/main/java/net/minecraft/core/block/BlockLogicSlab.java
index 4d016bb11..9a4983b1d 100644
--- a/game/core/src/main/java/net/minecraft/core/block/BlockLogicSlab.java
+++ b/game/core/src/main/java/net/minecraft/core/block/BlockLogicSlab.java
@@ -26,7 +26,7 @@ public class BlockLogicSlab extends BlockLogic
 
     public BlockLogicSlab(Block<?> block, Block<?> modelBlock)
     {
-        this(modelBlock, modelBlock, 0);
+        this(block, modelBlock, 0);
         block.setBlockItem(() -> new ItemBlockSlab<>(block));
     }
 
diff --git a/game/core/src/main/java/net/minecraft/core/block/BlockLogicSlabPainted.java b/game/core/src/main/java/net/minecraft/core/block/BlockLogicSlabPainted.java
index 438524d4c..5ec2f7fde 100644
--- a/game/core/src/main/java/net/minecraft/core/block/BlockLogicSlabPainted.java
+++ b/game/core/src/main/java/net/minecraft/core/block/BlockLogicSlabPainted.java
@@ -59,4 +59,9 @@ public class BlockLogicSlabPainted extends BlockLogicSlab implements IPainted
 	public void setColor(World world, int x, int y, int z, DyeColor color) {
 		IPainted.super.setColor(world, x, y, z, color);
 	}
+
+	@Override
+	public String getLanguageKey(int meta) {
+		return super.getLanguageKey(meta) + "." + fromMetadata(meta).colorID;
+	}
 }
diff --git a/game/core/src/main/java/net/minecraft/core/block/Blocks.java b/game/core/src/main/java/net/minecraft/core/block/Blocks.java
index f43785b0a..7e6fce258 100644
--- a/game/core/src/main/java/net/minecraft/core/block/Blocks.java
+++ b/game/core/src/main/java/net/minecraft/core/block/Blocks.java
@@ -272,7 +272,7 @@ public final class Blocks {
     public static final Block<BlockLogicSlab> SLAB_BRICK_GRANITE = register("slab.brick.granite", "minecraft:block/slab_brick_granite", 153, (BlockLogicSupplier<BlockLogicSlab>)b -> new BlockLogicSlab(b, Blocks.BRICK_GRANITE))
         .withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
         .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-    public static final Block<BlockLogicSlabPainted> SLAB_PLANKS_PAINTED = register("slab.planks.painted", "minecraft:block/slab_planks_oak_painted", 154, (BlockLogicSupplier<BlockLogicSlabPainted>) b -> new BlockLogicSlabPainted(b, Blocks.PLANKS_OAK_PAINTED))
+    public static final Block<BlockLogicSlabPainted> SLAB_PLANKS_PAINTED = register("slab.planks.oak.painted", "minecraft:block/slab_planks_oak_painted", 154, (BlockLogicSupplier<BlockLogicSlabPainted>) b -> new BlockLogicSlabPainted(b, Blocks.PLANKS_OAK_PAINTED))
         .withSound(BlockSounds.WOOD).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
         .setBlockItem(ItemBlockSlabPainted::new)
         .withTags(BlockTags.MINEABLE_BY_AXE);
diff --git a/game/core/src/main/java/net/minecraft/core/net/packet/Packet.java b/game/core/src/main/java/net/minecraft/core/net/packet/Packet.java
index 794210e07..4fdc21288 100644
--- a/game/core/src/main/java/net/minecraft/core/net/packet/Packet.java
+++ b/game/core/src/main/java/net/minecraft/core/net/packet/Packet.java
@@ -34,7 +34,7 @@ public abstract class Packet
     private static final Set<Integer> serverBoundPacketIds = new HashSet<>();
 
     public static final int MAX_USERNAME_SIZE = 16;
-    public static final int MAX_NICKNAME_SIZE = 48;
+    public static final int MAX_NICKNAME_SIZE = 256;
     public static final int MAX_AES_KEY_SIZE = 392;
     public static final int MAX_MESSAGE_SIZE = 1024;
 
@@ -150,16 +150,13 @@ public abstract class Packet
         {
             throw new IOException("Received string length is less than zero! Weird string!");
         }
-        byte[] data = new byte[length];
-        dis.readFully(data);
-
-        String result = new String(data, StandardCharsets.UTF_8);
-        if (result.length() > maxLength)
-        {
+        if (length > maxLength) {
             throw new IOException("Received string length longer than maximum allowed (" + length + " > " + maxLength + ")");
         }
+        byte[] data = new byte[length];
+        dis.readFully(data);
 
-        return result;
+        return new String(data, StandardCharsets.UTF_8);
     }
 
     public static void writeUTF16BEString(String string, DataOutputStream dos)
@@ -185,14 +182,14 @@ public abstract class Packet
         {
             throw new IOException("Received string length is less than zero! Weird string!");
         }
+        if (length > maxLength)
+        {
+            throw new IOException("Received string length longer than maximum allowed (" + length + " > " + maxLength + ")");
+        }
         byte[] data = new byte[length * 2];
         dis.readFully(data);
 
         String result = new String(data, StandardCharsets.UTF_16BE);
-        if (result.length() > maxLength)
-        {
-            throw new IOException("Received string length longer than maximum allowed (" + length + " > " + maxLength + ")");
-        }
 
         return result;
     }
diff --git a/util/datagen/src/main/java/net/minecraft/datagen/WorkbenchGenerator.java b/util/datagen/src/main/java/net/minecraft/datagen/WorkbenchGenerator.java
index ea25de92f..1e603783a 100644
--- a/util/datagen/src/main/java/net/minecraft/datagen/WorkbenchGenerator.java
+++ b/util/datagen/src/main/java/net/minecraft/datagen/WorkbenchGenerator.java
@@ -1050,7 +1050,7 @@ class WorkbenchGenerator {
             .addInput('Y', Items.FOOD_CHERRY)
             .addInput('O', new ItemStack(Items.DYE, 1, DyeColor.BROWN.itemMeta))
             .addInput('#', Items.AMMO_SNOWBALL)
-            .addInput('X', Items.BUCKET)
+            .addInput('X', Items.BUCKET_MILK)
             .setConsumeContainer(true)
             .create("ice_cream_bucket", Items.BUCKET_ICECREAM.getDefaultStack());
 
