diff --git a/src/main/java/net/minecraft/core/block/BlockTileEntity.java b/src/main/java/net/minecraft/core/block/BlockTileEntity.java
index e29c4127b..0db0790b0 100644
--- a/src/main/java/net/minecraft/core/block/BlockTileEntity.java
+++ b/src/main/java/net/minecraft/core/block/BlockTileEntity.java
@@ -10,6 +10,7 @@ import net.minecraft.core.world.World;
 
 public abstract class BlockTileEntity extends Block
 {
+    public static boolean createNewEntityOnPlace = true;
 
 	public BlockTileEntity(String key, String namespaceId, int id, Material material)
     {
@@ -21,7 +22,9 @@ public abstract class BlockTileEntity extends Block
 	public void onBlockPlacedByWorld(World world, int x, int y, int z)
     {
         super.onBlockPlacedByWorld(world, x, y, z);
-        world.setBlockTileEntity(x, y, z, getNewBlockEntity());
+        if (createNewEntityOnPlace) {
+            world.setBlockTileEntity(x, y, z, getNewBlockEntity());
+        }
     }
 
     @Override
diff --git a/src/main/java/net/minecraft/core/block/piston/TileEntityMovingPistonBlock.java b/src/main/java/net/minecraft/core/block/piston/TileEntityMovingPistonBlock.java
index 474e0b9fb..eaac8dd84 100644
--- a/src/main/java/net/minecraft/core/block/piston/TileEntityMovingPistonBlock.java
+++ b/src/main/java/net/minecraft/core/block/piston/TileEntityMovingPistonBlock.java
@@ -1,5 +1,6 @@
 package net.minecraft.core.block.piston;
 
+import net.minecraft.core.block.BlockTileEntity;
 import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.block.entity.TileEntityDispatcher;
 import net.minecraft.core.entity.Entity;
@@ -157,8 +158,11 @@ public class TileEntityMovingPistonBlock extends TileEntity
                 worldObj.replaceBlockTileEntity(x, y, z, movedEntity);
             }
             if (movedId != 0) {
+                BlockTileEntity.createNewEntityOnPlace = false;
                 Block.blocksList[movedId].onBlockPlacedByWorld(worldObj, x, y, z);
+                BlockTileEntity.createNewEntityOnPlace = true;
             }
+            assert movedEntity == null || worldObj.getBlockEntity(x, y, z) == movedEntity : "Piston failed to actually move entity!";
             worldObj.notifyBlockChange(x, y, z, movedId);
         }
     }
diff --git a/src/main/java/net/minecraft/core/entity/player/Player.java b/src/main/java/net/minecraft/core/entity/player/Player.java
index 2d5308caa..10dfc1a10 100644
--- a/src/main/java/net/minecraft/core/entity/player/Player.java
+++ b/src/main/java/net/minecraft/core/entity/player/Player.java
@@ -733,7 +733,7 @@ public abstract class Player extends Mob
 	public void readAdditionalSaveData(CompoundTag tag)
     {
         super.readAdditionalSaveData(tag);
-        ListTag nbttaglist = tag.getList("ContainerInventory");
+        ListTag nbttaglist = tag.getList("Inventory");
         inventory.readFromNBT(nbttaglist);
         inventory.setCurrentItemIndex(tag.getIntegerOrDefault("CurrentItem", inventory.getCurrentItemIndex()), true);
         inventory.setHotbarOffset(tag.getIntegerOrDefault("HotbarOffset", inventory.getHotbarOffset()), true);
@@ -767,7 +767,7 @@ public abstract class Player extends Mob
 	public void addAdditionalSaveData(CompoundTag tag)
     {
         super.addAdditionalSaveData(tag);
-        tag.put("ContainerInventory", inventory.writeToNBT(new ListTag()));
+        tag.put("Inventory", inventory.writeToNBT(new ListTag()));
         tag.putInt("CurrentItem", inventory.getCurrentItemIndex());
         tag.putInt("HotbarOffset", inventory.getHotbarOffset());
         tag.putInt("Dimension", dimension);
diff --git a/src/main/java/net/minecraft/core/net/packet/ContainerOpenPacket.java b/src/main/java/net/minecraft/core/net/packet/ContainerOpenPacket.java
index 2a2231d8d..88ea5573d 100644
--- a/src/main/java/net/minecraft/core/net/packet/ContainerOpenPacket.java
+++ b/src/main/java/net/minecraft/core/net/packet/ContainerOpenPacket.java
@@ -30,7 +30,7 @@ public class ContainerOpenPacket extends Packet
     public ContainerOpenPacket(int windowId, int inventoryType, String windowTitle, int slotCount)
     {
         assert windowId <= Byte.MAX_VALUE : "Window Id > 127 won't serialize properly";
-        assert inventoryType <= Byte.MAX_VALUE : "ContainerInventory Type > 127 won't serialize properly";
+        assert inventoryType <= Byte.MAX_VALUE : "Inventory Type > 127 won't serialize properly";
         assert slotCount <= Byte.MAX_VALUE : "Slot Count > 127 won't serialize properly";
         this.windowId = windowId;
         this.inventoryType = inventoryType;
diff --git a/src/main/java/net/minecraft/core/player/inventory/container/ContainerInventory.java b/src/main/java/net/minecraft/core/player/inventory/container/ContainerInventory.java
index 2995f67f5..6282a4ec8 100644
--- a/src/main/java/net/minecraft/core/player/inventory/container/ContainerInventory.java
+++ b/src/main/java/net/minecraft/core/player/inventory/container/ContainerInventory.java
@@ -364,7 +364,7 @@ public class ContainerInventory
     @Override
 	public String getName()
     {
-        return "ContainerInventory";
+        return "Inventory";
     }
 
     @Override
