diff --git a/src/main/java/net/betterthanadventure/utils/DataDumper.java b/src/main/java/net/betterthanadventure/utils/DataDumper.java
index 7e3590974..6e62d8e54 100644
--- a/src/main/java/net/betterthanadventure/utils/DataDumper.java
+++ b/src/main/java/net/betterthanadventure/utils/DataDumper.java
@@ -13,11 +13,11 @@ import net.minecraft.core.data.tag.Tag;
 import net.minecraft.core.entity.SkinVariantList;
 import net.minecraft.core.entity.SpawnListEntry;
 import net.minecraft.core.enums.MobCategory;
-import net.minecraft.core.item.FoodItem;
+import net.minecraft.core.item.ItemFood;
 import net.minecraft.core.item.Item;
 import net.minecraft.core.item.Items;
 import net.minecraft.core.item.tag.ItemTags;
-import net.minecraft.core.item.tool.PickaxeToolItem;
+import net.minecraft.core.item.tool.ItemToolPickaxe;
 import net.minecraft.core.lang.I18n;
 import net.minecraft.core.world.World;
 import net.minecraft.core.world.biome.Biome;
@@ -116,7 +116,7 @@ public class DataDumper implements MinecraftAccessor {
                 .append(item.id).append(",")
                 .append(item.getKey()).append(",")
                 .append(item.getMaxDamage()).append(",")
-                .append(item instanceof FoodItem ? ((FoodItem) item).getHealAmount() : "").append(",")
+                .append(item instanceof ItemFood ? ((ItemFood) item).getHealAmount() : "").append(",")
                 .append(item.getItemStackLimit()).append(",")
                 .append("\"").append(translator.translateNameKey(item.getKey())).append("\"").append(",")
                 .append("\"").append(translator.translateDescKey(item.getKey())).append("\"").append(",");
@@ -132,7 +132,7 @@ public class DataDumper implements MinecraftAccessor {
                 .append(block.getKey()).append(",")
                 .append(block.getHardness()).append(",")
                 .append(block.getBlastResistance(null)).append(",")
-                .append(PickaxeToolItem.miningLevels.getOrDefault(block, 0)).append(",")
+                .append(ItemToolPickaxe.miningLevels.getOrDefault(block, 0)).append(",")
                 .append(block.asItem().getItemStackLimit()).append(",")
                 .append("\"").append(translator.translateNameKey(block.getKey())).append("\"").append(",")
                 .append("\"").append(translator.translateDescKey(block.getKey())).append("\"").append(",");
diff --git a/src/main/java/net/minecraft/client/Minecraft.java b/src/main/java/net/minecraft/client/Minecraft.java
index 7f00ea053..8e339a871 100644
--- a/src/main/java/net/minecraft/client/Minecraft.java
+++ b/src/main/java/net/minecraft/client/Minecraft.java
@@ -19,19 +19,21 @@ import java.util.*;
 import com.mojang.logging.LogUtils;
 import com.mojang.nbt.CompoundTag;
 import net.minecraft.client.entity.ClientSkinVariantList;
+import net.minecraft.client.entity.player.PlayerLocal;
 import net.minecraft.client.gui.*;
-import net.minecraft.client.gui.achievements.AchievementsScreen;
-import net.minecraft.client.gui.chat.ChatScreen;
-import net.minecraft.client.gui.chat.SleepScreenMP;
-import net.minecraft.client.gui.toasts.HudToastsElement;
+import net.minecraft.client.gui.achievements.ScreenAchievements;
+import net.minecraft.client.gui.chat.ScreenChat;
+import net.minecraft.client.gui.chat.ScreenSleepMP;
+import net.minecraft.client.gui.toasts.GuiElementToastsHud;
 import net.minecraft.client.holiday.Holidays;
+import net.minecraft.client.net.handler.PacketHandlerClient;
 import net.minecraft.client.world.chunk.provider.ChunkProviderStatic;
 import net.minecraft.core.achievement.Achievements;
+import net.minecraft.core.block.BlockLeavesBase;
 import net.minecraft.core.net.command.util.CommandHelper;
 import net.minecraft.core.util.helper.DyeColor;
 import net.minecraft.core.util.helper.LoggedPrintStream;
 import net.minecraft.core.util.helper.UUIDHelper;
-import net.minecraft.core.world.SpawnerMobs;
 import net.minecraft.core.world.type.WorldType;
 import net.minecraft.core.world.type.WorldTypeGroups;
 
@@ -49,12 +51,11 @@ import org.lwjgl.input.Mouse;
 import org.lwjgl.opengl.GL11;
 
 import net.minecraft.client.discord.RichPresenceHandlerThread;
-import net.minecraft.client.entity.player.LocalPlayer;
-import net.minecraft.client.entity.player.MultiplayerLocalPlayer;
-import net.minecraft.client.gui.hud.IngameHud;
-import net.minecraft.client.gui.container.InventoryScreen;
-import net.minecraft.client.gui.container.InventoryScreenCreative;
-import net.minecraft.client.gui.modelviewer.ModelViewerScreen;
+import net.minecraft.client.entity.player.PlayerLocalMultiplayer;
+import net.minecraft.client.gui.hud.HudIngame;
+import net.minecraft.client.gui.container.ScreenInventory;
+import net.minecraft.client.gui.container.ScreenInventoryCreative;
+import net.minecraft.client.gui.modelviewer.ScreenModelViewer;
 import net.minecraft.client.gui.popup.PopupScreen;
 import net.minecraft.client.input.InputDevice;
 import net.minecraft.client.input.InputHandler;
@@ -63,7 +64,6 @@ import net.minecraft.client.input.MouseInput;
 import net.minecraft.client.input.PlayerInput;
 import net.minecraft.client.input.controller.ControllerInput;
 import net.minecraft.client.input.controller.Joystick;
-import net.minecraft.client.net.handler.ClientPacketHandler;
 import net.minecraft.client.net.thread.ThreadDownloadResources;
 import net.minecraft.client.option.GameSettings;
 import net.minecraft.client.option.KeyBinding;
@@ -112,11 +112,10 @@ import net.minecraft.core.Timer;
 import net.minecraft.core.UnexpectedThrowable;
 import net.minecraft.core.achievement.stat.StatList;
 import net.minecraft.core.achievement.stat.StatsCounter;
-import net.minecraft.core.block.BaseLeavesBlock;
 import net.minecraft.core.block.Blocks;
 import net.minecraft.core.data.DataLoader;
 import net.minecraft.core.data.registry.Registries;
-import net.minecraft.core.entity.ItemEntity;
+import net.minecraft.core.entity.EntityItem;
 import net.minecraft.core.entity.SkinVariantList;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.enums.EnumOS;
@@ -191,7 +190,7 @@ public class Minecraft
     private final Timer timer;
     public World theWorld;
     public RenderGlobal renderGlobal;
-    public LocalPlayer thePlayer;
+    public PlayerLocal thePlayer;
     public ICamera activeCamera;
     public ParticleEngine particleEngine;
     public Session session;
@@ -215,8 +214,8 @@ public class Minecraft
     public WorldRenderer worldRenderer;
     public ThreadDownloadResources downloadResourcesThread;
     private int ticksRan;
-    public HudToastsElement guiToasts;
-    public IngameHud ingameHud;
+    public GuiElementToastsHud guiToasts;
+    public HudIngame hudIngame;
     public boolean skipRenderWorld;
     public HitResult objectMouseOver;
     public GameSettings gameSettings;
@@ -280,7 +279,7 @@ public class Minecraft
         currentScreen = null;
         loadingScreen = new LoadingScreenRenderer(this);
         ticksRan = 0;
-        guiToasts = new HudToastsElement(this);
+        guiToasts = new GuiElementToastsHud(this);
         skipRenderWorld = false;
         objectMouseOver = null;
         sndManager = new SoundEngine();
@@ -358,9 +357,9 @@ public class Minecraft
 			}
 			if(throwable.exception instanceof RuntimeException) {
 				changeWorld(null);
-				MainMenuScreen mainMenuScreen = new MainMenuScreen();
-				displayScreen(mainMenuScreen);
-				PopupScreen error = ExceptionPopupElement.create(mainMenuScreen, throwable.exception, this);
+				ScreenMainMenu screenMainMenu = new ScreenMainMenu();
+				displayScreen(screenMainMenu);
+				PopupScreen error = ExceptionPopupElement.create(screenMainMenu, throwable.exception, this);
 				displayScreen(error);
 			}else {
 				changeWorld(null);
@@ -535,7 +534,7 @@ public class Minecraft
         }
         
         OpenGLHelper.checkError("post startup");
-        ingameHud = new IngameHud(this);
+        hudIngame = new HudIngame(this);
 
         new Registries();
 
@@ -593,28 +592,28 @@ public class Minecraft
         }
 
         if (!hasBeta173) {
-            displayScreen(new MissingMinecraftScreen());
+            displayScreen(new ScreenMissingMinecraft());
         }
         else if (System.getProperty("sun.arch.data.model").equals("32"))
         {
-            displayScreen(new BadJavaArchScreen());
+            displayScreen(new ScreenBadJavaArch());
         }
         else if(serverName != null)
         {
-            displayScreen(new ConnectingScreen(this, serverName, serverPort));
+            displayScreen(new ScreenConnecting(this, serverName, serverPort));
         }
         else if (worldPresetName != null && worldPresetSeed != null)
         {
-            SelectWorldScreen selectWorldScreen = new SelectWorldScreen(null);
-            displayScreen(selectWorldScreen);
-            selectWorldScreen.deletePresetWorld(worldPresetName);
-            CreateWorldScreen screen = new CreateWorldScreen(null);
+            ScreenSelectWorld screenSelectWorld = new ScreenSelectWorld(null);
+            displayScreen(screenSelectWorld);
+            screenSelectWorld.deletePresetWorld(worldPresetName);
+            ScreenCreateWorld screen = new ScreenCreateWorld(null);
             displayScreen(screen);
             screen.runPreset(worldPresetName, worldPresetSeed, worldPresetX, worldPresetY, worldPresetZ);
         }
         else
         {
-            displayScreen(new MainMenuScreen());
+            displayScreen(new ScreenMainMenu());
         }
         gameWindow.updateWindowState();
     }
@@ -801,7 +800,7 @@ public class Minecraft
         {
             currentScreen.removed();
         }
-        if(screen instanceof MainMenuScreen)
+        if(screen instanceof ScreenMainMenu)
         {
             statsCounter.fetchStats();
         }
@@ -810,15 +809,15 @@ public class Minecraft
         }
         if(screen == null && theWorld == null)
         {
-            screen = new MainMenuScreen();
+            screen = new ScreenMainMenu();
         }
         else if(screen == null && thePlayer.getHealth() <= 0)
         {
-            screen = new GameOverScreen();
+            screen = new ScreenGameOver();
         }
-        if(screen instanceof MainMenuScreen)
+        if(screen instanceof ScreenMainMenu)
         {
-            ingameHud.clearChatMessages();
+            hudIngame.clearChatMessages();
         }
         currentScreen = screen;
         if(screen != null)
@@ -900,7 +899,7 @@ public class Minecraft
                     Vec3.initializePool();
                     
                     if(gameWindow.shouldClose()) shutdown();
-                    if(isGamePaused && theWorld != null && !(currentScreen instanceof ModelViewerScreen))
+                    if(isGamePaused && theWorld != null && !(currentScreen instanceof ScreenModelViewer))
                     {
                         float temp = timer.partialTicks;
                         timer.advanceTime();
@@ -934,7 +933,7 @@ public class Minecraft
                             LOGGER.error("MinecraftException occurred while attempting to run tick, exiting world!", e);
                         }
                         changeWorld(null);
-                        displayScreen(new ConflictWarningScreen());
+                        displayScreen(new ScreenConflictWarning());
                     }
                     
                     Debug.change("update"); // 1
@@ -942,8 +941,8 @@ public class Minecraft
 
                     OpenGLHelper.checkError("pre render");
                     RenderBlocks.fancyGrass = gameSettings.fancyGraphics.value == 1;
-                    ItemEntity.enableItemClumping = gameSettings.enableItemClumping.value;
-                    BaseLeavesBlock.enableTreeShadowing = gameSettings.treeShadows.value;
+                    EntityItem.enableItemClumping = gameSettings.enableItemClumping.value;
+                    BlockLeavesBase.enableTreeShadowing = gameSettings.treeShadows.value;
                     sndManager.updateListener(thePlayer, timer.partialTicks);
                     glEnable(GL_TEXTURE_2D);
                     if(theWorld != null)
@@ -1039,12 +1038,12 @@ public class Minecraft
                 {
                     theWorld = null;
                     changeWorld(null);
-                    displayScreen(new ConflictWarningScreen());
+                    displayScreen(new ScreenConflictWarning());
                 }
                 catch(OutOfMemoryError outofmemoryerror)
                 {
                     freeUpMemory();
-                    displayScreen(new OutOfMemoryScreen());
+                    displayScreen(new ScreenOutOfMemory());
                     System.gc();
                 }
                 catch(Throwable throwable)
@@ -1102,13 +1101,13 @@ public class Minecraft
 					if(Shaders.enableShaders) {
 						try {
 							screenshotHelper.takePanoramaScreenshot();
-							ingameHud.addChatMessage("Saved panorama screenshot!");
+							hudIngame.addChatMessage("Saved panorama screenshot!");
 						}catch (Exception e) {
                             LOGGER.error("Exception occurred while taking panoramic screenshot!", e);
 						}
 					}
 				}else {
-					ingameHud.addChatMessage(ScreenShot.saveScreenshot(minecraftDir, gameWindow.getWidthPixels(), gameWindow.getHeightPixels()));
+					hudIngame.addChatMessage(ScreenShot.saveScreenshot(minecraftDir, gameWindow.getWidthPixels(), gameWindow.getHeightPixels()));
 				}
 				Debug.pop();
 			}
@@ -1159,7 +1158,7 @@ public class Minecraft
     {
         if(currentScreen == null)
         {
-            displayScreen(new PauseScreen());
+            displayScreen(new ScreenPause());
         }
     }
 
@@ -1364,7 +1363,7 @@ public class Minecraft
         Debug.push("gui");
         subtitleTracker.tick();
         statsCounter.tick();
-        ingameHud.updateTick();
+        hudIngame.updateTick();
         Debug.change("misc");
         worldRenderer.getMouseOver(1.0F);
         if(thePlayer != null)
@@ -1392,16 +1391,16 @@ public class Minecraft
             {
                 if(theWorld.isClientSide)
                 {
-                    displayScreen(new SleepScreenMP());
+                    displayScreen(new ScreenSleepMP());
                 }
                 else
                 {
-                    displayScreen(new SleepScreenSP());
+                    displayScreen(new ScreenSleepSP());
                 }
                 
             }
         }
-        else if(currentScreen != null && (currentScreen instanceof SleepScreenMP) && !thePlayer.isPlayerSleeping())
+        else if(currentScreen != null && (currentScreen instanceof ScreenSleepMP) && !thePlayer.isPlayerSleeping())
         {
             displayScreen(null);
         }
@@ -1449,7 +1448,7 @@ public class Minecraft
                         	gameSettings.flightSpeed.value = newSpeed;
                         	
                         	thePlayer.setFlySpeed(newSpeed);
-                        	ingameHud.heldItemTooltipElement.setOptionNameAndValueString(gameSettings.flightSpeed);
+                        	hudIngame.heldItemTooltipElement.setOptionNameAndValueString(gameSettings.flightSpeed);
                         }
                         else if (!gameSettings.keyZoom.isPressed())
                         {
@@ -1522,13 +1521,13 @@ public class Minecraft
                         if (gameSettings.keyToggleDebug.isPressed())
                         {
                             if(Keyboard.getEventKey() == Keyboard.KEY_Q) {
-                                ingameHud.addChatMessage(TextFormatting.YELLOW + "Keyboard shortcuts: ");
+                                hudIngame.addChatMessage(TextFormatting.YELLOW + "Keyboard shortcuts: ");
                                 gameSettings.debugsKeys.sort(Comparator.comparing(KeyBinding::getKeyName));
                                 for (KeyBinding binding: gameSettings.debugsKeys){
-                                    ingameHud.addChatMessage(String.format("%s + %s: %s", gameSettings.keyToggleDebug.getKeyName(), binding.getKeyName(), I18n.getInstance().translateKey(binding.getId())));
+                                    hudIngame.addChatMessage(String.format("%s + %s: %s", gameSettings.keyToggleDebug.getKeyName(), binding.getKeyName(), I18n.getInstance().translateKey(binding.getId())));
                                 }
-                                ingameHud.addChatMessage(String.format("%s: %s", gameSettings.keyToggleTextureAtlas.getKeyName(), I18n.getInstance().translateKey(gameSettings.keyToggleTextureAtlas.getId())));
-                                ingameHud.addChatMessage(String.format("%s: %s", gameSettings.keyReleaseCursor.getKeyName(), I18n.getInstance().translateKey(gameSettings.keyReleaseCursor.getId())));
+                                hudIngame.addChatMessage(String.format("%s: %s", gameSettings.keyToggleTextureAtlas.getKeyName(), I18n.getInstance().translateKey(gameSettings.keyToggleTextureAtlas.getId())));
+                                hudIngame.addChatMessage(String.format("%s: %s", gameSettings.keyReleaseCursor.getKeyName(), I18n.getInstance().translateKey(gameSettings.keyReleaseCursor.getId())));
                             }
                             if (gameSettings.keyReload.isPressEvent())
                             {
@@ -1554,7 +1553,7 @@ public class Minecraft
                             }
                             else if (gameSettings.keyFullbright.isPressEvent())
                             {
-                                ClientPacketHandler queue = getSendQueue();
+                                PacketHandlerClient queue = getSendQueue();
 
                                 if (queue != null)
                                 {
@@ -1577,43 +1576,43 @@ public class Minecraft
                                         }
                                     }
                                 }
-                                ingameHud.heldItemTooltipElement.setString("Fullbright: " + (fullbright ? "On" : "Off"));
+                                hudIngame.heldItemTooltipElement.setString("Fullbright: " + (fullbright ? "On" : "Off"));
                             }
                             else if (gameSettings.keyLightmaps.isPressEvent())
                             {
                             	if(gameSettings.lightmapStyle.value == LightmapStyle.DISABLED) {
                             		gameSettings.lightmapStyle.value = LightmapStyle.GRAY;
-                            		ingameHud.heldItemTooltipElement.setString("Lightmap: On");
+                            		hudIngame.heldItemTooltipElement.setString("Lightmap: On");
                             		renderGlobal.loadRenderers();
                             	}else {
                             		gameSettings.lightmapStyle.value = LightmapStyle.DISABLED;
-                            		ingameHud.heldItemTooltipElement.setString("Lightmap: Off");
+                            		hudIngame.heldItemTooltipElement.setString("Lightmap: Off");
                             		renderGlobal.loadRenderers();
                             	}
                             }
                             else if (gameSettings.keyCollisionBoxes.isPressEvent())
                             {
                             	gameSettings.showCollisionBoxes.toggle();
-                                ingameHud.heldItemTooltipElement.setOptionNameAndValueString(gameSettings.showCollisionBoxes);
+                                hudIngame.heldItemTooltipElement.setOptionNameAndValueString(gameSettings.showCollisionBoxes);
                             }
                             else if (gameSettings.keyChunkBorders.isPressEvent())
                             {
                             	gameSettings.showChunkBorders.toggle();
-                                ingameHud.heldItemTooltipElement.setOptionNameAndValueString(gameSettings.showChunkBorders);
+                                hudIngame.heldItemTooltipElement.setOptionNameAndValueString(gameSettings.showChunkBorders);
                             }
                             else if (gameSettings.keyClearChat.isPressEvent())
                             {
-                                ingameHud.clearChatMessages();
+                                hudIngame.clearChatMessages();
                             }
                             else if (gameSettings.keyPauseLostFocus.isPressEvent())
                             {
                                 gameSettings.pauseOnLostFocus.toggle();
-                                ingameHud.heldItemTooltipElement.setOptionNameAndValueString(gameSettings.pauseOnLostFocus);
+                                hudIngame.heldItemTooltipElement.setOptionNameAndValueString(gameSettings.pauseOnLostFocus);
                             }
                             else if (gameSettings.keyToggleItemInfo.isPressEvent())
                             {
                                 gameSettings.showItemDebugInfo.toggle();
-                                ingameHud.heldItemTooltipElement.setOptionNameAndValueString(gameSettings.showItemDebugInfo);
+                                hudIngame.heldItemTooltipElement.setOptionNameAndValueString(gameSettings.showItemDebugInfo);
                             }
                             else if (gameSettings.keyReloadChunks.isPressEvent())
                             {
@@ -1623,7 +1622,7 @@ public class Minecraft
                             {
                                 gameSettings.ambientOcclusion.toggle();
                                 gameSettings.ambientOcclusion.onUpdate();
-                                ingameHud.heldItemTooltipElement.setOptionNameAndValueString(gameSettings.ambientOcclusion);
+                                hudIngame.heldItemTooltipElement.setOptionNameAndValueString(gameSettings.ambientOcclusion);
                             }
                             if(!gameSettings.keyToggleDebug.isPressEvent()) f3Press = false;
                         }
@@ -1637,7 +1636,7 @@ public class Minecraft
                         }
                         else if (gameSettings.keyCommand.isPressed())
                         {
-                            displayScreen(new ChatScreen("/"));
+                            displayScreen(new ScreenChat("/"));
                         }
                         else
                         {
@@ -1798,7 +1797,7 @@ public class Minecraft
         // Cinematic camera
         if (gameSettings.keyCinematicCamera.isPressEvent(currentInputDevice)) {
             gameSettings.smoothCamera.value = !gameSettings.smoothCamera.value;
-            ingameHud.heldItemTooltipElement.setOptionNameAndValueString(gameSettings.smoothCamera);
+            hudIngame.heldItemTooltipElement.setOptionNameAndValueString(gameSettings.smoothCamera);
             return true;
         }
 
@@ -1823,13 +1822,13 @@ public class Minecraft
 
         // Enter photo mode
         if (gameSettings.keyPhotoMode.isPressEvent(currentInputDevice)) {
-            displayScreen(new PhotoModeScreen());
+            displayScreen(new ScreenPhotoMode());
             return true;
         }
 
         // Open chat
         if (gameSettings.keyChat.isPressEvent(currentInputDevice)) {
-            displayScreen(new ChatScreen());
+            displayScreen(new ScreenChat());
             return true;
         }
 
@@ -1896,7 +1895,7 @@ public class Minecraft
         // Toggle fog
         if (gameSettings.keyToggleFog.isPressEvent(currentInputDevice)) {
             gameSettings.renderDistance.toggle(shift ? -8 : 8);
-            ingameHud.heldItemTooltipElement.setOptionNameAndValueString(gameSettings.renderDistance);
+            hudIngame.heldItemTooltipElement.setOptionNameAndValueString(gameSettings.renderDistance);
             return true;
         }
 
@@ -1914,7 +1913,7 @@ public class Minecraft
             }
             int newGammaStep = ((currentGammaStep + (shift ? -1 : 1)) + 5) % 5;
             gameSettings.gamma.value = newGammaStep * 0.25f;
-            ingameHud.heldItemTooltipElement.setOptionNameAndValueString(gameSettings.gamma);
+            hudIngame.heldItemTooltipElement.setOptionNameAndValueString(gameSettings.gamma);
             return true;
         }
 
@@ -1962,26 +1961,26 @@ public class Minecraft
 
         // Open Achievements
         if (gameSettings.keyOpenAchievements.isPressEvent(currentInputDevice)) {
-            displayScreen(new AchievementsScreen(null, statsCounter));
+            displayScreen(new ScreenAchievements(null, statsCounter));
         }
 
         // Open Statistics
         if (gameSettings.keyOpenStatistics.isPressEvent(currentInputDevice)) {
-            displayScreen(new StatsScreen(null, statsCounter));
+            displayScreen(new ScreenStats(null, statsCounter));
         }
         
         return false;
     }
 
-    private InventoryScreen getInventoryScreen()
+    private ScreenInventory getInventoryScreen()
     {
         if (thePlayer.getGamemode() == Gamemode.creative)
         {
-            return new InventoryScreenCreative(thePlayer);
+            return new ScreenInventoryCreative(thePlayer);
         }
         else
         {
-            return new InventoryScreen(thePlayer);
+            return new ScreenInventory(thePlayer);
         }
     }
     
@@ -2023,7 +2022,7 @@ public class Minecraft
                 gameSettings.showPlayerList.value = !gameSettings.showPlayerList.value;
             }
             if(controller.buttonStart.pressedThisFrame()) {
-                displayScreen(new PauseScreen());
+                displayScreen(new ScreenPause());
             }
             if(controller.digitalPad.up.pressedThisFrame()) {
                 if (!thePlayer.inventory.currentItemLocked()) {
@@ -2079,7 +2078,7 @@ public class Minecraft
                 currentScreen.mouseClicked((int)controller.cursorX, (int)controller.cursorY, 10);
             }
 
-            //Inventory Controls
+            //ContainerInventory Controls
             try{
                 currentScreen.controllerInput(controller);
             }catch (Exception e) {
@@ -2273,7 +2272,7 @@ public class Minecraft
             {
                 if(player == null)
                 {
-                    thePlayer = (LocalPlayer)world.findSubclassOf(LocalPlayer.class);
+                    thePlayer = (PlayerLocal)world.findSubclassOf(PlayerLocal.class);
                 }
             }
             else if(thePlayer != null)
@@ -2287,7 +2286,7 @@ public class Minecraft
             }
             if(thePlayer == null)
             {
-                thePlayer = (LocalPlayer)playerController.createPlayer(world);
+                thePlayer = (PlayerLocal)playerController.createPlayer(world);
                 thePlayer.resetPos();
                 playerController.initPlayer(thePlayer);
             }
@@ -2466,7 +2465,7 @@ public class Minecraft
             theWorld.setEntityDead(thePlayer);
             playerGamemode = thePlayer.getGamemode();
         }
-        thePlayer = (LocalPlayer)playerController.createPlayer(theWorld);
+        thePlayer = (PlayerLocal)playerController.createPlayer(theWorld);
         thePlayer.dimension = targetDimension;
         thePlayer.setGamemode(playerGamemode);
         if (previousPlayer != null && previousPlayer.getHeldObject() != null) {
@@ -2497,17 +2496,17 @@ public class Minecraft
         thePlayer.animate4();
         playerController.adjustPlayer(thePlayer);
         prepareLevel("Respawning");
-        if(currentScreen instanceof GameOverScreen)
+        if(currentScreen instanceof ScreenGameOver)
         {
             displayScreen(null);
         }
     }
 
-    public ClientPacketHandler getSendQueue()
+    public PacketHandlerClient getSendQueue()
     {
-        if(thePlayer instanceof MultiplayerLocalPlayer)
+        if(thePlayer instanceof PlayerLocalMultiplayer)
         {
-            return ((MultiplayerLocalPlayer)thePlayer).sendQueue;
+            return ((PlayerLocalMultiplayer)thePlayer).sendQueue;
         } else
         {
             return null;
diff --git a/src/main/java/net/minecraft/client/discord/RichPresenceHandlerThread.java b/src/main/java/net/minecraft/client/discord/RichPresenceHandlerThread.java
index ba5a31f2a..e956b0a20 100644
--- a/src/main/java/net/minecraft/client/discord/RichPresenceHandlerThread.java
+++ b/src/main/java/net/minecraft/client/discord/RichPresenceHandlerThread.java
@@ -12,8 +12,8 @@ import de.jcm.discordgamesdk.CreateParams;
 import de.jcm.discordgamesdk.GameSDKException;
 import de.jcm.discordgamesdk.activity.Activity;
 import net.minecraft.client.Minecraft;
-import net.minecraft.client.entity.player.MultiplayerLocalPlayer;
-import net.minecraft.client.gui.PauseScreen;
+import net.minecraft.client.entity.player.PlayerLocalMultiplayer;
+import net.minecraft.client.gui.ScreenPause;
 import net.minecraft.core.world.Dimension;
 import net.minecraft.core.world.biome.Biome;
 import net.minecraft.core.world.biome.Biomes;
@@ -148,13 +148,13 @@ public class RichPresenceHandlerThread extends Thread {
         if (minecraft.theWorld == null) {
             activity.setState("In the main menu");
         } else if (minecraft.thePlayer != null) {
-            if (minecraft.thePlayer instanceof MultiplayerLocalPlayer) {
+            if (minecraft.thePlayer instanceof PlayerLocalMultiplayer) {
                 activity.setDetails("Multiplayer");
-                int playerCount = ((MultiplayerLocalPlayer) minecraft.thePlayer).sendQueue.players.size();
+                int playerCount = ((PlayerLocalMultiplayer) minecraft.thePlayer).sendQueue.players.size();
                 activity.party().size().setCurrentSize(playerCount);
                 activity.party().size().setMaxSize(100);
             } else {
-                if (minecraft.currentScreen instanceof PauseScreen) {
+                if (minecraft.currentScreen instanceof ScreenPause) {
                     activity.setDetails("Singleplayer (paused)");
                 } else {
                     activity.setDetails("Singleplayer");
diff --git a/src/main/java/net/minecraft/client/entity/particle/GoldenArrowParticle.java b/src/main/java/net/minecraft/client/entity/particle/ParticleArrowGolden.java
similarity index 92%
rename from src/main/java/net/minecraft/client/entity/particle/GoldenArrowParticle.java
rename to src/main/java/net/minecraft/client/entity/particle/ParticleArrowGolden.java
index 57681c0ad..db708d245 100644
--- a/src/main/java/net/minecraft/client/entity/particle/GoldenArrowParticle.java
+++ b/src/main/java/net/minecraft/client/entity/particle/ParticleArrowGolden.java
@@ -4,14 +4,14 @@ import net.minecraft.client.render.texture.stitcher.TextureRegistry;
 import net.minecraft.client.render.tessellator.Tessellator;
 import net.minecraft.core.world.World;
 
-public class GoldenArrowParticle extends Particle {
+public class ParticleArrowGolden extends Particle {
     private final float oSize;
 
-    public GoldenArrowParticle(World world, double x, double y, double z, double xa, double ya, double za) {
+    public ParticleArrowGolden(World world, double x, double y, double z, double xa, double ya, double za) {
         this(world, x, y, z, xa, ya, za, 1.0F);
     }
 
-    public GoldenArrowParticle(World world, double x, double y, double z, double xa, double ya, double za, float scale) {
+    public ParticleArrowGolden(World world, double x, double y, double z, double xa, double ya, double za, float scale) {
         super(world, x, y, z, 0.0D, 0.0D, 0.0D);
         this.xd *= 0.1D;
         this.yd *= 0.1D;
diff --git a/src/main/java/net/minecraft/client/entity/particle/TerrainParticle.java b/src/main/java/net/minecraft/client/entity/particle/ParticleBlockBreaking.java
similarity index 92%
rename from src/main/java/net/minecraft/client/entity/particle/TerrainParticle.java
rename to src/main/java/net/minecraft/client/entity/particle/ParticleBlockBreaking.java
index 40d1e002b..319dd11bd 100644
--- a/src/main/java/net/minecraft/client/entity/particle/TerrainParticle.java
+++ b/src/main/java/net/minecraft/client/entity/particle/ParticleBlockBreaking.java
@@ -14,11 +14,11 @@ import net.minecraft.core.block.Block;
 import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.world.World;
 
-public class TerrainParticle extends Particle {
+public class ParticleBlockBreaking extends Particle {
     private final Block block;
     private final Side side;
 
-    public TerrainParticle(World world, double x, double y, double z, double xa, double ya, double za, Block block, Side side, int meta) {
+    public ParticleBlockBreaking(World world, double x, double y, double z, double xa, double ya, double za, Block block, Side side, int meta) {
         super(world, x, y, z, xa, ya, za);
         this.side = side;
         this.block = block;
@@ -28,7 +28,7 @@ public class TerrainParticle extends Particle {
         this.size /= 2.0F;
     }
 
-    public TerrainParticle init(int x, int y, int z) {
+    public ParticleBlockBreaking init(int x, int y, int z) {
         int meta = this.world.getBlockMetadata(x, y, z);
         BlockModel<?> model = BlockModelDispatcher.getInstance().getDispatch(this.block);
         if (model.shouldSideBeColored(this.world, x, y, z, this.side.getId(), meta)) {
diff --git a/src/main/java/net/minecraft/client/entity/particle/BubbleParticle.java b/src/main/java/net/minecraft/client/entity/particle/ParticleBubble.java
similarity index 93%
rename from src/main/java/net/minecraft/client/entity/particle/BubbleParticle.java
rename to src/main/java/net/minecraft/client/entity/particle/ParticleBubble.java
index 6d9f5237c..8b3d88ddf 100644
--- a/src/main/java/net/minecraft/client/entity/particle/BubbleParticle.java
+++ b/src/main/java/net/minecraft/client/entity/particle/ParticleBubble.java
@@ -5,10 +5,10 @@ import net.minecraft.core.block.material.Material;
 import net.minecraft.core.util.helper.MathHelper;
 import net.minecraft.core.world.World;
 
-public class BubbleParticle extends Particle {
+public class ParticleBubble extends Particle {
     private final boolean needsWater;
 
-    public BubbleParticle(World world, double x, double y, double z, double xa, double ya, double za, boolean needsWater) {
+    public ParticleBubble(World world, double x, double y, double z, double xa, double ya, double za, boolean needsWater) {
         super(world, x, y, z, xa, ya, za);
         this.needsWater = needsWater;
         this.rCol = 1.0F;
diff --git a/src/main/java/net/minecraft/client/entity/particle/ParticleDispatcher.java b/src/main/java/net/minecraft/client/entity/particle/ParticleDispatcher.java
index 7eb242902..d0bd0297e 100644
--- a/src/main/java/net/minecraft/client/entity/particle/ParticleDispatcher.java
+++ b/src/main/java/net/minecraft/client/entity/particle/ParticleDispatcher.java
@@ -6,7 +6,7 @@ import net.minecraft.client.render.texture.stitcher.TextureRegistry;
 import net.minecraft.client.util.dispatch.Dispatcher;
 import net.minecraft.core.block.Block;
 import net.minecraft.core.block.Blocks;
-import net.minecraft.core.entity.animal.FireflyClusterMob;
+import net.minecraft.core.entity.animal.MobFireflyCluster;
 import net.minecraft.core.item.Item;
 import net.minecraft.core.item.Items;
 import net.minecraft.core.util.helper.BlockParticleHelper;
@@ -34,45 +34,45 @@ public final class ParticleDispatcher extends Dispatcher<String, ParticleLambda>
 
     private ParticleDispatcher() {
         Minecraft mc = Minecraft.getMinecraft(this);
-        addDispatch("bubble", (world, x, y, z, motionX, motionY, motionZ, data) -> new BubbleParticle(world, x, y, z, motionX, motionY, motionZ, true));
-        addDispatch("smoke", (world, x, y, z, motionX, motionY, motionZ, data) -> new SmokeParticle(world, x, y, z, motionX, motionY, motionX));
-        addDispatch("note", (world, x, y, z, motionX, motionY, motionZ, data) -> new NoteParticle(world, x, y, z, motionX, motionY, motionX, data));
-        addDispatch("portal", (world, x, y, z, motionX, motionY, motionZ, data) -> new PortalParticle(world, x, y, z, motionX, motionY, motionX, data));
-        addDispatch("explode", (world, x, y, z, motionX, motionY, motionZ, data) -> new ExplodeParticle(world, x, y, z, motionX, motionY, motionX));
-        addDispatch("flame", (world, x, y, z, motionX, motionY, motionZ, data) -> new FlameParticle(world, x, y, z, motionX, motionY, motionX, FlameParticle.Type.ORANGE));
-        addDispatch("blueflame", (world, x, y, z, motionX, motionY, motionZ, data) -> new FlameParticle(world, x, y, z, motionX, motionY, motionX, FlameParticle.Type.BLUE));
-        addDispatch("soulflame", (world, x, y, z, motionX, motionY, motionZ, data) -> new FlameParticle(world, x, y, z, motionX, motionY, motionX, FlameParticle.Type.SOUL));
-        addDispatch("lava", (world, x, y, z, motionX, motionY, motionZ, data) -> new LavaParticle(world, x, y, z));
-        addDispatch("footstep", (world, x, y, z, motionX, motionY, motionZ, data) -> new FootstepParticle(mc.textureManager, world, x, y, z));
-        addDispatch("splash", (world1, d, d1, d2, d3, d4, d5, data) -> new SplashParticle(world1, d, d1, d2, d3, d4, d5));
-        addDispatch("largesmoke", (world, x, y, z, motionX, motionY, motionZ, data) -> new SmokeParticle(world, x, y, z, motionX, motionY, motionX, 2.5f));
-        addDispatch("reddust", (world, x, y, z, motionX, motionY, motionZ, data) -> new RedstoneDustParticle(world, x, y, z, (float) motionX, (float) motionY, (float) motionZ, data));
-        addDispatch("item", (world, x, y, z, motionX, motionY, motionZ, data) -> new BreakingItemParticle(world, x, y, z, Item.itemsList[MathHelper.clamp(data, 0, Item.itemsList.length - 1)]));
-        addDispatch("block", (world, x, y, z, motionX, motionY, motionZ, data) -> new TerrainParticle(world, x, y, z, motionX, motionY, motionZ, Block.blocksList[BlockParticleHelper.decodeBlockID(data)], BlockParticleHelper.decodeBlockSide(data), BlockParticleHelper.decodeBlockMeta(data)).init((int) x, (int) y, (int) z));
-        addDispatch("snowshovel", (world, x, y, z, motionX, motionY, motionZ, data) -> new SnowShovelParticle(world, x, y, z, motionX, motionY, motionX));
-        addDispatch("heart", (world, x, y, z, motionX, motionY, motionZ, data) -> new HeartParticle(world, x, y, z, motionX, motionY, motionX));
+        addDispatch("bubble", (world, x, y, z, motionX, motionY, motionZ, data) -> new ParticleBubble(world, x, y, z, motionX, motionY, motionZ, true));
+        addDispatch("smoke", (world, x, y, z, motionX, motionY, motionZ, data) -> new ParticleSmoke(world, x, y, z, motionX, motionY, motionX));
+        addDispatch("note", (world, x, y, z, motionX, motionY, motionZ, data) -> new ParticleNote(world, x, y, z, motionX, motionY, motionX, data));
+        addDispatch("portal", (world, x, y, z, motionX, motionY, motionZ, data) -> new ParticlePortal(world, x, y, z, motionX, motionY, motionX, data));
+        addDispatch("explode", (world, x, y, z, motionX, motionY, motionZ, data) -> new ParticleExplode(world, x, y, z, motionX, motionY, motionX));
+        addDispatch("flame", (world, x, y, z, motionX, motionY, motionZ, data) -> new ParticleFlame(world, x, y, z, motionX, motionY, motionX, ParticleFlame.Type.ORANGE));
+        addDispatch("blueflame", (world, x, y, z, motionX, motionY, motionZ, data) -> new ParticleFlame(world, x, y, z, motionX, motionY, motionX, ParticleFlame.Type.BLUE));
+        addDispatch("soulflame", (world, x, y, z, motionX, motionY, motionZ, data) -> new ParticleFlame(world, x, y, z, motionX, motionY, motionX, ParticleFlame.Type.SOUL));
+        addDispatch("lava", (world, x, y, z, motionX, motionY, motionZ, data) -> new ParticleLava(world, x, y, z));
+        addDispatch("footstep", (world, x, y, z, motionX, motionY, motionZ, data) -> new ParticleFootstep(mc.textureManager, world, x, y, z));
+        addDispatch("splash", (world1, d, d1, d2, d3, d4, d5, data) -> new ParticleSplash(world1, d, d1, d2, d3, d4, d5));
+        addDispatch("largesmoke", (world, x, y, z, motionX, motionY, motionZ, data) -> new ParticleSmoke(world, x, y, z, motionX, motionY, motionX, 2.5f));
+        addDispatch("reddust", (world, x, y, z, motionX, motionY, motionZ, data) -> new ParticleRedstoneDust(world, x, y, z, (float) motionX, (float) motionY, (float) motionZ, data));
+        addDispatch("item", (world, x, y, z, motionX, motionY, motionZ, data) -> new ParticleItemBreaking(world, x, y, z, Item.itemsList[MathHelper.clamp(data, 0, Item.itemsList.length - 1)]));
+        addDispatch("block", (world, x, y, z, motionX, motionY, motionZ, data) -> new ParticleBlockBreaking(world, x, y, z, motionX, motionY, motionZ, Block.blocksList[BlockParticleHelper.decodeBlockID(data)], BlockParticleHelper.decodeBlockSide(data), BlockParticleHelper.decodeBlockMeta(data)).init((int) x, (int) y, (int) z));
+        addDispatch("snowshovel", (world, x, y, z, motionX, motionY, motionZ, data) -> new ParticleSnowShovel(world, x, y, z, motionX, motionY, motionX));
+        addDispatch("heart", (world, x, y, z, motionX, motionY, motionZ, data) -> new ParticleHeart(world, x, y, z, motionX, motionY, motionX));
         addDispatch("slimechunk", (world, x, y, z, motionX, motionY, motionZ, data) -> {
             if (mc.gameSettings.slimeParticles.value) {
-                return new SlimeChunkParticle(world, x, y, z, Items.SLIMEBALL);
+                return new ParticleSlimeChunk(world, x, y, z, Items.SLIMEBALL);
             }
             return null;
         });
-        addDispatch("fireflyGreen", (world, x, y, z, motionX, motionY, motionZ, data) -> new FireflyParticle(world, x, y, z, motionX, motionY, motionX, FireflyClusterMob.FireflyColor.GREEN.getId()));
-        addDispatch("fireflyBlue", (world, x, y, z, motionX, motionY, motionZ, data) -> new FireflyParticle(world, x, y, z, motionX, motionY, motionX, FireflyClusterMob.FireflyColor.BLUE.getId()));
-        addDispatch("fireflyOrange", (world, x, y, z, motionX, motionY, motionZ, data) -> new FireflyParticle(world, x, y, z, motionX, motionY, motionX, FireflyClusterMob.FireflyColor.ORANGE.getId()));
-        addDispatch("fireflyRed", (world, x, y, z, motionX, motionY, motionZ, data) -> new FireflyParticle(world, x, y, z, motionX, motionY, motionX, FireflyClusterMob.FireflyColor.RED.getId()));
-        addDispatch("arrowtrail", (world, x, y, z, motionX, motionY, motionZ, data) -> new GoldenArrowParticle(world, x, y, z, motionX, motionY, motionX));
+        addDispatch("fireflyGreen", (world, x, y, z, motionX, motionY, motionZ, data) -> new ParticleFirefly(world, x, y, z, motionX, motionY, motionX, MobFireflyCluster.FireflyColor.GREEN.getId()));
+        addDispatch("fireflyBlue", (world, x, y, z, motionX, motionY, motionZ, data) -> new ParticleFirefly(world, x, y, z, motionX, motionY, motionX, MobFireflyCluster.FireflyColor.BLUE.getId()));
+        addDispatch("fireflyOrange", (world, x, y, z, motionX, motionY, motionZ, data) -> new ParticleFirefly(world, x, y, z, motionX, motionY, motionX, MobFireflyCluster.FireflyColor.ORANGE.getId()));
+        addDispatch("fireflyRed", (world, x, y, z, motionX, motionY, motionZ, data) -> new ParticleFirefly(world, x, y, z, motionX, motionY, motionX, MobFireflyCluster.FireflyColor.RED.getId()));
+        addDispatch("arrowtrail", (world, x, y, z, motionX, motionY, motionZ, data) -> new ParticleArrowGolden(world, x, y, z, motionX, motionY, motionX));
         addDispatch("fallingleaf", (world, x, y, z, motionX, motionY, motionZ, data) -> {
             int id = world.getBlockId(MathHelper.floor(x), MathHelper.floor(y), MathHelper.floor(z));
             if (id != 0) {
-                return new LeafParticle(world, x, y, z, motionX, motionY, motionX).init(MathHelper.floor(x), MathHelper.floor(y), MathHelper.floor(z));
+                return new ParticleLeaf(world, x, y, z, motionX, motionY, motionX).init(MathHelper.floor(x), MathHelper.floor(y), MathHelper.floor(z));
             }
             return null;
         });
         addDispatch("dripWater", (world, x, y, z, motionX, motionY, motionZ, data) -> {
             int color = BlockColorDispatcher.getInstance().getDispatch(Blocks.FLUID_WATER_STILL).getWorldColor(world, MathHelper.floor(x), MathHelper.floor(y), MathHelper.floor(z));
-            return new FluidDripParticle(world, x, y, z, color, TextureRegistry.getTexture("minecraft:block/water_flowing"));
+            return new ParticleFluidDrip(world, x, y, z, color, TextureRegistry.getTexture("minecraft:block/water_flowing"));
         });
-        addDispatch("dripLava", (world, x, y, z, motionX, motionY, motionZ, data) -> new FluidDripParticle(world, x, y, z, 0xFFFFFF, TextureRegistry.getTexture("minecraft:block/lava_flowing")).setFullBright());
+        addDispatch("dripLava", (world, x, y, z, motionX, motionY, motionZ, data) -> new ParticleFluidDrip(world, x, y, z, 0xFFFFFF, TextureRegistry.getTexture("minecraft:block/lava_flowing")).setFullBright());
     }
 }
diff --git a/src/main/java/net/minecraft/client/entity/particle/ExplodeParticle.java b/src/main/java/net/minecraft/client/entity/particle/ParticleExplode.java
similarity index 92%
rename from src/main/java/net/minecraft/client/entity/particle/ExplodeParticle.java
rename to src/main/java/net/minecraft/client/entity/particle/ParticleExplode.java
index f9fa36927..e7fb9930a 100644
--- a/src/main/java/net/minecraft/client/entity/particle/ExplodeParticle.java
+++ b/src/main/java/net/minecraft/client/entity/particle/ParticleExplode.java
@@ -3,8 +3,8 @@ package net.minecraft.client.entity.particle;
 import net.minecraft.client.render.texture.stitcher.TextureRegistry;
 import net.minecraft.core.world.World;
 
-public class ExplodeParticle extends Particle {
-    public ExplodeParticle(World world, double x, double y, double z, double xa, double ya, double za) {
+public class ParticleExplode extends Particle {
+    public ParticleExplode(World world, double x, double y, double z, double xa, double ya, double za) {
         super(world, x, y, z, xa, ya, za);
         this.xd = xa + (Math.random() * 2D - 1.0D) * 0.05F;
         this.yd = ya + (Math.random() * 2D - 1.0D) * 0.05F;
diff --git a/src/main/java/net/minecraft/client/entity/particle/FireflyParticle.java b/src/main/java/net/minecraft/client/entity/particle/ParticleFirefly.java
similarity index 95%
rename from src/main/java/net/minecraft/client/entity/particle/FireflyParticle.java
rename to src/main/java/net/minecraft/client/entity/particle/ParticleFirefly.java
index bde2b322b..d0c7a43ac 100644
--- a/src/main/java/net/minecraft/client/entity/particle/FireflyParticle.java
+++ b/src/main/java/net/minecraft/client/entity/particle/ParticleFirefly.java
@@ -3,11 +3,11 @@ package net.minecraft.client.entity.particle;
 import net.minecraft.client.render.LightmapHelper;
 import net.minecraft.client.render.texture.stitcher.TextureRegistry;
 import net.minecraft.client.render.tessellator.Tessellator;
-import net.minecraft.core.entity.animal.FireflyClusterMob;
+import net.minecraft.core.entity.animal.MobFireflyCluster;
 import net.minecraft.core.util.helper.MathHelper;
 import net.minecraft.core.world.World;
 
-public class FireflyParticle extends Particle {
+public class ParticleFirefly extends Particle {
     private float sinTimer = 0;
     private boolean isReversed = false;
     private float midR = 0.0f;
@@ -23,11 +23,11 @@ public class FireflyParticle extends Particle {
     private final float oG;
     private final float oB;
 
-    public FireflyParticle(World world, double x, double y, double z, double xa, double ya, double za, int type) {
+    public ParticleFirefly(World world, double x, double y, double z, double xa, double ya, double za, int type) {
         this(world, x, y, z, xa, ya, za, 1.0F, type);
     }
 
-    public FireflyParticle(World world, double x, double y, double z, double xa, double ya, double za, float scale, int type) {
+    public ParticleFirefly(World world, double x, double y, double z, double xa, double ya, double za, float scale, int type) {
         super(world, x, y, z, 0.0D, 0.0D, 0.0D);
         this.xd = 0.01D;
         this.yd = 0.01D;
@@ -50,7 +50,7 @@ public class FireflyParticle extends Particle {
     }
 
     private void setColor(int type) {
-        float[] color = FireflyClusterMob.FireflyColor.fireFlyColors.get(type).getMidColor();
+        float[] color = MobFireflyCluster.FireflyColor.fireFlyColors.get(type).getMidColor();
         this.midR = color[0];
         this.midG = color[1];
         this.midB = color[2];
diff --git a/src/main/java/net/minecraft/client/entity/particle/FlameParticle.java b/src/main/java/net/minecraft/client/entity/particle/ParticleFlame.java
similarity index 96%
rename from src/main/java/net/minecraft/client/entity/particle/FlameParticle.java
rename to src/main/java/net/minecraft/client/entity/particle/ParticleFlame.java
index 709eb1d42..3e55aea1f 100644
--- a/src/main/java/net/minecraft/client/entity/particle/FlameParticle.java
+++ b/src/main/java/net/minecraft/client/entity/particle/ParticleFlame.java
@@ -7,10 +7,10 @@ import net.minecraft.client.render.tessellator.Tessellator;
 import net.minecraft.core.util.helper.MathHelper;
 import net.minecraft.core.world.World;
 
-public class FlameParticle extends Particle {
+public class ParticleFlame extends Particle {
     private final float oSize;
 
-    public FlameParticle(World world, double x, double y, double z, double xd, double yd, double zd, Type type) {
+    public ParticleFlame(World world, double x, double y, double z, double xd, double yd, double zd, Type type) {
         super(world, x, y, z, xd, yd, zd);
         this.xd = this.xd * 0.01D + xd;
         this.yd = this.yd * 0.01D + yd;
diff --git a/src/main/java/net/minecraft/client/entity/particle/FluidDripParticle.java b/src/main/java/net/minecraft/client/entity/particle/ParticleFluidDrip.java
similarity index 95%
rename from src/main/java/net/minecraft/client/entity/particle/FluidDripParticle.java
rename to src/main/java/net/minecraft/client/entity/particle/ParticleFluidDrip.java
index 8dccbafb5..6a4f0a3c3 100644
--- a/src/main/java/net/minecraft/client/entity/particle/FluidDripParticle.java
+++ b/src/main/java/net/minecraft/client/entity/particle/ParticleFluidDrip.java
@@ -9,12 +9,12 @@ import net.minecraft.core.util.helper.Color;
 import net.minecraft.core.util.helper.MathHelper;
 import net.minecraft.core.world.World;
 
-public class FluidDripParticle extends Particle
+public class ParticleFluidDrip extends Particle
 {
     float maxSize;
     boolean fullBright;
 
-    public FluidDripParticle(final World world, final double x, final double y, final double z, int color, IconCoordinate texture)
+    public ParticleFluidDrip(final World world, final double x, final double y, final double z, int color, IconCoordinate texture)
     {
         super(world, x, y, z, 0.0, 0.0, 0.0);
         tex = texture;
@@ -92,7 +92,7 @@ public class FluidDripParticle extends Particle
         t.addVertexWithUV(x + xa * r - xa2 * r, y - ya * r, z + za * r - za2 * r, u0, v2);
     }
 
-    public FluidDripParticle setFullBright() {
+    public ParticleFluidDrip setFullBright() {
         fullBright = true;
         return this;
     }
diff --git a/src/main/java/net/minecraft/client/entity/particle/FootstepParticle.java b/src/main/java/net/minecraft/client/entity/particle/ParticleFootstep.java
similarity index 95%
rename from src/main/java/net/minecraft/client/entity/particle/FootstepParticle.java
rename to src/main/java/net/minecraft/client/entity/particle/ParticleFootstep.java
index fa2426f45..3b34d4ce6 100644
--- a/src/main/java/net/minecraft/client/entity/particle/FootstepParticle.java
+++ b/src/main/java/net/minecraft/client/entity/particle/ParticleFootstep.java
@@ -7,12 +7,12 @@ import net.minecraft.client.render.tessellator.Tessellator;
 import net.minecraft.core.world.World;
 import org.lwjgl.opengl.GL11;
 
-public class FootstepParticle extends Particle {
+public class ParticleFootstep extends Particle {
     private int life;
     private final int lifeTime;
     private final TextureManager textureManager;
 
-    public FootstepParticle(TextureManager textureManager, World world, double x, double y, double z) {
+    public ParticleFootstep(TextureManager textureManager, World world, double x, double y, double z) {
         super(world, x, y, z, 0.0D, 0.0D, 0.0D);
         this.life = 0;
         this.textureManager = textureManager;
diff --git a/src/main/java/net/minecraft/client/entity/particle/HeartParticle.java b/src/main/java/net/minecraft/client/entity/particle/ParticleHeart.java
similarity index 91%
rename from src/main/java/net/minecraft/client/entity/particle/HeartParticle.java
rename to src/main/java/net/minecraft/client/entity/particle/ParticleHeart.java
index 69de17d2d..3624db00c 100644
--- a/src/main/java/net/minecraft/client/entity/particle/HeartParticle.java
+++ b/src/main/java/net/minecraft/client/entity/particle/ParticleHeart.java
@@ -4,14 +4,14 @@ import net.minecraft.client.render.texture.stitcher.TextureRegistry;
 import net.minecraft.client.render.tessellator.Tessellator;
 import net.minecraft.core.world.World;
 
-public class HeartParticle extends Particle {
+public class ParticleHeart extends Particle {
     private final float oSize;
 
-    public HeartParticle(World world, double x, double y, double z, double xa, double ya, double za) {
+    public ParticleHeart(World world, double x, double y, double z, double xa, double ya, double za) {
         this(world, x, y, z, xa, ya, za, 2.0F);
     }
 
-    public HeartParticle(World world, double x, double y, double z, double xa, double ya, double za, float scale) {
+    public ParticleHeart(World world, double x, double y, double z, double xa, double ya, double za, float scale) {
         super(world, x, y, z, 0.0D, 0.0D, 0.0D);
         this.xd *= 0.01D;
         this.yd *= 0.01D;
diff --git a/src/main/java/net/minecraft/client/entity/particle/BreakingItemParticle.java b/src/main/java/net/minecraft/client/entity/particle/ParticleItemBreaking.java
similarity index 95%
rename from src/main/java/net/minecraft/client/entity/particle/BreakingItemParticle.java
rename to src/main/java/net/minecraft/client/entity/particle/ParticleItemBreaking.java
index 229e5628a..cfa1b42ad 100644
--- a/src/main/java/net/minecraft/client/entity/particle/BreakingItemParticle.java
+++ b/src/main/java/net/minecraft/client/entity/particle/ParticleItemBreaking.java
@@ -13,8 +13,8 @@ import net.minecraft.core.block.Blocks;
 import net.minecraft.core.item.Item;
 import net.minecraft.core.world.World;
 
-public class BreakingItemParticle extends Particle {
-    public BreakingItemParticle(World world, double x, double y, double z, Item item) {
+public class ParticleItemBreaking extends Particle {
+    public ParticleItemBreaking(World world, double x, double y, double z, Item item) {
         super(world, x, y, z, 0.0D, 0.0D, 0.0D);
         this.tex = ItemModelDispatcher.getInstance().getDispatch(item).getIcon(null, item.getDefaultStack());
         this.rCol = this.gCol = this.bCol = 1.0F;
diff --git a/src/main/java/net/minecraft/client/entity/particle/LavaParticle.java b/src/main/java/net/minecraft/client/entity/particle/ParticleLava.java
similarity index 94%
rename from src/main/java/net/minecraft/client/entity/particle/LavaParticle.java
rename to src/main/java/net/minecraft/client/entity/particle/ParticleLava.java
index 9df62f8f8..8fa6abaad 100644
--- a/src/main/java/net/minecraft/client/entity/particle/LavaParticle.java
+++ b/src/main/java/net/minecraft/client/entity/particle/ParticleLava.java
@@ -4,10 +4,10 @@ import net.minecraft.client.render.texture.stitcher.TextureRegistry;
 import net.minecraft.client.render.tessellator.Tessellator;
 import net.minecraft.core.world.World;
 
-public class LavaParticle extends Particle {
+public class ParticleLava extends Particle {
     private final float oSize;
 
-    public LavaParticle(World world, double x, double y, double z) {
+    public ParticleLava(World world, double x, double y, double z) {
         super(world, x, y, z, 0.0D, 0.0D, 0.0D);
         this.xd *= 0.8D;
         this.yd *= 0.8D;
diff --git a/src/main/java/net/minecraft/client/entity/particle/LeafParticle.java b/src/main/java/net/minecraft/client/entity/particle/ParticleLeaf.java
similarity index 91%
rename from src/main/java/net/minecraft/client/entity/particle/LeafParticle.java
rename to src/main/java/net/minecraft/client/entity/particle/ParticleLeaf.java
index 2afe69663..fc8b9bbaf 100644
--- a/src/main/java/net/minecraft/client/entity/particle/LeafParticle.java
+++ b/src/main/java/net/minecraft/client/entity/particle/ParticleLeaf.java
@@ -10,11 +10,11 @@ import net.minecraft.client.render.block.color.BlockColorDispatcher;
 import net.minecraft.client.render.texture.stitcher.TextureRegistry;
 import net.minecraft.client.render.tessellator.Tessellator;
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.BaseLeavesBlock;
+import net.minecraft.core.block.BlockLeavesBase;
 import net.minecraft.core.world.World;
 
-public class LeafParticle extends Particle {
-    public LeafParticle(World world, double x, double y, double z, double xa, double ya, double za) {
+public class ParticleLeaf extends Particle {
+    public ParticleLeaf(World world, double x, double y, double z, double xa, double ya, double za) {
         super(world, x, y, z, xa, ya, za);
         this.tex = TextureRegistry.getTexture("minecraft:block/leaves/oak_fancy");
         this.gravity = 0.125F;
@@ -27,12 +27,12 @@ public class LeafParticle extends Particle {
 
     @Override
     public boolean collidesWithBlock(Block block, int metadata) {
-        return !(block instanceof BaseLeavesBlock);
+        return !(block instanceof BlockLeavesBase);
     }
 
-    public LeafParticle init(int x, int y, int z) {
+    public ParticleLeaf init(int x, int y, int z) {
         Block block = Block.blocksList[this.world.getBlockId(x, y, z)];
-        if (!(block instanceof BaseLeavesBlock)) this.remove();
+        if (!(block instanceof BlockLeavesBase)) this.remove();
         int col = BlockColorDispatcher.getInstance().getDispatch(block).getWorldColor(world, x, y, z);
         this.rCol *= (float) (col >> 16 & 0xff) / 255F;
         this.gCol *= (float) (col >> 8 & 0xff) / 255F;
diff --git a/src/main/java/net/minecraft/client/entity/particle/NoteParticle.java b/src/main/java/net/minecraft/client/entity/particle/ParticleNote.java
similarity index 92%
rename from src/main/java/net/minecraft/client/entity/particle/NoteParticle.java
rename to src/main/java/net/minecraft/client/entity/particle/ParticleNote.java
index 5f6fd6dd8..cd51f66a7 100644
--- a/src/main/java/net/minecraft/client/entity/particle/NoteParticle.java
+++ b/src/main/java/net/minecraft/client/entity/particle/ParticleNote.java
@@ -6,14 +6,14 @@ import net.minecraft.client.render.tessellator.Tessellator;
 import net.minecraft.core.util.helper.MathHelper;
 import net.minecraft.core.world.World;
 
-public class NoteParticle extends Particle {
+public class ParticleNote extends Particle {
     private final float oSize;
 
-    public NoteParticle(World world, double x, double y, double z, double xa, double ya, double za, int data) {
+    public ParticleNote(World world, double x, double y, double z, double xa, double ya, double za, int data) {
         this(world, x, y, z, xa, ya, za, data, 2.0F);
     }
 
-    public NoteParticle(World world, double x, double y, double z, double xa, double ya, double za, int data, float scale) {
+    public ParticleNote(World world, double x, double y, double z, double xa, double ya, double za, int data, float scale) {
         super(world, x, y, z, xa, ya, za);
         this.xd *= 0.01D;
         this.yd *= 0.01D;
diff --git a/src/main/java/net/minecraft/client/entity/particle/TakeAnimationParticle.java b/src/main/java/net/minecraft/client/entity/particle/ParticlePickupAnimation.java
similarity index 94%
rename from src/main/java/net/minecraft/client/entity/particle/TakeAnimationParticle.java
rename to src/main/java/net/minecraft/client/entity/particle/ParticlePickupAnimation.java
index 83386fad2..47df0194b 100644
--- a/src/main/java/net/minecraft/client/entity/particle/TakeAnimationParticle.java
+++ b/src/main/java/net/minecraft/client/entity/particle/ParticlePickupAnimation.java
@@ -9,14 +9,14 @@ import net.minecraft.client.render.tessellator.Tessellator;
 import net.minecraft.core.world.World;
 import org.lwjgl.opengl.GL11;
 
-public class TakeAnimationParticle extends Particle {
+public class ParticlePickupAnimation extends Particle {
     private final Entity item;
     private final Entity target;
     private int life;
     private final int lifeTime;
     private final float yOffs;
 
-    public TakeAnimationParticle(World world, Entity item, Entity target, float scale) {
+    public ParticlePickupAnimation(World world, Entity item, Entity target, float scale) {
         super(world, item.x, item.y, item.z, item.xd, item.yd, item.zd);
         this.life = 0;
         this.item = item;
diff --git a/src/main/java/net/minecraft/client/entity/particle/PortalParticle.java b/src/main/java/net/minecraft/client/entity/particle/ParticlePortal.java
similarity index 95%
rename from src/main/java/net/minecraft/client/entity/particle/PortalParticle.java
rename to src/main/java/net/minecraft/client/entity/particle/ParticlePortal.java
index 557b522ba..0b100703e 100644
--- a/src/main/java/net/minecraft/client/entity/particle/PortalParticle.java
+++ b/src/main/java/net/minecraft/client/entity/particle/ParticlePortal.java
@@ -6,13 +6,13 @@ import net.minecraft.client.util.helper.Colors;
 import net.minecraft.core.util.helper.Color;
 import net.minecraft.core.world.World;
 
-public class PortalParticle extends Particle {
+public class ParticlePortal extends Particle {
     private final float oSize;
     private final double xStart;
     private final double yStart;
     private final double zStart;
 
-    public PortalParticle(World world, double x, double y, double z, double xd, double yd, double zd, int data) {
+    public ParticlePortal(World world, double x, double y, double z, double xd, double yd, double zd, int data) {
         super(world, x, y, z, xd, yd, zd);
         this.xd = xd;
         this.yd = yd;
diff --git a/src/main/java/net/minecraft/client/entity/particle/RedstoneDustParticle.java b/src/main/java/net/minecraft/client/entity/particle/ParticleRedstoneDust.java
similarity index 95%
rename from src/main/java/net/minecraft/client/entity/particle/RedstoneDustParticle.java
rename to src/main/java/net/minecraft/client/entity/particle/ParticleRedstoneDust.java
index e5504509f..1dc9ee71b 100644
--- a/src/main/java/net/minecraft/client/entity/particle/RedstoneDustParticle.java
+++ b/src/main/java/net/minecraft/client/entity/particle/ParticleRedstoneDust.java
@@ -7,15 +7,15 @@ import net.minecraft.core.enums.LightLayer;
 import net.minecraft.core.util.helper.MathHelper;
 import net.minecraft.core.world.World;
 
-public class RedstoneDustParticle extends Particle {
+public class ParticleRedstoneDust extends Particle {
     private final float oSize;
     private int brightness;
 
-    public RedstoneDustParticle(World world, double x, double y, double z, float red, float green, float blue, int brightness) {
+    public ParticleRedstoneDust(World world, double x, double y, double z, float red, float green, float blue, int brightness) {
         this(world, x, y, z, 1.0F, red, green, blue, brightness);
     }
 
-    public RedstoneDustParticle(World world, double x, double y, double z, float scale, float red, float green, float blue, int brightness) {
+    public ParticleRedstoneDust(World world, double x, double y, double z, float scale, float red, float green, float blue, int brightness) {
         super(world, x, y, z, 0.0D, 0.0D, 0.0D);
         this.brightness = -1;
         if (brightness >= 0) {
diff --git a/src/main/java/net/minecraft/client/entity/particle/SlimeChunkParticle.java b/src/main/java/net/minecraft/client/entity/particle/ParticleSlimeChunk.java
similarity index 95%
rename from src/main/java/net/minecraft/client/entity/particle/SlimeChunkParticle.java
rename to src/main/java/net/minecraft/client/entity/particle/ParticleSlimeChunk.java
index 02fd9054f..5b549aa24 100644
--- a/src/main/java/net/minecraft/client/entity/particle/SlimeChunkParticle.java
+++ b/src/main/java/net/minecraft/client/entity/particle/ParticleSlimeChunk.java
@@ -12,8 +12,8 @@ import net.minecraft.client.render.tessellator.Tessellator;
 import net.minecraft.core.item.Item;
 import net.minecraft.core.world.World;
 
-public class SlimeChunkParticle extends Particle {
-    public SlimeChunkParticle(World world, double x, double y, double z, Item item) {
+public class ParticleSlimeChunk extends Particle {
+    public ParticleSlimeChunk(World world, double x, double y, double z, Item item) {
         super(world, x, y, z, 0.0D, 0.0D, 0.0D);
         this.tex = ItemModelDispatcher.getInstance().getDispatch(item).getIcon(null, item.getDefaultStack());
         this.gravity = 2;
diff --git a/src/main/java/net/minecraft/client/entity/particle/SmokeParticle.java b/src/main/java/net/minecraft/client/entity/particle/ParticleSmoke.java
similarity index 92%
rename from src/main/java/net/minecraft/client/entity/particle/SmokeParticle.java
rename to src/main/java/net/minecraft/client/entity/particle/ParticleSmoke.java
index ae6b527b1..55dfd2fdc 100644
--- a/src/main/java/net/minecraft/client/entity/particle/SmokeParticle.java
+++ b/src/main/java/net/minecraft/client/entity/particle/ParticleSmoke.java
@@ -4,14 +4,14 @@ import net.minecraft.client.render.texture.stitcher.TextureRegistry;
 import net.minecraft.client.render.tessellator.Tessellator;
 import net.minecraft.core.world.World;
 
-public class SmokeParticle extends Particle {
+public class ParticleSmoke extends Particle {
     private final float oSize;
 
-    public SmokeParticle(World world, double x, double y, double z, double xa, double ya, double za) {
+    public ParticleSmoke(World world, double x, double y, double z, double xa, double ya, double za) {
         this(world, x, y, z, xa, ya, za, 1.0F);
     }
 
-    public SmokeParticle(World world, double x, double y, double z, double xa, double ya, double za, float scale) {
+    public ParticleSmoke(World world, double x, double y, double z, double xa, double ya, double za, float scale) {
         super(world, x, y, z, 0.0D, 0.0D, 0.0D);
         this.xd *= 0.1D;
         this.yd *= 0.1D;
diff --git a/src/main/java/net/minecraft/client/entity/particle/SnowShovelParticle.java b/src/main/java/net/minecraft/client/entity/particle/ParticleSnowShovel.java
similarity index 91%
rename from src/main/java/net/minecraft/client/entity/particle/SnowShovelParticle.java
rename to src/main/java/net/minecraft/client/entity/particle/ParticleSnowShovel.java
index dc888765b..8c96568e3 100644
--- a/src/main/java/net/minecraft/client/entity/particle/SnowShovelParticle.java
+++ b/src/main/java/net/minecraft/client/entity/particle/ParticleSnowShovel.java
@@ -5,14 +5,14 @@ import net.minecraft.client.render.texture.stitcher.TextureRegistry;
 import net.minecraft.client.render.tessellator.Tessellator;
 import net.minecraft.core.world.World;
 
-public class SnowShovelParticle extends Particle {
+public class ParticleSnowShovel extends Particle {
     private final float oSize;
 
-    public SnowShovelParticle(World world, double x, double y, double z, double xa, double ya, double za) {
+    public ParticleSnowShovel(World world, double x, double y, double z, double xa, double ya, double za) {
         this(world, x, y, z, xa, ya, za, 1.0F);
     }
 
-    public SnowShovelParticle(World world, double x, double y, double z, double xa, double ya, double za, float scale) {
+    public ParticleSnowShovel(World world, double x, double y, double z, double xa, double ya, double za, float scale) {
         super(world, x, y, z, xa, ya, za);
         this.xd *= 0.1D;
         this.yd *= 0.1D;
diff --git a/src/main/java/net/minecraft/client/entity/particle/SplashParticle.java b/src/main/java/net/minecraft/client/entity/particle/ParticleSplash.java
similarity index 74%
rename from src/main/java/net/minecraft/client/entity/particle/SplashParticle.java
rename to src/main/java/net/minecraft/client/entity/particle/ParticleSplash.java
index ca68ea9ef..96e0051d3 100644
--- a/src/main/java/net/minecraft/client/entity/particle/SplashParticle.java
+++ b/src/main/java/net/minecraft/client/entity/particle/ParticleSplash.java
@@ -2,8 +2,8 @@ package net.minecraft.client.entity.particle;
 
 import net.minecraft.core.world.World;
 
-public class SplashParticle extends WaterDropParticle {
-    public SplashParticle(World world, double x, double y, double z, double xa, double ya, double za) {
+public class ParticleSplash extends ParticleWaterDrop {
+    public ParticleSplash(World world, double x, double y, double z, double xa, double ya, double za) {
         super(world, x, y, z);
         this.gravity = 0.04F;
         if (ya == 0.0D && (xa != 0.0D || za != 0.0D)) {
diff --git a/src/main/java/net/minecraft/client/entity/particle/WaterDropParticle.java b/src/main/java/net/minecraft/client/entity/particle/ParticleWaterDrop.java
similarity index 84%
rename from src/main/java/net/minecraft/client/entity/particle/WaterDropParticle.java
rename to src/main/java/net/minecraft/client/entity/particle/ParticleWaterDrop.java
index 8de343b4b..03369f5f0 100644
--- a/src/main/java/net/minecraft/client/entity/particle/WaterDropParticle.java
+++ b/src/main/java/net/minecraft/client/entity/particle/ParticleWaterDrop.java
@@ -1,13 +1,13 @@
 package net.minecraft.client.entity.particle;
 
 import net.minecraft.client.render.texture.stitcher.TextureRegistry;
-import net.minecraft.core.block.FluidBlock;
+import net.minecraft.core.block.BlockFluid;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.util.helper.MathHelper;
 import net.minecraft.core.world.World;
 
-public class WaterDropParticle extends Particle {
-    public WaterDropParticle(World world, double x, double y, double z) {
+public class ParticleWaterDrop extends Particle {
+    public ParticleWaterDrop(World world, double x, double y, double z) {
         super(world, x, y, z, 0.0D, 0.0D, 0.0D);
         this.xd *= 0.3D;
         this.yd = (float) Math.random() * 0.2F + 0.1F;
@@ -43,7 +43,7 @@ public class WaterDropParticle extends Particle {
         }
         Material m = this.world.getBlockMaterial(MathHelper.floor(this.x), MathHelper.floor(this.y), MathHelper.floor(this.z));
         if (m.isLiquid() || m.isSolid()) {
-            double y0 = (MathHelper.floor(this.y) + 1) - FluidBlock.getWaterVolume(this.world.getBlockMetadata(MathHelper.floor(this.x), MathHelper.floor(this.y), MathHelper.floor(this.z)));
+            double y0 = (MathHelper.floor(this.y) + 1) - BlockFluid.getWaterVolume(this.world.getBlockMetadata(MathHelper.floor(this.x), MathHelper.floor(this.y), MathHelper.floor(this.z)));
             if (this.y < y0) {
                 remove();
             }
diff --git a/src/main/java/net/minecraft/client/entity/player/LocalPlayer.java b/src/main/java/net/minecraft/client/entity/player/PlayerLocal.java
similarity index 80%
rename from src/main/java/net/minecraft/client/entity/player/LocalPlayer.java
rename to src/main/java/net/minecraft/client/entity/player/PlayerLocal.java
index 640994d73..7e84bd66d 100644
--- a/src/main/java/net/minecraft/client/entity/player/LocalPlayer.java
+++ b/src/main/java/net/minecraft/client/entity/player/PlayerLocal.java
@@ -5,20 +5,20 @@ import com.mojang.logging.LogUtils;
 import com.mojang.nbt.CompoundTag;
 
 import net.minecraft.client.Minecraft;
-import net.minecraft.client.entity.particle.TakeAnimationParticle;
-import net.minecraft.client.gui.container.ActivatorScreen;
-import net.minecraft.client.gui.container.ContainerScreen;
-import net.minecraft.client.gui.container.CraftingScreen;
-import net.minecraft.client.gui.container.DispenserScreen;
-import net.minecraft.client.gui.container.FlagEditorScreen;
-import net.minecraft.client.gui.LabelEditorScreen;
-import net.minecraft.client.gui.SignEditorScreen;
-import net.minecraft.client.gui.container.FurnaceScreen;
-import net.minecraft.client.gui.PaintingPickerScreen;
-import net.minecraft.client.gui.MobPickerScreen;
-import net.minecraft.client.gui.container.TrommelScreen;
-import net.minecraft.client.gui.WandMobPickerScreen;
-import net.minecraft.client.gui.guidebook.GuidebookScreen;
+import net.minecraft.client.entity.particle.ParticlePickupAnimation;
+import net.minecraft.client.gui.container.ScreenActivator;
+import net.minecraft.client.gui.container.ScreenContainer;
+import net.minecraft.client.gui.container.ScreenCrafting;
+import net.minecraft.client.gui.container.ScreenDispenser;
+import net.minecraft.client.gui.container.ScreenFlagEditor;
+import net.minecraft.client.gui.ScreenLabelEditor;
+import net.minecraft.client.gui.ScreenSignEditor;
+import net.minecraft.client.gui.container.ScreenFurnace;
+import net.minecraft.client.gui.ScreenPaintingPicker;
+import net.minecraft.client.gui.ScreenMobPicker;
+import net.minecraft.client.gui.container.ScreenTrommel;
+import net.minecraft.client.gui.ScreenWandMobPicker;
+import net.minecraft.client.gui.guidebook.ScreenGuidebook;
 import net.minecraft.client.input.PlayerInput;
 import net.minecraft.core.achievement.Achievement;
 import net.minecraft.core.achievement.Achievements;
@@ -26,14 +26,14 @@ import net.minecraft.core.achievement.stat.Stat;
 import net.minecraft.core.achievement.stat.StatList;
 import net.minecraft.client.gui.toasts.AchievementToast;
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.PortalBlock;
-import net.minecraft.core.block.entity.ActivatorBlockEntity;
-import net.minecraft.core.block.entity.DispenserBlockEntity;
-import net.minecraft.core.block.entity.FlagBlockEntity;
-import net.minecraft.core.block.entity.FurnaceBlockEntity;
-import net.minecraft.core.block.entity.MobSpawnerBlockEntity;
-import net.minecraft.core.block.entity.SignBlockEntity;
-import net.minecraft.core.block.entity.TrommelBlockEntity;
+import net.minecraft.core.block.BlockPortal;
+import net.minecraft.core.block.entity.TileEntityActivator;
+import net.minecraft.core.block.entity.TileEntityDispenser;
+import net.minecraft.core.block.entity.TileEntityFlag;
+import net.minecraft.core.block.entity.TileEntityFurnace;
+import net.minecraft.core.block.entity.TileEntityMobSpawner;
+import net.minecraft.core.block.entity.TileEntitySign;
+import net.minecraft.core.block.entity.TileEntityTrommel;
 import net.minecraft.core.data.gamerule.GameRules;
 import net.minecraft.core.entity.Entity;
 import net.minecraft.core.entity.player.Player;
@@ -42,7 +42,7 @@ import net.minecraft.core.net.command.TextFormatting;
 import net.minecraft.client.net.command.ClientCommandSource;
 import net.minecraft.core.player.Session;
 import net.minecraft.core.player.gamemode.Gamemode;
-import net.minecraft.core.player.inventory.menu.InventoryMenu;
+import net.minecraft.core.player.inventory.menu.MenuInventory;
 import net.minecraft.core.player.inventory.container.Container;
 import net.minecraft.core.sound.SoundCategory;
 import net.minecraft.core.util.helper.GetSkinUrlThread;
@@ -51,14 +51,14 @@ import net.minecraft.core.util.phys.AABB;
 import net.minecraft.core.world.World;
 import org.slf4j.Logger;
 
-public class LocalPlayer extends Player
+public class PlayerLocal extends Player
 {
     private static final Logger LOGGER = LogUtils.getLogger();
     public PlayerInput input;
     protected Minecraft mc;
     protected int sprintTimer;
 
-    public LocalPlayer(Minecraft minecraft, World world, Session session, int dimension)
+    public PlayerLocal(Minecraft minecraft, World world, Session session, int dimension)
     {
         super(world);
         mc = minecraft;
@@ -100,7 +100,7 @@ public class LocalPlayer extends Player
     {
         this.gamemode = gamemode;
 
-        InventoryMenu newContainer = gamemode.getContainer(this.inventory, !world.isClientSide);
+        MenuInventory newContainer = gamemode.getContainer(this.inventory, !world.isClientSide);
         if (craftingInventory == inventorySlots)
         {
             craftingInventory = newContainer;
@@ -161,7 +161,7 @@ public class LocalPlayer extends Player
                 {
                     timeUntilPortal = 10;
                     mc.sndManager.playSound("portal.travel", SoundCategory.WORLD_SOUNDS, 1.0F, random.nextFloat() * 0.4F + 0.8F);
-                    int targetDim = ((PortalBlock) Block.blocksList[portalID]).targetDimension;
+                    int targetDim = ((BlockPortal) Block.blocksList[portalID]).targetDimension;
                     if (dimension == targetDim)
                     {
                         mc.usePortal(0, portalColor);
@@ -256,86 +256,86 @@ public class LocalPlayer extends Player
     }
 
     @Override
-    public void displaySignEditorScreen(SignBlockEntity blockEntity)
+    public void displaySignEditorScreen(TileEntitySign blockEntity)
     {
-        mc.displayScreen(new SignEditorScreen(blockEntity));
+        mc.displayScreen(new ScreenSignEditor(blockEntity));
     }
 
     @Override
-    public void displayFlagEditorScreen(FlagBlockEntity blockEntity)
+    public void displayFlagEditorScreen(TileEntityFlag blockEntity)
     {
-        mc.displayScreen(new FlagEditorScreen(this, blockEntity));
+        mc.displayScreen(new ScreenFlagEditor(this, blockEntity));
     }
 
     @Override
     public void displayContainerScreen(Container container)
     {
-        mc.displayScreen(new ContainerScreen(inventory, container));
+        mc.displayScreen(new ScreenContainer(inventory, container));
     }
 
     @Override
     public void displayWorkbenchScreen(int x, int y, int z)
     {
-        mc.displayScreen(new CraftingScreen(inventory, world, x, y, z));
+        mc.displayScreen(new ScreenCrafting(inventory, world, x, y, z));
     }
 
     @Override
     public void displayLabelEditorScreen(ItemStack itemStack, int slot)
     {
-        mc.displayScreen(new LabelEditorScreen(itemStack, slot));
+        mc.displayScreen(new ScreenLabelEditor(itemStack, slot));
     }
 
     @Override
     public void displayPaintingPickerScreen()
     {
-        mc.displayScreen(new PaintingPickerScreen(this));
+        mc.displayScreen(new ScreenPaintingPicker(this));
     }
 
     @Override
     public void displayMobPickerScreen(int x, int y, int z) {
-        String currentMobId = ((MobSpawnerBlockEntity) world.getBlockEntity(x, y, z)).getMobId();
-        mc.displayScreen(new MobPickerScreen(currentMobId, x, y, z));
+        String currentMobId = ((TileEntityMobSpawner) world.getBlockEntity(x, y, z)).getMobId();
+        mc.displayScreen(new ScreenMobPicker(currentMobId, x, y, z));
     }
     @Override
     public void displayWandMobPickerScreen(ItemStack itemStack) {
         String currentMobId = itemStack.getData().getStringOrDefault("monster", "Pig");
-        mc.displayScreen(new WandMobPickerScreen(currentMobId, itemStack));
+        mc.displayScreen(new ScreenWandMobPicker(currentMobId, itemStack));
     }
 
     @Override
-    public void displayFurnaceScreen(FurnaceBlockEntity blockEntity)
+    public void displayFurnaceScreen(TileEntityFurnace blockEntity)
     {
-        mc.displayScreen(new FurnaceScreen(inventory, blockEntity));
+        mc.displayScreen(new ScreenFurnace(inventory, blockEntity));
     }
 
     @Override
-    public void displayTrommelScreen(TrommelBlockEntity blockEntity)
+    public void displayTrommelScreen(TileEntityTrommel blockEntity)
     {
-        mc.displayScreen(new TrommelScreen(inventory, blockEntity));
+        mc.displayScreen(new ScreenTrommel(inventory, blockEntity));
     }
 
     @Override
-    public void displayDispenserScreen(DispenserBlockEntity blockEntity)
+    public void displayDispenserScreen(TileEntityDispenser blockEntity)
     {
-        mc.displayScreen(new DispenserScreen(inventory, blockEntity));
+        mc.displayScreen(new ScreenDispenser(inventory, blockEntity));
     }
 
     @Override
-    public void displayActivatorScreen(ActivatorBlockEntity blockEntity)
+    public void displayActivatorScreen(TileEntityActivator blockEntity)
     {
-        mc.displayScreen(new ActivatorScreen(inventory, blockEntity));
+        mc.displayScreen(new ScreenActivator(inventory, blockEntity));
     }
 
     @Override
     public void displayGuidebookScreen() {
-        mc.displayScreen(new GuidebookScreen(mc.currentScreen));
+        mc.displayScreen(new ScreenGuidebook(mc.currentScreen));
     }
 
     @Override
     public void onItemPickup(Entity entity, ItemStack item)
     {
         addStat(item.getItem().getStat(StatList.STAT_PICKED_UP), 1);
-        mc.particleEngine.add(new TakeAnimationParticle(mc.theWorld, entity, this, -0.5F));
+        mc.particleEngine.add(new ParticlePickupAnimation(mc.theWorld, entity, this, -0.5F));
     }
 
     public int getPlayerProtectionAmount()
@@ -354,7 +354,7 @@ public class LocalPlayer extends Player
                 mc.thePlayer.sendMessage(TextFormatting.RED + e.getMessage());
             }
         } else {
-            mc.ingameHud.addChatMessage("<" + getDisplayName() + TextFormatting.RESET + "> " + TextFormatting.WHITE + s);
+            mc.hudIngame.addChatMessage("<" + getDisplayName() + TextFormatting.RESET + "> " + TextFormatting.WHITE + s);
         }
     }
     
@@ -507,12 +507,12 @@ public class LocalPlayer extends Player
     
 	@Override
 	public void sendMessage(String message) {
-		mc.ingameHud.addChatMessage(message);
+		mc.hudIngame.addChatMessage(message);
 	}
 
 	@Override
 	public void sendStatusMessage(String message) {
-		mc.ingameHud.heldItemTooltipElement.setString(message);
+		mc.hudIngame.heldItemTooltipElement.setString(message);
 	}
 
 }
diff --git a/src/main/java/net/minecraft/client/entity/player/MultiplayerLocalPlayer.java b/src/main/java/net/minecraft/client/entity/player/PlayerLocalMultiplayer.java
similarity index 93%
rename from src/main/java/net/minecraft/client/entity/player/MultiplayerLocalPlayer.java
rename to src/main/java/net/minecraft/client/entity/player/PlayerLocalMultiplayer.java
index e9152027a..4eb0cad3a 100644
--- a/src/main/java/net/minecraft/client/entity/player/MultiplayerLocalPlayer.java
+++ b/src/main/java/net/minecraft/client/entity/player/PlayerLocalMultiplayer.java
@@ -1,12 +1,12 @@
 package net.minecraft.client.entity.player;
 
 import net.minecraft.client.Minecraft;
-import net.minecraft.client.gui.guidebook.GuidebookScreen;
-import net.minecraft.client.net.handler.ClientPacketHandler;
+import net.minecraft.client.gui.guidebook.ScreenGuidebook;
+import net.minecraft.client.net.handler.PacketHandlerClient;
 import net.minecraft.core.achievement.stat.Stat;
 import net.minecraft.core.data.registry.Registries;
 import net.minecraft.core.entity.Entity;
-import net.minecraft.core.entity.ItemEntity;
+import net.minecraft.core.entity.EntityItem;
 import net.minecraft.core.net.packet.ChatPacket;
 import net.minecraft.core.net.packet.UpdatePlayerStatePacket;
 import net.minecraft.core.net.packet.MovePlayerPacket;
@@ -24,9 +24,9 @@ import net.minecraft.core.util.helper.DamageType;
 import net.minecraft.core.util.helper.MathHelper;
 import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.world.World;
-public class MultiplayerLocalPlayer extends LocalPlayer
+public class PlayerLocalMultiplayer extends PlayerLocal
 {
-    public ClientPacketHandler sendQueue;
+    public PacketHandlerClient sendQueue;
     private int lastInventorySendTime;
     private boolean flashOnSetHealth;
     private double oldPosX;
@@ -39,7 +39,7 @@ public class MultiplayerLocalPlayer extends LocalPlayer
     private boolean wasSneaking;
     private int noSendTime;
 
-    public MultiplayerLocalPlayer(Minecraft minecraft, World world, Session session, ClientPacketHandler netclienthandler)
+    public PlayerLocalMultiplayer(Minecraft minecraft, World world, Session session, PacketHandlerClient netclienthandler)
     {
         super(minecraft, world, session, 0);
         lastInventorySendTime = 0;
@@ -163,7 +163,7 @@ public class MultiplayerLocalPlayer extends LocalPlayer
     }
 
     @Override
-	protected void joinEntityItemWithWorld(ItemEntity entityitem)
+	protected void joinEntityItemWithWorld(EntityItem entityitem)
     {
     }
 
@@ -190,8 +190,8 @@ public class MultiplayerLocalPlayer extends LocalPlayer
     @Override
 	public void displayGuidebookScreen()
     {
-        mc.displayScreen(new GuidebookScreen(mc.currentScreen));
-        sendQueue.addToSendQueue(new GuidebookPacket(mc.currentScreen instanceof GuidebookScreen));
+        mc.displayScreen(new ScreenGuidebook(mc.currentScreen));
+        sendQueue.addToSendQueue(new GuidebookPacket(mc.currentScreen instanceof ScreenGuidebook));
     }
 
     @Override
diff --git a/src/main/java/net/minecraft/client/entity/player/RemotePlayer.java b/src/main/java/net/minecraft/client/entity/player/PlayerRemote.java
similarity index 97%
rename from src/main/java/net/minecraft/client/entity/player/RemotePlayer.java
rename to src/main/java/net/minecraft/client/entity/player/PlayerRemote.java
index f10f7d695..99c4cfb16 100644
--- a/src/main/java/net/minecraft/client/entity/player/RemotePlayer.java
+++ b/src/main/java/net/minecraft/client/entity/player/PlayerRemote.java
@@ -16,7 +16,7 @@ import net.minecraft.core.util.helper.GetSkinUrlThread;
 
 import java.util.UUID;
 
-public class RemotePlayer extends Player
+public class PlayerRemote extends Player
 {
     private int lerpSteps;
     private double lerpX;
@@ -25,7 +25,7 @@ public class RemotePlayer extends Player
     private double lerpYRot;
     private double lerpXRot;
 //    float fallTime;
-    public RemotePlayer(World world, String username, UUID uuid)
+    public PlayerRemote(World world, String username, UUID uuid)
     {
         super(world);
 //        fallTime = 0.0F;
diff --git a/src/main/java/net/minecraft/client/gui/ExceptionPopupElement.java b/src/main/java/net/minecraft/client/gui/ExceptionPopupElement.java
index 5fd55fda4..d867b5793 100644
--- a/src/main/java/net/minecraft/client/gui/ExceptionPopupElement.java
+++ b/src/main/java/net/minecraft/client/gui/ExceptionPopupElement.java
@@ -93,7 +93,7 @@ public class ExceptionPopupElement {
         }
         s.append(TextFormatting.WHITE);
 
-        BlankScreen screen = new BlankScreen();
+        ScreenBlank screen = new ScreenBlank();
         mc.displayScreen(screen);
         PopupScreen popup = new PopupBuilder(screen,860/scale).withLabel("gui.exception.label.fatal_error")
                 .withMessageBox("gui.exception.list",400/scale,s.toString(),(860/scale) / mc.font.getCharWidth('m'))
@@ -138,7 +138,7 @@ public class ExceptionPopupElement {
         }
         s.append(TextFormatting.WHITE);
 
-        BlankScreen screen = new BlankScreen();
+        ScreenBlank screen = new ScreenBlank();
         mc.displayScreen(screen);
         PopupScreen popup = new PopupBuilder(screen,860/scale).withLabel("gui.exception.label.startup_error")
                 .withMessageBox("gui.exception.list",400/scale,s.toString(),(860/scale) / mc.font.getCharWidth('m'))
diff --git a/src/main/java/net/minecraft/client/gui/IntegerSliderElement.java b/src/main/java/net/minecraft/client/gui/IntegerSliderElement.java
index 9348a1cfe..cfc3a7f29 100644
--- a/src/main/java/net/minecraft/client/gui/IntegerSliderElement.java
+++ b/src/main/java/net/minecraft/client/gui/IntegerSliderElement.java
@@ -6,21 +6,21 @@ import net.minecraft.client.render.texture.stitcher.TextureRegistry;
 import org.lwjgl.opengl.GL11;
 
 import net.minecraft.client.Minecraft;
-import net.minecraft.client.option.ToggleableOption;
+import net.minecraft.client.option.OptionToggleable;
 
 public class IntegerSliderElement extends ButtonElement {
 
 	public int sliderValue;
 	public boolean dragging;
-	private ToggleableOption<?> option;
+	private OptionToggleable<?> option;
 
 	public IconCoordinate backgroundTexture;
 
-	public IntegerSliderElement(int id, int xPosition, int yPosition, ToggleableOption<?> option) {
+	public IntegerSliderElement(int id, int xPosition, int yPosition, OptionToggleable<?> option) {
 		this(id, xPosition, yPosition, 150, 20, option);
 	}
 
-	public IntegerSliderElement(int id, int xPosition, int yPosition, int width, int height, ToggleableOption<?> option) {
+	public IntegerSliderElement(int id, int xPosition, int yPosition, int width, int height, OptionToggleable<?> option) {
 		super(id, xPosition, yPosition, width, height, option.getDisplayStringValue());
 		
 		this.dragging = false;
diff --git a/src/main/java/net/minecraft/client/gui/ItemElement.java b/src/main/java/net/minecraft/client/gui/ItemElement.java
index fecfc5fdb..89fdd2116 100644
--- a/src/main/java/net/minecraft/client/gui/ItemElement.java
+++ b/src/main/java/net/minecraft/client/gui/ItemElement.java
@@ -14,7 +14,7 @@ import net.minecraft.core.WeightedRandomLootObject;
 import net.minecraft.core.data.registry.recipe.entry.RecipeEntryTrommel;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.player.inventory.slot.Slot;
-import net.minecraft.client.gui.guidebook.GuidebookSlot;
+import net.minecraft.client.gui.guidebook.SlotGuidebook;
 import org.lwjgl.opengl.GL11;
 import org.lwjgl.opengl.GL12;
 
@@ -69,12 +69,12 @@ public class ItemElement extends Gui
                 BlockModel.setRenderBlocks(EntityRenderDispatcher.instance.itemRenderer.renderBlocksInstance);
                 ItemModel itemModel = ItemModelDispatcher.getInstance().getDispatch(itemStack.getItem());
                 itemModel.renderItemIntoGui(Tessellator.instance, mc.font, mc.textureManager, itemStack, x, y, discovered ? 1.0f : 0.0f, 1.0f);
-                if(slot instanceof GuidebookSlot){
-                    if(((GuidebookSlot) slot).recipe instanceof RecipeEntryTrommel && ((GuidebookSlot) slot).item != null && ((GuidebookSlot) slot).isOutput){
-                        WeightedRandomBag<WeightedRandomLootObject> loot = ((RecipeEntryTrommel)((GuidebookSlot) slot).recipe).getOutput();
+                if(slot instanceof SlotGuidebook){
+                    if(((SlotGuidebook) slot).recipe instanceof RecipeEntryTrommel && ((SlotGuidebook) slot).item != null && ((SlotGuidebook) slot).isOutput){
+                        WeightedRandomBag<WeightedRandomLootObject> loot = ((RecipeEntryTrommel)((SlotGuidebook) slot).recipe).getOutput();
                         int index = slot.index;
-                        if(((GuidebookSlot) slot).recipeAmount > 8){
-                            index = slot.index + (9 * ((GuidebookSlot) slot).recipeIndex);
+                        if(((SlotGuidebook) slot).recipeAmount > 8){
+                            index = slot.index + (9 * ((SlotGuidebook) slot).recipeIndex);
                         }
                         WeightedRandomLootObject lootObject = loot.getEntries().get(index);
                         String s;
diff --git a/src/main/java/net/minecraft/client/gui/AddServerScreen.java b/src/main/java/net/minecraft/client/gui/ScreenAddServer.java
similarity index 97%
rename from src/main/java/net/minecraft/client/gui/AddServerScreen.java
rename to src/main/java/net/minecraft/client/gui/ScreenAddServer.java
index 51e8773a7..e56cba8b3 100644
--- a/src/main/java/net/minecraft/client/gui/AddServerScreen.java
+++ b/src/main/java/net/minecraft/client/gui/ScreenAddServer.java
@@ -9,7 +9,7 @@ import org.lwjgl.input.Keyboard;
 //            GuiScreen, GuiTextField, StringTranslate, GuiButton, 
 //            gGameSettings, GuiConnecting
 
-public class AddServerScreen extends Screen
+public class ScreenAddServer extends Screen
 {
     private ButtonElement buttonSave;
     private ButtonElement buttonCancel;
@@ -19,7 +19,7 @@ public class AddServerScreen extends Screen
     private SavedServerList serverList;
     private boolean showIp = true;
 
-    public AddServerScreen(Screen guiscreen, SavedServerList serverList)
+    public ScreenAddServer(Screen guiscreen, SavedServerList serverList)
     {
         super(guiscreen);
         this.serverList = serverList;
diff --git a/src/main/java/net/minecraft/client/gui/BadJavaArchScreen.java b/src/main/java/net/minecraft/client/gui/ScreenBadJavaArch.java
similarity index 95%
rename from src/main/java/net/minecraft/client/gui/BadJavaArchScreen.java
rename to src/main/java/net/minecraft/client/gui/ScreenBadJavaArch.java
index e58f226f4..9075df622 100644
--- a/src/main/java/net/minecraft/client/gui/BadJavaArchScreen.java
+++ b/src/main/java/net/minecraft/client/gui/ScreenBadJavaArch.java
@@ -10,11 +10,11 @@ import org.slf4j.Logger;
 import java.awt.*;
 import java.net.URI;
 
-public class BadJavaArchScreen extends Screen
+public class ScreenBadJavaArch extends Screen
 {
     private static final Logger LOGGER = LogUtils.getLogger();
 
-    public BadJavaArchScreen()
+    public ScreenBadJavaArch()
     {
     }
 
@@ -37,7 +37,7 @@ public class BadJavaArchScreen extends Screen
         }
         if(button.id == 0)
         {
-            mc.displayScreen(new MainMenuScreen());
+            mc.displayScreen(new ScreenMainMenu());
         }
         Desktop desktop = Desktop.isDesktopSupported() ? Desktop.getDesktop() : null;
         if (desktop != null && desktop.isSupported(Desktop.Action.BROWSE))
diff --git a/src/main/java/net/minecraft/client/gui/BlankScreen.java b/src/main/java/net/minecraft/client/gui/ScreenBlank.java
similarity index 77%
rename from src/main/java/net/minecraft/client/gui/BlankScreen.java
rename to src/main/java/net/minecraft/client/gui/ScreenBlank.java
index ba5337189..e0b55fd08 100644
--- a/src/main/java/net/minecraft/client/gui/BlankScreen.java
+++ b/src/main/java/net/minecraft/client/gui/ScreenBlank.java
@@ -1,6 +1,6 @@
 package net.minecraft.client.gui;
 
-public class BlankScreen extends Screen
+public class ScreenBlank extends Screen
 {
     @Override
 	public void keyPressed(char eventCharacter, int eventKey, int mx, int my)
diff --git a/src/main/java/net/minecraft/client/gui/ConflictWarningScreen.java b/src/main/java/net/minecraft/client/gui/ScreenConflictWarning.java
similarity index 91%
rename from src/main/java/net/minecraft/client/gui/ConflictWarningScreen.java
rename to src/main/java/net/minecraft/client/gui/ScreenConflictWarning.java
index 016739dda..0b1f4b829 100644
--- a/src/main/java/net/minecraft/client/gui/ConflictWarningScreen.java
+++ b/src/main/java/net/minecraft/client/gui/ScreenConflictWarning.java
@@ -5,10 +5,10 @@ package net.minecraft.client.gui;
 
 import net.minecraft.core.lang.I18n;
 
-public class ConflictWarningScreen extends Screen
+public class ScreenConflictWarning extends Screen
 {
 
-    public ConflictWarningScreen()
+    public ScreenConflictWarning()
     {
     }
 
@@ -28,7 +28,7 @@ public class ConflictWarningScreen extends Screen
         }
         if(button.id == 0)
         {
-            mc.displayScreen(new MainMenuScreen());
+            mc.displayScreen(new ScreenMainMenu());
         }
     }
 
diff --git a/src/main/java/net/minecraft/client/gui/ConnectFailedScreen.java b/src/main/java/net/minecraft/client/gui/ScreenConnectFailed.java
similarity index 91%
rename from src/main/java/net/minecraft/client/gui/ConnectFailedScreen.java
rename to src/main/java/net/minecraft/client/gui/ScreenConnectFailed.java
index 31b388655..1cbcfc991 100644
--- a/src/main/java/net/minecraft/client/gui/ConnectFailedScreen.java
+++ b/src/main/java/net/minecraft/client/gui/ScreenConnectFailed.java
@@ -7,10 +7,10 @@ import net.minecraft.client.Minecraft;
 
 import net.minecraft.core.lang.I18n;
 
-public class ConnectFailedScreen extends Screen
+public class ScreenConnectFailed extends Screen
 {
 
-	public ConnectFailedScreen(String s, String s1, Object aobj[]) {
+	public ScreenConnectFailed(String s, String s1, Object aobj[]) {
 		I18n stringtranslate = I18n.getInstance();
 		this.errorMessage = stringtranslate.translateKey(s);
 		
@@ -52,7 +52,7 @@ public class ConnectFailedScreen extends Screen
     {
         if(button.id == 0)
         {
-            mc.displayScreen(new MainMenuScreen());
+            mc.displayScreen(new ScreenMainMenu());
         }
     }
 
diff --git a/src/main/java/net/minecraft/client/gui/ConnectToIpScreen.java b/src/main/java/net/minecraft/client/gui/ScreenConnectToIp.java
similarity index 95%
rename from src/main/java/net/minecraft/client/gui/ConnectToIpScreen.java
rename to src/main/java/net/minecraft/client/gui/ScreenConnectToIp.java
index 88b74b202..4fbf1411b 100644
--- a/src/main/java/net/minecraft/client/gui/ConnectToIpScreen.java
+++ b/src/main/java/net/minecraft/client/gui/ScreenConnectToIp.java
@@ -8,10 +8,10 @@ import org.lwjgl.input.Keyboard;
 //            GuiScreen, GuiTextField, StringTranslate, GuiButton, 
 //            gGameSettings, GuiConnecting
 
-public class ConnectToIpScreen extends Screen
+public class ScreenConnectToIp extends Screen
 {
 
-    public ConnectToIpScreen(Screen parent)
+    public ScreenConnectToIp(Screen parent)
     {
         super(parent);
     }
@@ -60,7 +60,7 @@ public class ConnectToIpScreen extends Screen
             mc.gameSettings.lastServer.value = serverUrl.replaceAll(":", "_");
             mc.gameSettings.saveOptions();
             ServerAddress address = ServerAddress.resolveServerIP(serverUrl);
-            mc.displayScreen(new ConnectingScreen(mc, address.getIP(), address.getPort()));
+            mc.displayScreen(new ScreenConnecting(mc, address.getIP(), address.getPort()));
         }
     }
 
diff --git a/src/main/java/net/minecraft/client/gui/ConnectingScreen.java b/src/main/java/net/minecraft/client/gui/ScreenConnecting.java
similarity index 84%
rename from src/main/java/net/minecraft/client/gui/ConnectingScreen.java
rename to src/main/java/net/minecraft/client/gui/ScreenConnecting.java
index b0752f6dd..d9f1e7c5b 100644
--- a/src/main/java/net/minecraft/client/gui/ConnectingScreen.java
+++ b/src/main/java/net/minecraft/client/gui/ScreenConnecting.java
@@ -2,7 +2,7 @@ package net.minecraft.client.gui;
 
 import com.mojang.logging.LogUtils;
 import net.minecraft.client.Minecraft;
-import net.minecraft.client.net.handler.ClientPacketHandler;
+import net.minecraft.client.net.handler.PacketHandlerClient;
 import net.minecraft.core.lang.I18n;
 import net.minecraft.core.net.packet.PreLoginPacket;
 import org.slf4j.Logger;
@@ -11,13 +11,13 @@ import java.net.ConnectException;
 import java.net.UnknownHostException;
 
 // Referenced classes of package net.minecraft.src:
-//            GuiScreen, ThreadConnectToServer, ClientPacketHandler, StringTranslate,
+//            GuiScreen, ThreadConnectToServer, PacketHandlerClient, StringTranslate,
 //            GuiButton, GuiMainMenu
 
-public class ConnectingScreen extends Screen
+public class ScreenConnecting extends Screen
 {
     private static final Logger LOGGER = LogUtils.getLogger();
-    public ConnectingScreen(Minecraft minecraft, String hostName, int port)
+    public ScreenConnecting(Minecraft minecraft, String hostName, int port)
     {
         mc = minecraft;
         cancelled = false;
@@ -26,7 +26,7 @@ public class ConnectingScreen extends Screen
         new Thread(() -> {
             try
             {
-                clientHandler = new ClientPacketHandler(mc, hostName, port);
+                clientHandler = new PacketHandlerClient(mc, hostName, port);
                 if(cancelled)
                 {
                     return;
@@ -39,7 +39,7 @@ public class ConnectingScreen extends Screen
                 {
                     return;
                 }
-                mc.displayScreen(new ConnectFailedScreen("connect.failed", "disconnect.genericReason", new Object[] {
+                mc.displayScreen(new ScreenConnectFailed("connect.failed", "disconnect.genericReason", new Object[] {
                     "Unknown host '" + hostName + "'"
                 }));
             }
@@ -49,7 +49,7 @@ public class ConnectingScreen extends Screen
                 {
                     return;
                 }
-                mc.displayScreen(new ConnectFailedScreen("connect.failed", "disconnect.genericReason", new Object[] {
+                mc.displayScreen(new ScreenConnectFailed("connect.failed", "disconnect.genericReason", new Object[] {
                     connectexception.getMessage()
                 }));
             }
@@ -60,7 +60,7 @@ public class ConnectingScreen extends Screen
                     return;
                 }
                 LOGGER.error("Unexpected Exception when trying to join server!", exception);
-                mc.displayScreen(new ConnectFailedScreen("connect.failed", "disconnect.genericReason", new Object[] {
+                mc.displayScreen(new ScreenConnectFailed("connect.failed", "disconnect.genericReason", new Object[] {
                     exception.toString()
                 }));
             }
@@ -100,7 +100,7 @@ public class ConnectingScreen extends Screen
             {
                 clientHandler.disconnect();
             }
-            mc.displayScreen(new SelectServerScreen(new MainMenuScreen()));
+            mc.displayScreen(new ScreenSelectServer(new ScreenMainMenu()));
         }
     }
 
@@ -121,6 +121,6 @@ public class ConnectingScreen extends Screen
         super.render(xm, ym, partialTick);
     }
 
-    private ClientPacketHandler clientHandler;
+    private PacketHandlerClient clientHandler;
     private boolean cancelled;
 }
diff --git a/src/main/java/net/minecraft/client/gui/ControllerSetupScreen.java b/src/main/java/net/minecraft/client/gui/ScreenControllerSetup.java
similarity index 98%
rename from src/main/java/net/minecraft/client/gui/ControllerSetupScreen.java
rename to src/main/java/net/minecraft/client/gui/ScreenControllerSetup.java
index 23279b1f1..649630868 100644
--- a/src/main/java/net/minecraft/client/gui/ControllerSetupScreen.java
+++ b/src/main/java/net/minecraft/client/gui/ScreenControllerSetup.java
@@ -12,12 +12,12 @@ import java.util.Arrays;
 
 import static org.lwjgl.opengl.GL11.*;
 
-public class ControllerSetupScreen extends Screen {
+public class ScreenControllerSetup extends Screen {
     private ControllerInput lastController = null;
     private ButtonElement controllerButton;
     private ControllerGlyphElement glyphRenderer;
 
-    public ControllerSetupScreen(Screen parentScreen) {
+    public ScreenControllerSetup(Screen parentScreen) {
         super(parentScreen);
     }
 
diff --git a/src/main/java/net/minecraft/client/gui/CreateWorldScreen.java b/src/main/java/net/minecraft/client/gui/ScreenCreateWorld.java
similarity index 99%
rename from src/main/java/net/minecraft/client/gui/CreateWorldScreen.java
rename to src/main/java/net/minecraft/client/gui/ScreenCreateWorld.java
index b05c47b55..421bbc415 100644
--- a/src/main/java/net/minecraft/client/gui/CreateWorldScreen.java
+++ b/src/main/java/net/minecraft/client/gui/ScreenCreateWorld.java
@@ -18,7 +18,7 @@ import org.lwjgl.input.Keyboard;
 import java.util.List;
 import java.util.Random;
 
-public class CreateWorldScreen extends Screen {
+public class ScreenCreateWorld extends Screen {
     private int overrideSpawnX;
     private int overrideSpawnY;
     private int overrideSpawnZ;
@@ -38,7 +38,7 @@ public class CreateWorldScreen extends Screen {
     private WorldTypeGroups.Group worldTypeGroup = WorldTypeGroups.DEFAULT;
     private long seed = (new Random()).nextLong();
 
-    public CreateWorldScreen(Screen guiscreen) {
+    public ScreenCreateWorld(Screen guiscreen) {
         textField = guiscreen;
     }
 
diff --git a/src/main/java/net/minecraft/client/gui/CreditsScreen.java b/src/main/java/net/minecraft/client/gui/ScreenCredits.java
similarity index 98%
rename from src/main/java/net/minecraft/client/gui/CreditsScreen.java
rename to src/main/java/net/minecraft/client/gui/ScreenCredits.java
index 5a711e93b..3a48b3a61 100644
--- a/src/main/java/net/minecraft/client/gui/CreditsScreen.java
+++ b/src/main/java/net/minecraft/client/gui/ScreenCredits.java
@@ -21,7 +21,7 @@ import java.util.List;
 
 import static org.lwjgl.opengl.GL11.*;
 
-public class CreditsScreen extends Screen {
+public class ScreenCredits extends Screen {
     private static final Logger LOGGER = LogUtils.getLogger();
     private static final int TOP_SPACING = 24;
     private static final int BUTTON_SPACING = 4;
@@ -53,10 +53,10 @@ public class CreditsScreen extends Screen {
 
     private float hue = 0;
 
-    public CreditsScreen(Screen parent) {
+    public ScreenCredits(Screen parent) {
         super(parent);
 
-        try (InputStream stream = MainMenuScreen.class.getResourceAsStream("/credits.txt")) {
+        try (InputStream stream = ScreenMainMenu.class.getResourceAsStream("/credits.txt")) {
 
             List<String> lines = new ArrayList<>();
             BufferedReader br = new BufferedReader(new InputStreamReader(stream, StandardCharsets.UTF_8));
diff --git a/src/main/java/net/minecraft/client/gui/DownloadTerrainScreen.java b/src/main/java/net/minecraft/client/gui/ScreenDownloadTerrain.java
similarity index 80%
rename from src/main/java/net/minecraft/client/gui/DownloadTerrainScreen.java
rename to src/main/java/net/minecraft/client/gui/ScreenDownloadTerrain.java
index 02c672600..ce95f0bdd 100644
--- a/src/main/java/net/minecraft/client/gui/DownloadTerrainScreen.java
+++ b/src/main/java/net/minecraft/client/gui/ScreenDownloadTerrain.java
@@ -1,17 +1,17 @@
 package net.minecraft.client.gui;
 
 // Referenced classes of package net.minecraft.src:
-//            GuiScreen, KeepAlivePacket, ClientPacketHandler, StringTranslate,
+//            GuiScreen, KeepAlivePacket, PacketHandlerClient, StringTranslate,
 //            GuiButton
 
-import net.minecraft.client.net.handler.ClientPacketHandler;
+import net.minecraft.client.net.handler.PacketHandlerClient;
 import net.minecraft.core.net.packet.KeepAlivePacket;
 import net.minecraft.core.lang.I18n;
 
-public class DownloadTerrainScreen extends Screen
+public class ScreenDownloadTerrain extends Screen
 {
 
-    public DownloadTerrainScreen(ClientPacketHandler netclienthandler)
+    public ScreenDownloadTerrain(PacketHandlerClient netclienthandler)
     {
         updateCounter = 0;
         netHandler = netclienthandler;
@@ -57,6 +57,6 @@ public class DownloadTerrainScreen extends Screen
         super.render(xm, ym, partialTick);
     }
 
-    private ClientPacketHandler netHandler;
+    private PacketHandlerClient netHandler;
     private int updateCounter;
 }
diff --git a/src/main/java/net/minecraft/client/gui/GameOverScreen.java b/src/main/java/net/minecraft/client/gui/ScreenGameOver.java
similarity index 84%
rename from src/main/java/net/minecraft/client/gui/GameOverScreen.java
rename to src/main/java/net/minecraft/client/gui/ScreenGameOver.java
index 7bdb3156f..3eb517bb8 100644
--- a/src/main/java/net/minecraft/client/gui/GameOverScreen.java
+++ b/src/main/java/net/minecraft/client/gui/ScreenGameOver.java
@@ -1,6 +1,6 @@
 package net.minecraft.client.gui;
 
-import net.minecraft.client.entity.player.MultiplayerLocalPlayer;
+import net.minecraft.client.entity.player.PlayerLocalMultiplayer;
 import net.minecraft.core.lang.I18n;
 import net.minecraft.core.net.packet.KeepAlivePacket;
 import net.minecraft.core.player.gamemode.Gamemode;
@@ -9,20 +9,20 @@ import org.lwjgl.opengl.GL11;
 import net.minecraft.core.net.command.TextFormatting;
 
 // Referenced classes of package net.minecraft.src:
-//            GuiScreen, GuiButton, LocalPlayer, GuiMainMenu
+//            GuiScreen, GuiButton, PlayerLocal, GuiMainMenu
 
-public class GameOverScreen extends Screen
+public class ScreenGameOver extends Screen
 {
     protected int tickCount = 0;
 
-    public GameOverScreen()
+    public ScreenGameOver()
     {
     }
     @Override
     public void tick(){
         tickCount++;
-        if (mc.isMultiplayerWorld() && mc.thePlayer instanceof MultiplayerLocalPlayer && tickCount % 10 == 0){
-            MultiplayerLocalPlayer clientPlayerMP = (MultiplayerLocalPlayer) mc.thePlayer;
+        if (mc.isMultiplayerWorld() && mc.thePlayer instanceof PlayerLocalMultiplayer && tickCount % 10 == 0){
+            PlayerLocalMultiplayer clientPlayerMP = (PlayerLocalMultiplayer) mc.thePlayer;
             clientPlayerMP.sendQueue.addToSendQueue(new KeepAlivePacket());
         }
     }
@@ -60,7 +60,7 @@ public class GameOverScreen extends Screen
                 mc.theWorld.sendQuittingDisconnectingPacket();
             }
             mc.changeWorld(null);
-            mc.displayScreen(new MainMenuScreen());
+            mc.displayScreen(new ScreenMainMenu());
         }
     }
 
diff --git a/src/main/java/net/minecraft/client/gui/HudDesignerScreen.java b/src/main/java/net/minecraft/client/gui/ScreenHudDesigner.java
similarity index 92%
rename from src/main/java/net/minecraft/client/gui/HudDesignerScreen.java
rename to src/main/java/net/minecraft/client/gui/ScreenHudDesigner.java
index 905ffb6df..6e76c4964 100644
--- a/src/main/java/net/minecraft/client/gui/HudDesignerScreen.java
+++ b/src/main/java/net/minecraft/client/gui/ScreenHudDesigner.java
@@ -3,10 +3,10 @@ package net.minecraft.client.gui;
 import net.minecraft.client.gui.hud.component.ComponentAnchor;
 import net.minecraft.client.gui.hud.component.HudComponent;
 import net.minecraft.client.gui.hud.component.HudComponents;
-import net.minecraft.client.gui.hud.component.MovableHudComponent;
-import net.minecraft.client.gui.hud.component.layout.AbsoluteLayout;
+import net.minecraft.client.gui.hud.component.HudComponentMovable;
+import net.minecraft.client.gui.hud.component.layout.LayoutAbsolute;
 import net.minecraft.client.gui.hud.component.layout.Layout;
-import net.minecraft.client.gui.hud.component.layout.SnapLayout;
+import net.minecraft.client.gui.hud.component.layout.LayoutSnap;
 import net.minecraft.client.render.tessellator.Tessellator;
 import net.minecraft.core.lang.I18n;
 import net.minecraft.core.util.helper.MathHelper;
@@ -17,7 +17,7 @@ import java.util.List;
 
 import static org.lwjgl.opengl.GL11.*;
 
-public class HudDesignerScreen
+public class ScreenHudDesigner
     extends Screen {
     private static final int BOTTOM_SPACE = 28;
     private final List<HudComponent> componentsUnderMouse = new ArrayList<>();
@@ -28,7 +28,7 @@ public class HudDesignerScreen
     private float screenPadding = 0.0f;
     private ButtonElement resetButton;
 
-    public HudDesignerScreen(Screen parent) {
+    public ScreenHudDesigner(Screen parent) {
         super(parent);
     }
 
@@ -67,14 +67,14 @@ public class HudDesignerScreen
         if (buttonNum == 0) {
             if (!componentsUnderMouse.isEmpty()) {
                 HudComponent componentUnderMouse = componentsUnderMouse.get(componentsUnderMouse.size() - 1);
-                if (componentUnderMouse instanceof MovableHudComponent) {
+                if (componentUnderMouse instanceof HudComponentMovable) {
                     Layout currentLayout = componentUnderMouse.getLayout();
                     ComponentAnchor anchor = getClosestAnchor(
                         currentLayout.getComponentX(mc, componentUnderMouse, width),
                         currentLayout.getComponentY(mc, componentUnderMouse, height - BOTTOM_SPACE),
                         componentUnderMouse, mx, my);
-                    Layout layout = new AbsoluteLayout(0, 0, anchor);
-                    ((MovableHudComponent) componentUnderMouse).setLayout(layout);
+                    Layout layout = new LayoutAbsolute(0, 0, anchor);
+                    ((HudComponentMovable) componentUnderMouse).setLayout(layout);
 
                     heldComponent = componentUnderMouse;
                     heldAnchor = anchor;
@@ -100,8 +100,8 @@ public class HudDesignerScreen
         int newY = MathHelper.clamp(mouseY, yOffset, height - BOTTOM_SPACE - (ySize - yOffset));
 
         Layout layout = heldComponent.getLayout();
-        if (layout instanceof AbsoluteLayout) {
-            AbsoluteLayout absoluteLayout = (AbsoluteLayout) layout;
+        if (layout instanceof LayoutAbsolute) {
+            LayoutAbsolute absoluteLayout = (LayoutAbsolute) layout;
             absoluteLayout.setXPosition((float) newX / width);
             absoluteLayout.setYPosition((float) newY / (height - BOTTOM_SPACE));
         }
@@ -115,13 +115,13 @@ public class HudDesignerScreen
             boolean isNested = false;
             Layout nestedLayout = otherLayout;
             for (int i = 0; i < 10; i++) {
-                if (nestedLayout instanceof SnapLayout) {
-                    SnapLayout snapLayout = (SnapLayout) nestedLayout;
-                    if (snapLayout.getParent() == heldComponent) {
+                if (nestedLayout instanceof LayoutSnap) {
+                    LayoutSnap layoutSnap = (LayoutSnap) nestedLayout;
+                    if (layoutSnap.getParent() == heldComponent) {
                         isNested = true;
                         break;
-                    } else if (snapLayout.getParent() != null) {
-                        nestedLayout = snapLayout.getParent().getLayout();
+                    } else if (layoutSnap.getParent() != null) {
+                        nestedLayout = layoutSnap.getParent().getLayout();
                     } else {
                         break;
                     }
@@ -142,8 +142,8 @@ public class HudDesignerScreen
                 if (anchor != null && heldAnchor.canConnectTo(anchor)) {
                     snappedComponent = component;
                     snappedAnchor = anchor;
-                    SnapLayout newLayout = new SnapLayout(component, anchor, heldAnchor);
-                    ((MovableHudComponent) heldComponent).setLayout(newLayout);
+                    LayoutSnap newLayout = new LayoutSnap(component, anchor, heldAnchor);
+                    ((HudComponentMovable) heldComponent).setLayout(newLayout);
                     didSnap = true;
                     break;
                 }
@@ -157,14 +157,14 @@ public class HudDesignerScreen
             if (anchor != null) {
                 snappedComponent = null;
                 snappedAnchor = anchor;
-                SnapLayout newLayout = new SnapLayout(null, snappedAnchor, heldAnchor);
-                ((MovableHudComponent) heldComponent).setLayout(newLayout);
+                LayoutSnap newLayout = new LayoutSnap(null, snappedAnchor, heldAnchor);
+                ((HudComponentMovable) heldComponent).setLayout(newLayout);
                 didSnap = true;
             }
 
             if (!didSnap) {
-                AbsoluteLayout newLayout = new AbsoluteLayout((float) newX / width, (float) newY / (height - BOTTOM_SPACE), heldAnchor);
-                ((MovableHudComponent) heldComponent).setLayout(newLayout);
+                LayoutAbsolute newLayout = new LayoutAbsolute((float) newX / width, (float) newY / (height - BOTTOM_SPACE), heldAnchor);
+                ((HudComponentMovable) heldComponent).setLayout(newLayout);
                 snappedComponent = null;
                 snappedAnchor = null;
             }
diff --git a/src/main/java/net/minecraft/client/gui/LabelEditorScreen.java b/src/main/java/net/minecraft/client/gui/ScreenLabelEditor.java
similarity index 94%
rename from src/main/java/net/minecraft/client/gui/LabelEditorScreen.java
rename to src/main/java/net/minecraft/client/gui/ScreenLabelEditor.java
index 2625fce85..31c650846 100644
--- a/src/main/java/net/minecraft/client/gui/LabelEditorScreen.java
+++ b/src/main/java/net/minecraft/client/gui/ScreenLabelEditor.java
@@ -10,10 +10,10 @@ import org.lwjgl.opengl.GL11;
 
 // Referenced classes of package net.minecraft.src:
 //            GuiScreen, GuiButton, World, SignUpdatePacket,
-//            SignBlockEntity, ClientPacketHandler, Block, BlockEntityRenderer,
+//            TileEntitySign, PacketHandlerClient, Block, TileEntityRenderer,
 //            ChatAllowedCharacters
 
-public class LabelEditorScreen extends Screen
+public class ScreenLabelEditor extends Screen
 {
     private static final String allowedCharacters;
 
@@ -29,7 +29,7 @@ public class LabelEditorScreen extends Screen
     protected int ySize;
     protected int slot;
 
-    public LabelEditorScreen(final ItemStack item, int slot)
+    public ScreenLabelEditor(final ItemStack item, int slot)
     {
         screenTitle = I18n.getInstance().translateKey("gui.edit_label.label.title");
         this.item = item;
diff --git a/src/main/java/net/minecraft/client/gui/MainMenuScreen.java b/src/main/java/net/minecraft/client/gui/ScreenMainMenu.java
similarity index 96%
rename from src/main/java/net/minecraft/client/gui/MainMenuScreen.java
rename to src/main/java/net/minecraft/client/gui/ScreenMainMenu.java
index 54b361372..284e13ab8 100644
--- a/src/main/java/net/minecraft/client/gui/MainMenuScreen.java
+++ b/src/main/java/net/minecraft/client/gui/ScreenMainMenu.java
@@ -14,8 +14,8 @@ import java.util.Random;
 import javax.imageio.ImageIO;
 
 import com.mojang.logging.LogUtils;
-import net.minecraft.client.gui.hud.IngameHud;
-import net.minecraft.client.gui.hud.DoomIngameHud;
+import net.minecraft.client.gui.hud.HudIngame;
+import net.minecraft.client.gui.hud.HudIngameDoom;
 import net.minecraft.client.holiday.Holidays;
 import net.minecraft.client.render.block.model.BlockModelDispatcher;
 import net.minecraft.client.render.texture.stitcher.TextureRegistry;
@@ -36,7 +36,7 @@ import net.minecraft.core.sound.SoundCategory;
 import net.minecraft.core.util.helper.MathHelper;
 import org.slf4j.Logger;
 
-public class MainMenuScreen extends Screen
+public class ScreenMainMenu extends Screen
 {
     private static final Logger LOGGER = LogUtils.getLogger();
 
@@ -65,10 +65,10 @@ public class MainMenuScreen extends Screen
     	loadLogo();
     }
 
-	public MainMenuScreen() {
-		PauseScreen.photoModeDisabled = false;
+	public ScreenMainMenu() {
+		ScreenPause.photoModeDisabled = false;
 
-        try (InputStream stream = MainMenuScreen.class.getResourceAsStream("/assets/minecraft/textures/gui/title/splashes.txt")) {
+        try (InputStream stream = ScreenMainMenu.class.getResourceAsStream("/assets/minecraft/textures/gui/title/splashes.txt")) {
 
             if (stream == null) {
                 LOGGER.error("Could not locate 'splashes.txt'! Does the file exist!?");
@@ -101,13 +101,13 @@ public class MainMenuScreen extends Screen
             codeProgress++;
             if (codeProgress == KEY_CHAIN.length)
             {
-                if (mc.ingameHud instanceof DoomIngameHud)
+                if (mc.hudIngame instanceof HudIngameDoom)
                 {
-                    mc.ingameHud = new IngameHud(mc);
+                    mc.hudIngame = new HudIngame(mc);
                 }
                 else
                 {
-                    mc.ingameHud = new DoomIngameHud(mc);
+                    mc.hudIngame = new HudIngameDoom(mc);
                 }
                 mc.sndManager.playSound("mob.pig", SoundCategory.GUI_SOUNDS, 1.0F, 1.0F);
                 codeProgress = 0;
@@ -195,11 +195,11 @@ public class MainMenuScreen extends Screen
         }
         if(button.id == 1)
         {
-            mc.displayScreen(new SelectWorldScreen(this));
+            mc.displayScreen(new ScreenSelectWorld(this));
         }
         if(button.id == 2)
         {
-            mc.displayScreen(new SelectServerScreen(this));
+            mc.displayScreen(new ScreenSelectServer(this));
         }
         if(button.id == 3)
         {
@@ -211,7 +211,7 @@ public class MainMenuScreen extends Screen
         }
         if(button.id == 5)
         {
-            mc.displayScreen(new CreditsScreen(this));
+            mc.displayScreen(new ScreenCredits(this));
         }
         if(button.id == 9)
         {
@@ -461,7 +461,7 @@ public class MainMenuScreen extends Screen
     
     public static void loadLogo() {
     	try {
-    		InputStream inputStream = MainMenuScreen.class.getResourceAsStream("/assets/minecraft/textures/gui/title/retrologo.png");
+    		InputStream inputStream = ScreenMainMenu.class.getResourceAsStream("/assets/minecraft/textures/gui/title/retrologo.png");
     		BufferedImage image = ImageIO.read(inputStream);
     		inputStream.close();
 
diff --git a/src/main/java/net/minecraft/client/gui/MissingMinecraftScreen.java b/src/main/java/net/minecraft/client/gui/ScreenMissingMinecraft.java
similarity index 98%
rename from src/main/java/net/minecraft/client/gui/MissingMinecraftScreen.java
rename to src/main/java/net/minecraft/client/gui/ScreenMissingMinecraft.java
index c3a5c7836..0326d3837 100644
--- a/src/main/java/net/minecraft/client/gui/MissingMinecraftScreen.java
+++ b/src/main/java/net/minecraft/client/gui/ScreenMissingMinecraft.java
@@ -10,7 +10,7 @@ import org.slf4j.Logger;
 import java.awt.*;
 import java.net.URI;
 
-public class MissingMinecraftScreen extends Screen {
+public class ScreenMissingMinecraft extends Screen {
     private static final Logger LOGGER = LogUtils.getLogger();
     public int ticks = 0;
     @Override
diff --git a/src/main/java/net/minecraft/client/gui/MobPickerScreen.java b/src/main/java/net/minecraft/client/gui/ScreenMobPicker.java
similarity index 87%
rename from src/main/java/net/minecraft/client/gui/MobPickerScreen.java
rename to src/main/java/net/minecraft/client/gui/ScreenMobPicker.java
index e7090be26..2e0249903 100644
--- a/src/main/java/net/minecraft/client/gui/MobPickerScreen.java
+++ b/src/main/java/net/minecraft/client/gui/ScreenMobPicker.java
@@ -2,11 +2,11 @@ package net.minecraft.client.gui;
 
 import net.minecraft.client.gui.popup.PopupScreen;
 import net.minecraft.client.gui.popup.PopupBuilder;
-import net.minecraft.core.block.entity.MobSpawnerBlockEntity;
+import net.minecraft.core.block.entity.TileEntityMobSpawner;
 import net.minecraft.core.entity.Entity;
 import net.minecraft.core.entity.EntityDispatcher;
 import net.minecraft.core.entity.Mob;
-import net.minecraft.core.entity.animal.FireflyClusterMob;
+import net.minecraft.core.entity.animal.MobFireflyCluster;
 import net.minecraft.core.net.packet.SetMobSpawnerPacket;
 
 import java.lang.reflect.Modifier;
@@ -14,7 +14,7 @@ import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 
-public class MobPickerScreen
+public class ScreenMobPicker
     extends Screen {
     private final int x;
     private final int y;
@@ -23,7 +23,7 @@ public class MobPickerScreen
     private boolean shouldClose = false;
 
 
-    public MobPickerScreen(String mobId, int x, int y, int z) {
+    public ScreenMobPicker(String mobId, int x, int y, int z) {
         this.mobId = mobId;
         this.x = x;
         this.y = y;
@@ -34,7 +34,7 @@ public class MobPickerScreen
     public void init() {
         List<String> monsters = new ArrayList<>();
         for (Class<? extends Entity> clazz : EntityDispatcher.classToKeyMap.keySet()) {
-            if (clazz == FireflyClusterMob.class) continue;
+            if (clazz == MobFireflyCluster.class) continue;
             if (Mob.class.isAssignableFrom(clazz) && !Modifier.isAbstract(clazz.getModifiers())) {
                 monsters.add(EntityDispatcher.classToKeyMap.get(clazz));
             }
@@ -61,7 +61,7 @@ public class MobPickerScreen
                 if (statusCode == 1) {
                     mobId = monsters.get((Integer) results.get("list"));
                     if (!mc.theWorld.isClientSide) {
-                        MobSpawnerBlockEntity spawner = (MobSpawnerBlockEntity) mc.theWorld.getBlockEntity(x, y, z);
+                        TileEntityMobSpawner spawner = (TileEntityMobSpawner) mc.theWorld.getBlockEntity(x, y, z);
                         if (spawner == null) {
                             return;
                         }
diff --git a/src/main/java/net/minecraft/client/gui/OutOfMemoryScreen.java b/src/main/java/net/minecraft/client/gui/ScreenOutOfMemory.java
similarity index 96%
rename from src/main/java/net/minecraft/client/gui/OutOfMemoryScreen.java
rename to src/main/java/net/minecraft/client/gui/ScreenOutOfMemory.java
index 480703a70..f422d8c63 100644
--- a/src/main/java/net/minecraft/client/gui/OutOfMemoryScreen.java
+++ b/src/main/java/net/minecraft/client/gui/ScreenOutOfMemory.java
@@ -6,7 +6,7 @@ package net.minecraft.client.gui;
 
 import net.minecraft.core.lang.I18n;
 
-public class OutOfMemoryScreen extends Screen
+public class ScreenOutOfMemory extends Screen
 {
     @Override
     public void keyPressed(char eventCharacter, int eventKey, int mx, int my) {
diff --git a/src/main/java/net/minecraft/client/gui/PaintingPickerScreen.java b/src/main/java/net/minecraft/client/gui/ScreenPaintingPicker.java
similarity index 98%
rename from src/main/java/net/minecraft/client/gui/PaintingPickerScreen.java
rename to src/main/java/net/minecraft/client/gui/ScreenPaintingPicker.java
index 7031ba613..1360bdb33 100644
--- a/src/main/java/net/minecraft/client/gui/PaintingPickerScreen.java
+++ b/src/main/java/net/minecraft/client/gui/ScreenPaintingPicker.java
@@ -14,7 +14,7 @@ import java.util.List;
 import static org.lwjgl.opengl.GL11.*;
 import static org.lwjgl.opengl.GL11.GL_BLEND;
 
-public class PaintingPickerScreen
+public class ScreenPaintingPicker
     extends Screen
 {
     private final Player player;
@@ -22,7 +22,7 @@ public class PaintingPickerScreen
     private ArtType centerArt = ArtType.Kebab;
     private int tallestSize = 0;
 
-    public PaintingPickerScreen(Player player)
+    public ScreenPaintingPicker(Player player)
     {
         this.player = player;
         for (ArtType art : ArtType.values){
diff --git a/src/main/java/net/minecraft/client/gui/PauseScreen.java b/src/main/java/net/minecraft/client/gui/ScreenPause.java
similarity index 85%
rename from src/main/java/net/minecraft/client/gui/PauseScreen.java
rename to src/main/java/net/minecraft/client/gui/ScreenPause.java
index deb18a47e..d6d91d239 100644
--- a/src/main/java/net/minecraft/client/gui/PauseScreen.java
+++ b/src/main/java/net/minecraft/client/gui/ScreenPause.java
@@ -1,9 +1,9 @@
 package net.minecraft.client.gui;
 
-import net.minecraft.client.gui.achievements.AchievementsScreen;
-import net.minecraft.client.gui.guidebook.GuidebookScreen;
-import net.minecraft.client.gui.guidebook.PageManager;
-import net.minecraft.client.gui.guidebook.search.SearchPage;
+import net.minecraft.client.gui.achievements.ScreenAchievements;
+import net.minecraft.client.gui.guidebook.GuidebookPageManager;
+import net.minecraft.client.gui.guidebook.ScreenGuidebook;
+import net.minecraft.client.gui.guidebook.search.GuidebookPageSearch;
 import net.minecraft.client.gui.options.OptionsScreen;
 import net.minecraft.client.gui.options.data.OptionsPages;
 import net.minecraft.core.data.registry.Registries;
@@ -19,10 +19,10 @@ import net.minecraft.client.input.InputType;
 //            StatList, StatFileWriter, World, GuiMainMenu, 
 //            GuiAchievements, GuiStats, MathHelper
 
-public class PauseScreen extends Screen
+public class ScreenPause extends Screen
 {
 
-    public PauseScreen()
+    public ScreenPause()
     {
         updateCounter2 = 0;
         updateCounter = 0;
@@ -69,12 +69,12 @@ public class PauseScreen extends Screen
             {
                 mc.theWorld.sendQuittingDisconnectingPacket();
                 Registries.RECIPES = Registries.RECIPES_LOCAL_COPY;
-                SearchPage.searchField.setText("");
-                PageManager.searchQuery = SearchQuery.resolve(SearchPage.searchField.getText());
-                GuidebookScreen.getPageManager().updatePages();
+                GuidebookPageSearch.searchField.setText("");
+                GuidebookPageManager.searchQuery = SearchQuery.resolve(GuidebookPageSearch.searchField.getText());
+                ScreenGuidebook.getPageManager().updatePages();
             }
             mc.changeWorld(null);
-            mc.displayScreen(new MainMenuScreen());
+            mc.displayScreen(new ScreenMainMenu());
         }
         if(button.id == 4)
         {
@@ -87,15 +87,15 @@ public class PauseScreen extends Screen
         }
         if(button.id == 5)
         {
-            mc.displayScreen(new AchievementsScreen(this, mc.statsCounter));
+            mc.displayScreen(new ScreenAchievements(this, mc.statsCounter));
         }
         if(button.id == 6)
         {
-            mc.displayScreen(new StatsScreen(this, mc.statsCounter));
+            mc.displayScreen(new ScreenStats(this, mc.statsCounter));
         }
         if (button.id == 7)
         {
-            mc.displayScreen(new PhotoModeScreen());
+            mc.displayScreen(new ScreenPhotoMode());
         }
         if(button.id == 9){
             mc.displayScreen(new OptionsScreen(this, OptionsPages.DEBUG));
diff --git a/src/main/java/net/minecraft/client/gui/PhotoModeScreen.java b/src/main/java/net/minecraft/client/gui/ScreenPhotoMode.java
similarity index 99%
rename from src/main/java/net/minecraft/client/gui/PhotoModeScreen.java
rename to src/main/java/net/minecraft/client/gui/ScreenPhotoMode.java
index 7690118f9..bc9e7ffc3 100644
--- a/src/main/java/net/minecraft/client/gui/PhotoModeScreen.java
+++ b/src/main/java/net/minecraft/client/gui/ScreenPhotoMode.java
@@ -19,7 +19,7 @@ import net.minecraft.core.util.helper.ScreenShot;
 import java.io.File;
 import java.util.Locale;
 
-public class PhotoModeScreen extends Screen
+public class ScreenPhotoMode extends Screen
 {
     private ButtonElement buttonRotateLeft;
     private ButtonElement buttonRotateRight;
@@ -79,7 +79,7 @@ public class PhotoModeScreen extends Screen
     
     protected boolean showHelpText = true;
 
-    public PhotoModeScreen()
+    public ScreenPhotoMode()
     {
         Minecraft mc = Minecraft.getMinecraft(this);
 
diff --git a/src/main/java/net/minecraft/client/gui/SelectServerScreen.java b/src/main/java/net/minecraft/client/gui/ScreenSelectServer.java
similarity index 97%
rename from src/main/java/net/minecraft/client/gui/SelectServerScreen.java
rename to src/main/java/net/minecraft/client/gui/ScreenSelectServer.java
index af952745d..139cb67b0 100644
--- a/src/main/java/net/minecraft/client/gui/SelectServerScreen.java
+++ b/src/main/java/net/minecraft/client/gui/ScreenSelectServer.java
@@ -15,7 +15,7 @@ import java.io.File;
 import java.util.HashMap;
 import java.util.Map;
 
-public class SelectServerScreen extends Screen {
+public class ScreenSelectServer extends Screen {
 
 	protected String screenTitle = "Select server";
 	private boolean selected = false;
@@ -37,7 +37,7 @@ public class SelectServerScreen extends Screen {
 
 	private Map<ServerData, ThreadPingServer> pingThreads = new HashMap<>();
 
-	public SelectServerScreen(Screen parent) {
+	public ScreenSelectServer(Screen parent) {
 		super(parent);
 	}
 
@@ -105,9 +105,9 @@ public class SelectServerScreen extends Screen {
 		} else if(button == buttonConnect) {
 			selectServer(selectedServer);
 		} else if(button == buttonDirectConnect) {
-			mc.displayScreen(new ConnectToIpScreen(this));
+			mc.displayScreen(new ScreenConnectToIp(this));
 		} else if(button == buttonAdd) {
-			mc.displayScreen(new AddServerScreen(this, savedServerList));
+			mc.displayScreen(new ScreenAddServer(this, savedServerList));
 			savedServerList.writeToFile();
 		} else if(button == buttonCancel) {
 			mc.displayScreen(parentScreen);
@@ -196,7 +196,7 @@ public class SelectServerScreen extends Screen {
 		selected = true;
 		ServerData server = savedServerList.servers.get(selectedServer);
 		ServerAddress address = server.getServerAddress();
-		mc.displayScreen(new ConnectingScreen(mc, address.getIP(), address.getPort()));
+		mc.displayScreen(new ScreenConnecting(mc, address.getIP(), address.getPort()));
 	}
 
 	public void deleteWorld(boolean flag, int i) {
diff --git a/src/main/java/net/minecraft/client/gui/SelectWorldScreen.java b/src/main/java/net/minecraft/client/gui/ScreenSelectWorld.java
similarity index 98%
rename from src/main/java/net/minecraft/client/gui/SelectWorldScreen.java
rename to src/main/java/net/minecraft/client/gui/ScreenSelectWorld.java
index 8657b05d9..0ccc52d15 100644
--- a/src/main/java/net/minecraft/client/gui/SelectWorldScreen.java
+++ b/src/main/java/net/minecraft/client/gui/ScreenSelectWorld.java
@@ -22,7 +22,7 @@ import java.util.Collections;
 import java.util.Date;
 import java.util.List;
 
-public class SelectWorldScreen extends Screen
+public class ScreenSelectWorld extends Screen
 {
     private final DateFormat dateFormatter = new SimpleDateFormat();
     protected String stringTitle;
@@ -37,7 +37,7 @@ public class SelectWorldScreen extends Screen
     private ButtonElement buttonSelect;
     private ButtonElement buttonDelete;
 
-    public SelectWorldScreen(Screen parent)
+    public ScreenSelectWorld(Screen parent)
     {
         super(parent);
         stringTitle = "Select world";
@@ -180,7 +180,7 @@ public class SelectWorldScreen extends Screen
         }
         else if(button.id == 3)
         {
-            mc.displayScreen(new CreateWorldScreen(this));
+            mc.displayScreen(new ScreenCreateWorld(this));
         }
         else if(button.id == 6)
         {
diff --git a/src/main/java/net/minecraft/client/gui/SignEditorScreen.java b/src/main/java/net/minecraft/client/gui/ScreenSignEditor.java
similarity index 95%
rename from src/main/java/net/minecraft/client/gui/SignEditorScreen.java
rename to src/main/java/net/minecraft/client/gui/ScreenSignEditor.java
index 1cf8900c1..aa5c6720d 100644
--- a/src/main/java/net/minecraft/client/gui/SignEditorScreen.java
+++ b/src/main/java/net/minecraft/client/gui/ScreenSignEditor.java
@@ -2,7 +2,7 @@ package net.minecraft.client.gui;
 
 import net.minecraft.core.block.Block;
 import net.minecraft.core.block.Blocks;
-import net.minecraft.core.block.entity.SignBlockEntity;
+import net.minecraft.core.block.entity.TileEntitySign;
 import net.minecraft.core.enums.EnumSignPicture;
 import net.minecraft.core.util.helper.ChatAllowedCharacters;
 import net.minecraft.core.net.packet.SignUpdatePacket;
@@ -12,9 +12,9 @@ import net.minecraft.core.lang.I18n;
 import org.lwjgl.input.Keyboard;
 import org.lwjgl.opengl.GL11;
 
-public class SignEditorScreen extends Screen
+public class ScreenSignEditor extends Screen
 {
-    public SignEditorScreen(SignBlockEntity tileentitysign)
+    public ScreenSignEditor(TileEntitySign tileentitysign)
     {
         screenTitle = I18n.getInstance().translateKey("gui.edit_sign.label.title");
         editLine = 0;
@@ -107,7 +107,7 @@ public class SignEditorScreen extends Screen
         {
             entitySign.signText[editLine] = entitySign.signText[editLine].substring(0, entitySign.signText[editLine].length() - 1);
         }
-        if ((allowedCharacters.indexOf(eventCharacter) >= 0 || Character.isLetterOrDigit(eventCharacter)) && entitySign.signText[editLine].length() < SignBlockEntity.MAX_LINE_SIZE)
+        if ((allowedCharacters.indexOf(eventCharacter) >= 0 || Character.isLetterOrDigit(eventCharacter)) && entitySign.signText[editLine].length() < TileEntitySign.MAX_LINE_SIZE)
         {
             entitySign.signText[editLine] += eventCharacter;
         }
@@ -162,7 +162,7 @@ public class SignEditorScreen extends Screen
     }
 
     protected String screenTitle;
-    private SignBlockEntity entitySign;
+    private TileEntitySign entitySign;
     private int updateCounter;
     private int editLine;
     private int yOffset = 0;
diff --git a/src/main/java/net/minecraft/client/gui/SleepScreenSP.java b/src/main/java/net/minecraft/client/gui/ScreenSleepSP.java
similarity index 94%
rename from src/main/java/net/minecraft/client/gui/SleepScreenSP.java
rename to src/main/java/net/minecraft/client/gui/ScreenSleepSP.java
index ee1424127..ee6ca6110 100644
--- a/src/main/java/net/minecraft/client/gui/SleepScreenSP.java
+++ b/src/main/java/net/minecraft/client/gui/ScreenSleepSP.java
@@ -3,7 +3,7 @@ package net.minecraft.client.gui;
 import net.minecraft.core.lang.I18n;
 import org.lwjgl.input.Keyboard;
 
-public class SleepScreenSP extends Screen {
+public class ScreenSleepSP extends Screen {
 	
 	@Override
 	public void init() {
diff --git a/src/main/java/net/minecraft/client/gui/SoundTestScreen.java b/src/main/java/net/minecraft/client/gui/ScreenSoundTest.java
similarity index 99%
rename from src/main/java/net/minecraft/client/gui/SoundTestScreen.java
rename to src/main/java/net/minecraft/client/gui/ScreenSoundTest.java
index 99e4be8b3..58a2f9a78 100644
--- a/src/main/java/net/minecraft/client/gui/SoundTestScreen.java
+++ b/src/main/java/net/minecraft/client/gui/ScreenSoundTest.java
@@ -19,7 +19,7 @@ import java.io.File;
 import java.util.ArrayList;
 import java.util.List;
 
-public class SoundTestScreen extends Screen {
+public class ScreenSoundTest extends Screen {
     private static final int TOP_SPACING = 24;
     private static final int BUTTON_SPACING = 4;
 
@@ -37,7 +37,7 @@ public class SoundTestScreen extends Screen {
 
     protected boolean showURL = true;
 
-    public SoundTestScreen(Screen parent) {
+    public ScreenSoundTest(Screen parent) {
         super(parent);
         initRepos();
     }
diff --git a/src/main/java/net/minecraft/client/gui/StatsScreen.java b/src/main/java/net/minecraft/client/gui/ScreenStats.java
similarity index 99%
rename from src/main/java/net/minecraft/client/gui/StatsScreen.java
rename to src/main/java/net/minecraft/client/gui/ScreenStats.java
index 4c8d5c3d7..103101214 100644
--- a/src/main/java/net/minecraft/client/gui/StatsScreen.java
+++ b/src/main/java/net/minecraft/client/gui/ScreenStats.java
@@ -15,7 +15,7 @@ import org.lwjgl.opengl.GL12;
 
 import java.util.*;
 
-public class StatsScreen extends Screen {
+public class ScreenStats extends Screen {
     private static final int STATS_ICON_SIZE = 18;
     private static final int COLUMN_BUTTON_SIZE = 36;
     private static final int COLUMN0_RIGHT = 115;
@@ -31,7 +31,7 @@ public class StatsScreen extends Screen {
     private final StatsCounter statsCounter;
     private ScrolledSelectionList selectionList;
 
-    public StatsScreen(Screen parent, StatsCounter statsCounter)
+    public ScreenStats(Screen parent, StatsCounter statsCounter)
     {
         title = I18n.getInstance().translateKey("gui.statistics.label.title");
         selectionList = null;
diff --git a/src/main/java/net/minecraft/client/gui/TextureViewerScreen.java b/src/main/java/net/minecraft/client/gui/ScreenTextureViewer.java
similarity index 98%
rename from src/main/java/net/minecraft/client/gui/TextureViewerScreen.java
rename to src/main/java/net/minecraft/client/gui/ScreenTextureViewer.java
index 6d07f2ad3..ceca4cbfd 100644
--- a/src/main/java/net/minecraft/client/gui/TextureViewerScreen.java
+++ b/src/main/java/net/minecraft/client/gui/ScreenTextureViewer.java
@@ -21,7 +21,7 @@ import static org.lwjgl.opengl.GL11.GL_TEXTURE_HEIGHT;
 import static org.lwjgl.opengl.GL11.GL_TEXTURE_WIDTH;
 import static org.lwjgl.opengl.GL11.glGetTexLevelParameteri;
 
-public class TextureViewerScreen extends Screen {
+public class ScreenTextureViewer extends Screen {
     private static final int TOP_SPACING = 24;
     private static final int BUTTON_SPACING = 4;
 
@@ -36,7 +36,7 @@ public class TextureViewerScreen extends Screen {
     protected boolean flip = false;
     protected boolean drawText = true;
 
-    public TextureViewerScreen(Screen parent) {
+    public ScreenTextureViewer(Screen parent) {
         super(parent);
     }
 
diff --git a/src/main/java/net/minecraft/client/gui/WandMobPickerScreen.java b/src/main/java/net/minecraft/client/gui/ScreenWandMobPicker.java
similarity index 95%
rename from src/main/java/net/minecraft/client/gui/WandMobPickerScreen.java
rename to src/main/java/net/minecraft/client/gui/ScreenWandMobPicker.java
index a54c7e0f9..fad7d17c6 100644
--- a/src/main/java/net/minecraft/client/gui/WandMobPickerScreen.java
+++ b/src/main/java/net/minecraft/client/gui/ScreenWandMobPicker.java
@@ -14,13 +14,13 @@ import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 
-public class WandMobPickerScreen extends Screen {
+public class ScreenWandMobPicker extends Screen {
     private String mobId;
     private boolean shouldClose = false;
     private final ItemStack wand;
 
 
-    public WandMobPickerScreen(String mobId, ItemStack itemStack) {
+    public ScreenWandMobPicker(String mobId, ItemStack itemStack) {
         this.mobId = mobId;
         wand = itemStack;
     }
diff --git a/src/main/java/net/minecraft/client/gui/SliderElement.java b/src/main/java/net/minecraft/client/gui/SliderElement.java
index 210f80005..a700f9a70 100644
--- a/src/main/java/net/minecraft/client/gui/SliderElement.java
+++ b/src/main/java/net/minecraft/client/gui/SliderElement.java
@@ -6,24 +6,24 @@ import net.minecraft.client.render.texture.stitcher.TextureRegistry;
 import org.lwjgl.opengl.GL11;
 
 import net.minecraft.client.Minecraft;
-import net.minecraft.client.option.FloatOption;
+import net.minecraft.client.option.OptionFloat;
 
 public class SliderElement extends ButtonElement {
 
 	public float sliderValue;
 	public boolean dragging;
-	private final FloatOption option;
+	private final OptionFloat option;
 	public IconCoordinate backgroundTexture;
 
-	public SliderElement(int id, int xPosition, int yPosition, FloatOption floatOption) {
-		this(id, xPosition, yPosition, 150, 20, floatOption);
+	public SliderElement(int id, int xPosition, int yPosition, OptionFloat optionFloat) {
+		this(id, xPosition, yPosition, 150, 20, optionFloat);
 	}
 
-	public SliderElement(int id, int xPosition, int yPosition, int width, int height, FloatOption floatOption) {
-		super(id, xPosition, yPosition, width, height, floatOption.getDisplayStringValue());
+	public SliderElement(int id, int xPosition, int yPosition, int width, int height, OptionFloat optionFloat) {
+		super(id, xPosition, yPosition, width, height, optionFloat.getDisplayStringValue());
 		this.dragging = false;
-		this.option = floatOption;
-		this.sliderValue = floatOption.value;
+		this.option = optionFloat;
+		this.sliderValue = optionFloat.value;
 	}
 
 	public SliderElement(int id, int xPosition, int yPosition, int width, int height, String text, float defaultValue) {
diff --git a/src/main/java/net/minecraft/client/gui/TooltipElement.java b/src/main/java/net/minecraft/client/gui/TooltipElement.java
index 9bc2f815f..410701219 100644
--- a/src/main/java/net/minecraft/client/gui/TooltipElement.java
+++ b/src/main/java/net/minecraft/client/gui/TooltipElement.java
@@ -9,10 +9,10 @@ import net.minecraft.client.option.enums.TooltipStyle;
 import net.minecraft.client.render.Font;
 import net.minecraft.client.render.tessellator.Tessellator;
 import net.minecraft.core.player.inventory.slot.Slot;
-import net.minecraft.core.player.inventory.slot.ResultSlot;
+import net.minecraft.core.player.inventory.slot.SlotResult;
 import net.minecraft.core.lang.I18n;
 import net.minecraft.core.net.command.TextFormatting;
-import net.minecraft.client.gui.guidebook.GuidebookSlot;
+import net.minecraft.client.gui.guidebook.SlotGuidebook;
 import org.lwjgl.input.Keyboard;
 import org.lwjgl.opengl.GL11;
 
@@ -224,7 +224,7 @@ public class TooltipElement extends Gui
 		if(slot != null) {
 			discovered = slot.getIsDiscovered(mc.thePlayer);
 
-			if(slot instanceof ResultSlot) {
+			if(slot instanceof SlotResult) {
 				ctrlPressed = Keyboard.isKeyDown(Keyboard.KEY_LCONTROL) || Keyboard.isKeyDown(Keyboard.KEY_RCONTROL);
 				shiftPressed = Keyboard.isKeyDown(Keyboard.KEY_LSHIFT) || Keyboard.isKeyDown(Keyboard.KEY_RSHIFT);
 
@@ -246,12 +246,12 @@ public class TooltipElement extends Gui
                 text.append(" #").append(itemStack.itemID).append(":").append(itemStack.getMetadata());
             }
 
-            if(slot instanceof GuidebookSlot){
-                if(((GuidebookSlot) slot).recipe != null) {
-                    if (((GuidebookSlot) slot).recipe instanceof RecipeEntryTrommel) {
-                        RecipeSymbol input = (RecipeSymbol) ((GuidebookSlot) slot).recipe.getInput();
+            if(slot instanceof SlotGuidebook){
+                if(((SlotGuidebook) slot).recipe != null) {
+                    if (((SlotGuidebook) slot).recipe instanceof RecipeEntryTrommel) {
+                        RecipeSymbol input = (RecipeSymbol) ((SlotGuidebook) slot).recipe.getInput();
                         if(!input.matches(slot.getItem())){
-                            WeightedRandomBag<?> bag = (WeightedRandomBag<?>) ((GuidebookSlot) slot).recipe.getOutput();
+                            WeightedRandomBag<?> bag = (WeightedRandomBag<?>) ((SlotGuidebook) slot).recipe.getOutput();
                             double percent = bag.getAsPercentage(slot.getItem());
                             text.append('\n').append(TextFormatting.LIGHT_GRAY).append(String.format("%.2f", percent)).append("%");
                         }
@@ -266,13 +266,13 @@ public class TooltipElement extends Gui
 					text.append('\n').append(TextFormatting.LIGHT_GRAY).append("NBT: ").append(data.getValue().size()).append(" Tags");
 				}
 
-                if(slot instanceof GuidebookSlot){
-                    if(((GuidebookSlot) slot).recipe != null){
-                        text.append('\n').append(TextFormatting.GRAY).append(((GuidebookSlot) slot).recipe.toString());
+                if(slot instanceof SlotGuidebook){
+                    if(((SlotGuidebook) slot).recipe != null){
+                        text.append('\n').append(TextFormatting.GRAY).append(((SlotGuidebook) slot).recipe.toString());
                     }
-                    if(((GuidebookSlot) slot).symbol != null){
-                        if(((GuidebookSlot) slot).symbol.getItemGroup() != null){
-                            text.append('\n').append(TextFormatting.GRAY).append("Accepts any: ").append(((GuidebookSlot) slot).symbol.getItemGroup());
+                    if(((SlotGuidebook) slot).symbol != null){
+                        if(((SlotGuidebook) slot).symbol.getItemGroup() != null){
+                            text.append('\n').append(TextFormatting.GRAY).append("Accepts any: ").append(((SlotGuidebook) slot).symbol.getItemGroup());
                         }
                     }
                 }
@@ -289,7 +289,7 @@ public class TooltipElement extends Gui
 				text.append('\n').append(formatDescription(itemStack.getItemDescription(), 16));
 			}
 
-			if(slot instanceof ResultSlot) {
+			if(slot instanceof SlotResult) {
 				if(shiftPressed && !ctrlPressed) {
 					text.append('\n').append(TextFormatting.LIGHT_GRAY).append("Craft Stack");
 				}
diff --git a/src/main/java/net/minecraft/client/gui/achievements/AchievementsScreen.java b/src/main/java/net/minecraft/client/gui/achievements/ScreenAchievements.java
similarity index 99%
rename from src/main/java/net/minecraft/client/gui/achievements/AchievementsScreen.java
rename to src/main/java/net/minecraft/client/gui/achievements/ScreenAchievements.java
index a68d746f5..652d1b877 100644
--- a/src/main/java/net/minecraft/client/gui/achievements/AchievementsScreen.java
+++ b/src/main/java/net/minecraft/client/gui/achievements/ScreenAchievements.java
@@ -37,7 +37,7 @@ import static org.lwjgl.opengl.GL11.GL_TEXTURE_2D;
 import static org.lwjgl.opengl.GL11.glDisable;
 import static org.lwjgl.opengl.GL11.glEnable;
 
-public class AchievementsScreen extends Screen
+public class ScreenAchievements extends Screen
 {
 
 
@@ -104,7 +104,7 @@ public class AchievementsScreen extends Screen
 
     private @NotNull BGLayer[] layers;
 
-    public AchievementsScreen(Screen parent, StatsCounter statsCounter)
+    public ScreenAchievements(Screen parent, StatsCounter statsCounter)
     {
         mouseXOld = 0;
         mouseYOld = 0;
@@ -178,7 +178,7 @@ public class AchievementsScreen extends Screen
         shiftMaxX += (int) (viewportWidth /4d);
         shiftMaxY += (int) (viewportHeight/4d);
 
-        // Centers the screen on the Open Inventory achievement
+        // Centers the screen on the Open ContainerInventory achievement
         Achievement ach = currentPage.onOpenAchievement();
         oldShiftX = targetShiftX = currentShiftX = ach.x * ACHIEVEMENT_CELL_WIDTH + ACHIEVEMENT_CELL_WIDTH/2d;
         oldShiftY = targetShiftY = currentShiftY = ach.y * ACHIEVEMENT_CELL_HEIGHT + ACHIEVEMENT_CELL_HEIGHT/2d;
diff --git a/src/main/java/net/minecraft/client/gui/achievements/data/AchievementPage.java b/src/main/java/net/minecraft/client/gui/achievements/data/AchievementPage.java
index 656bf7e2c..689a41eeb 100644
--- a/src/main/java/net/minecraft/client/gui/achievements/data/AchievementPage.java
+++ b/src/main/java/net/minecraft/client/gui/achievements/data/AchievementPage.java
@@ -1,6 +1,6 @@
 package net.minecraft.client.gui.achievements.data;
 
-import net.minecraft.client.gui.achievements.AchievementsScreen;
+import net.minecraft.client.gui.achievements.ScreenAchievements;
 import net.minecraft.client.render.block.model.BlockModelDispatcher;
 import net.minecraft.client.render.texture.stitcher.IconCoordinate;
 import net.minecraft.core.achievement.Achievement;
@@ -29,9 +29,9 @@ public abstract class AchievementPage {
 
     public abstract @NotNull Achievement onOpenAchievement();
 
-    public abstract @Nullable IconCoordinate getBackgroundTile(AchievementsScreen screen, int layer, Random random, int tileX, int tileY);
+    public abstract @Nullable IconCoordinate getBackgroundTile(ScreenAchievements screen, int layer, Random random, int tileX, int tileY);
 
-    public abstract void postProcessBackground(AchievementsScreen screen, Random random, AchievementsScreen.BGLayer layerCache, int orgX, int orgY);
+    public abstract void postProcessBackground(ScreenAchievements screen, Random random, ScreenAchievements.BGLayer layerCache, int orgX, int orgY);
 
     public abstract @NotNull ItemStack getIcon();
 
diff --git a/src/main/java/net/minecraft/client/gui/achievements/data/AchievementPages.java b/src/main/java/net/minecraft/client/gui/achievements/data/AchievementPages.java
index 7a59d1248..9ea666060 100644
--- a/src/main/java/net/minecraft/client/gui/achievements/data/AchievementPages.java
+++ b/src/main/java/net/minecraft/client/gui/achievements/data/AchievementPages.java
@@ -1,7 +1,7 @@
 package net.minecraft.client.gui.achievements.data;
 
-import net.minecraft.client.gui.achievements.pages.OverworldPage;
-import net.minecraft.client.gui.achievements.pages.NetherPage;
+import net.minecraft.client.gui.achievements.pages.AchievementPageOverworld;
+import net.minecraft.client.gui.achievements.pages.AchievementPageNether;
 import net.minecraft.core.achievement.Achievements;
 import net.minecraft.core.block.Blocks;
 
@@ -18,8 +18,8 @@ public class AchievementPages {
     public static void init(){
         if (hasInit) return;
         hasInit = true;
-        overworldPage = register(new OverworldPage("gui.achievements.page.overworld", Blocks.GRASS.getDefaultStack()));
-        netherPage = register(new NetherPage("gui.achievements.page.nether", Blocks.COBBLE_NETHERRACK.getDefaultStack()));
+        overworldPage = register(new AchievementPageOverworld("gui.achievements.page.overworld", Blocks.GRASS.getDefaultStack()));
+        netherPage = register(new AchievementPageNether("gui.achievements.page.nether", Blocks.COBBLE_NETHERRACK.getDefaultStack()));
     }
     static {
         Achievements.init();
diff --git a/src/main/java/net/minecraft/client/gui/achievements/pages/NetherPage.java b/src/main/java/net/minecraft/client/gui/achievements/pages/AchievementPageNether.java
similarity index 88%
rename from src/main/java/net/minecraft/client/gui/achievements/pages/NetherPage.java
rename to src/main/java/net/minecraft/client/gui/achievements/pages/AchievementPageNether.java
index 5b007311f..2a97efc55 100644
--- a/src/main/java/net/minecraft/client/gui/achievements/pages/NetherPage.java
+++ b/src/main/java/net/minecraft/client/gui/achievements/pages/AchievementPageNether.java
@@ -1,7 +1,7 @@
 package net.minecraft.client.gui.achievements.pages;
 
 import net.minecraft.client.Minecraft;
-import net.minecraft.client.gui.achievements.AchievementsScreen;
+import net.minecraft.client.gui.achievements.ScreenAchievements;
 import net.minecraft.client.gui.achievements.data.AchievementPage;
 import net.minecraft.client.render.texture.stitcher.IconCoordinate;
 import net.minecraft.client.render.texture.stitcher.TextureRegistry;
@@ -14,13 +14,13 @@ import org.jetbrains.annotations.NotNull;
 
 import java.util.Random;
 
-public class NetherPage extends AchievementPage {
+public class AchievementPageNether extends AchievementPage {
     protected final Minecraft mc = Minecraft.getMinecraft(this);
     protected final ItemStack icon;
     @NotNull
     protected final String key;
 
-    public NetherPage(String key, ItemStack icon) {
+    public AchievementPageNether(String key, ItemStack icon) {
         this.key = key;
         this.icon = icon;
     }
@@ -41,7 +41,7 @@ public class NetherPage extends AchievementPage {
     }
 
     @Override
-    public IconCoordinate getBackgroundTile(AchievementsScreen screen, int layer, Random random, int tileX, int tileY) {
+    public IconCoordinate getBackgroundTile(ScreenAchievements screen, int layer, Random random, int tileX, int tileY) {
         random.setSeed(random.nextLong() + key.hashCode()); // makes seed different for each instance of this class :)
 
         final int bedrockLayer = 35;
@@ -60,7 +60,7 @@ public class NetherPage extends AchievementPage {
     }
 
     @Override
-    public void postProcessBackground(AchievementsScreen screen, Random random, AchievementsScreen.BGLayer layerCache, int orgX, int orgY) {
+    public void postProcessBackground(ScreenAchievements screen, Random random, ScreenAchievements.BGLayer layerCache, int orgX, int orgY) {
         if (layerCache.id == 0) {
             int lastY = 0;
             int cave = -1;
@@ -123,7 +123,7 @@ public class NetherPage extends AchievementPage {
         return 0xff0000;
     }
 
-    protected void carveCircle(AchievementsScreen screen, AchievementsScreen.BGLayer layer, int centerX, int centerY, int radius){
+    protected void carveCircle(ScreenAchievements screen, ScreenAchievements.BGLayer layer, int centerX, int centerY, int radius){
         for (int i = centerX - radius; i <= centerX + radius ; i++) {
             for (int j = centerY - radius; j < centerY + radius; j++) {
                 double diffX = (i + 0.5) - centerX;
diff --git a/src/main/java/net/minecraft/client/gui/achievements/pages/OverworldPage.java b/src/main/java/net/minecraft/client/gui/achievements/pages/AchievementPageOverworld.java
similarity index 96%
rename from src/main/java/net/minecraft/client/gui/achievements/pages/OverworldPage.java
rename to src/main/java/net/minecraft/client/gui/achievements/pages/AchievementPageOverworld.java
index 5f48a3708..8d5edbd90 100644
--- a/src/main/java/net/minecraft/client/gui/achievements/pages/OverworldPage.java
+++ b/src/main/java/net/minecraft/client/gui/achievements/pages/AchievementPageOverworld.java
@@ -1,7 +1,7 @@
 package net.minecraft.client.gui.achievements.pages;
 
 import net.minecraft.client.Minecraft;
-import net.minecraft.client.gui.achievements.AchievementsScreen;
+import net.minecraft.client.gui.achievements.ScreenAchievements;
 import net.minecraft.client.gui.achievements.data.AchievementPage;
 import net.minecraft.client.render.texture.stitcher.IconCoordinate;
 import net.minecraft.client.render.texture.stitcher.TextureRegistry;
@@ -19,13 +19,13 @@ import org.jetbrains.annotations.Nullable;
 import java.util.Random;
 import java.util.function.BiFunction;
 
-public class OverworldPage extends AchievementPage {
+public class AchievementPageOverworld extends AchievementPage {
     protected final Minecraft mc = Minecraft.getMinecraft(this);
     protected final ItemStack icon;
     @NotNull
     protected final String key;
 
-    public OverworldPage(String key, ItemStack icon) {
+    public AchievementPageOverworld(String key, ItemStack icon) {
         this.key = key;
         this.icon = icon;
     }
@@ -57,7 +57,7 @@ public class OverworldPage extends AchievementPage {
     protected static final Block[] BASALT_ORES = new Block[]    { Blocks.ORE_COAL_BASALT,   Blocks.ORE_IRON_BASALT,     Blocks.ORE_GOLD_BASALT,     Blocks.ORE_DIAMOND_BASALT,      Blocks.ORE_REDSTONE_BASALT,     Blocks.ORE_LAPIS_BASALT};
 
     @Override
-    public IconCoordinate getBackgroundTile(AchievementsScreen screen, int layer, Random random, int tileX, int tileY) {
+    public IconCoordinate getBackgroundTile(ScreenAchievements screen, int layer, Random random, int tileX, int tileY) {
         random.setSeed(random.nextLong() + key.hashCode()); // makes seed different for each instance of this class :)
         // expect x range from  0  to 45
         // expect y range from -12 to 50
@@ -96,7 +96,7 @@ public class OverworldPage extends AchievementPage {
     }
 
     @Override
-    public void postProcessBackground(AchievementsScreen screen, Random random, AchievementsScreen.BGLayer layer, int orgX, int orgY) {
+    public void postProcessBackground(ScreenAchievements screen, Random random, ScreenAchievements.BGLayer layer, int orgX, int orgY) {
         random.setSeed(random.nextLong() + key.hashCode()); // makes seed different for each instance of this class :)
         if (layer.id == 0) {
 
@@ -194,7 +194,7 @@ public class OverworldPage extends AchievementPage {
         }
     }
 
-    protected void carveCircle(AchievementsScreen screen, AchievementsScreen.BGLayer layer, int centerX, int centerY, int radius){
+    protected void carveCircle(ScreenAchievements screen, ScreenAchievements.BGLayer layer, int centerX, int centerY, int radius){
         for (int i = centerX - radius; i <= centerX + radius ; i++) {
             for (int j = centerY - radius; j < centerY + radius; j++) {
                 double diffX = (i + 0.5) - centerX;
@@ -206,12 +206,12 @@ public class OverworldPage extends AchievementPage {
         }
     }
 
-    protected void placeStructure(AchievementsScreen screen, PageStructure structure, int tileX, int tileY, @Nullable BiFunction<IconCoordinate, IconCoordinate, IconCoordinate> coordinateProcessor) {
+    protected void placeStructure(ScreenAchievements screen, PageStructure structure, int tileX, int tileY, @Nullable BiFunction<IconCoordinate, IconCoordinate, IconCoordinate> coordinateProcessor) {
         if (coordinateProcessor == null) {
             coordinateProcessor = (i, i2) -> i;
         }
         for (int layer = 0; layer < structure.layers; layer++) {
-            AchievementsScreen.BGLayer cache = screen.getLayer(layer);
+            ScreenAchievements.BGLayer cache = screen.getLayer(layer);
             if (cache != null) {
                 for (int _x = 0; _x < structure.width; _x++) {
                     for (int _y = 0; _y < structure.height; _y++) {
diff --git a/src/main/java/net/minecraft/client/gui/chat/ChatEmotePickerElement.java b/src/main/java/net/minecraft/client/gui/chat/GuiElementChatEmotePicker.java
similarity index 95%
rename from src/main/java/net/minecraft/client/gui/chat/ChatEmotePickerElement.java
rename to src/main/java/net/minecraft/client/gui/chat/GuiElementChatEmotePicker.java
index 261302c7f..ab644a0eb 100644
--- a/src/main/java/net/minecraft/client/gui/chat/ChatEmotePickerElement.java
+++ b/src/main/java/net/minecraft/client/gui/chat/GuiElementChatEmotePicker.java
@@ -8,12 +8,12 @@ import net.minecraft.core.net.ChatEmotes;
 
 import java.util.Map;
 
-public class ChatEmotePickerElement extends Gui {
+public class GuiElementChatEmotePicker extends Gui {
     private static final int CELL_WIDTH = 16;
     private static final int CELL_HEIGHT = 16;
 
     private final Minecraft mc;
-    private final ChatScreen parent;
+    private final ScreenChat parent;
 
     private final int width;
     private final int height;
@@ -26,7 +26,7 @@ public class ChatEmotePickerElement extends Gui {
 
     private int scroll = 0;
 
-    public ChatEmotePickerElement(Minecraft mc, ChatScreen parent, int xCells, int yCells) {
+    public GuiElementChatEmotePicker(Minecraft mc, ScreenChat parent, int xCells, int yCells) {
         this.mc = mc;
         this.parent = parent;
 
diff --git a/src/main/java/net/minecraft/client/gui/chat/ChatSuggestionsElement.java b/src/main/java/net/minecraft/client/gui/chat/GuiElementChatSuggestions.java
similarity index 99%
rename from src/main/java/net/minecraft/client/gui/chat/ChatSuggestionsElement.java
rename to src/main/java/net/minecraft/client/gui/chat/GuiElementChatSuggestions.java
index 02e6e6563..9607f5302 100644
--- a/src/main/java/net/minecraft/client/gui/chat/ChatSuggestionsElement.java
+++ b/src/main/java/net/minecraft/client/gui/chat/GuiElementChatSuggestions.java
@@ -37,7 +37,7 @@ import java.util.Optional;
 import java.util.concurrent.CompletableFuture;
 
 @SuppressWarnings({"OptionalGetWithoutIsPresent", "unused"})
-public class ChatSuggestionsElement extends Gui {
+public class GuiElementChatSuggestions extends Gui {
     private final TextFieldEditor editor;
     private final ITextField textField;
     private final Minecraft mc;
@@ -71,7 +71,7 @@ public class ChatSuggestionsElement extends Gui {
 
     public boolean hidden = false;
 
-    public ChatSuggestionsElement(Minecraft mc, TextFieldEditor textFieldEditor, ITextField textField, PositionSupplier<Integer> xSupplier, PositionSupplier<Integer> ySupplier, ComponentAnchor anchor) {
+    public GuiElementChatSuggestions(Minecraft mc, TextFieldEditor textFieldEditor, ITextField textField, PositionSupplier<Integer> xSupplier, PositionSupplier<Integer> ySupplier, ComponentAnchor anchor) {
         this.mc = mc;
         this.xSupplier = xSupplier;
         this.ySupplier = ySupplier;
diff --git a/src/main/java/net/minecraft/client/gui/chat/ChatScreen.java b/src/main/java/net/minecraft/client/gui/chat/ScreenChat.java
similarity index 92%
rename from src/main/java/net/minecraft/client/gui/chat/ChatScreen.java
rename to src/main/java/net/minecraft/client/gui/chat/ScreenChat.java
index 64b323481..e1dfdfe40 100644
--- a/src/main/java/net/minecraft/client/gui/chat/ChatScreen.java
+++ b/src/main/java/net/minecraft/client/gui/chat/ScreenChat.java
@@ -3,7 +3,6 @@ package net.minecraft.client.gui.chat;
 import net.minecraft.client.gui.Screen;
 import net.minecraft.client.gui.hud.component.ComponentAnchor;
 import net.minecraft.client.gui.text.TextFieldEditor;
-import net.minecraft.client.render.Font;
 import net.minecraft.core.util.helper.MathHelper;
 import net.minecraft.core.net.ChatEmotes;
 import org.lwjgl.input.Keyboard;
@@ -11,22 +10,22 @@ import org.lwjgl.input.Keyboard;
 import net.minecraft.client.gui.text.ITextField;
 import org.lwjgl.input.Mouse;
 
-public class ChatScreen extends Screen implements ITextField {
+public class ScreenChat extends Screen implements ITextField {
 
 	protected String message;
 	private int currentIndex = 0;
 	private String originalMessage;
 	private int updateCounter;
 	private final TextFieldEditor editor;
-	protected ChatEmotePickerElement emotePicker;
+	protected GuiElementChatEmotePicker emotePicker;
 	protected boolean showEmotePicker = false;
-	private ChatSuggestionsElement suggestionsElement;
+	private GuiElementChatSuggestions suggestionsElement;
 
-	public ChatScreen() {
+	public ScreenChat() {
 		this("");
 	}
 
-	public ChatScreen(String initialMessage) {
+	public ScreenChat(String initialMessage) {
 		message = initialMessage;
 		updateCounter = 0;
 		editor = new TextFieldEditor(this);
@@ -37,9 +36,9 @@ public class ChatScreen extends Screen implements ITextField {
 	public void init() {
 		Keyboard.enableRepeatEvents(true);
 		int emotePickerYCells = (int)MathHelper.clamp(Math.ceil(ChatEmotes.getEmotes().size() / 5.0), 0, 4);
-		emotePicker = new ChatEmotePickerElement(mc, this, 5, emotePickerYCells);
+		emotePicker = new GuiElementChatEmotePicker(mc, this, 5, emotePickerYCells);
 		showEmotePicker = false;
-		suggestionsElement = new ChatSuggestionsElement(
+		suggestionsElement = new GuiElementChatSuggestions(
 			mc,
 			editor,
 			this,
@@ -58,7 +57,7 @@ public class ChatScreen extends Screen implements ITextField {
 	@Override
 	public void removed() {
 		Keyboard.enableRepeatEvents(false);
-		mc.ingameHud.chatScroll = 0;
+		mc.hudIngame.chatScroll = 0;
 	}
 
 	@Override
@@ -71,7 +70,7 @@ public class ChatScreen extends Screen implements ITextField {
 			if (showEmotePicker) {
 				emotePicker.scrollOffset((int)(-dWheel / 0.1f));
 			} else {
-				mc.ingameHud.chatScroll += dWheel;
+				mc.hudIngame.chatScroll += dWheel;
 			}
 		}
 
@@ -138,7 +137,7 @@ public class ChatScreen extends Screen implements ITextField {
 				handled = true;
 			}
 		}
-		if (eventKey == Keyboard.KEY_ESCAPE && !(this instanceof SleepScreenMP)) {
+		if (eventKey == Keyboard.KEY_ESCAPE && !(this instanceof ScreenSleepMP)) {
 			mc.displayScreen(null);
 			handled = true;
 		}
diff --git a/src/main/java/net/minecraft/client/gui/chat/SleepScreenMP.java b/src/main/java/net/minecraft/client/gui/chat/ScreenSleepMP.java
similarity index 80%
rename from src/main/java/net/minecraft/client/gui/chat/SleepScreenMP.java
rename to src/main/java/net/minecraft/client/gui/chat/ScreenSleepMP.java
index a6afc0f4c..bc8a452aa 100644
--- a/src/main/java/net/minecraft/client/gui/chat/SleepScreenMP.java
+++ b/src/main/java/net/minecraft/client/gui/chat/ScreenSleepMP.java
@@ -1,18 +1,18 @@
 package net.minecraft.client.gui.chat;
 
-import net.minecraft.client.entity.player.MultiplayerLocalPlayer;
+import net.minecraft.client.entity.player.PlayerLocalMultiplayer;
 import net.minecraft.client.gui.ButtonElement;
-import net.minecraft.client.net.handler.ClientPacketHandler;
+import net.minecraft.client.net.handler.PacketHandlerClient;
 import net.minecraft.core.net.packet.UpdatePlayerStatePacket;
 import net.minecraft.core.util.helper.MathHelper;
 import net.minecraft.core.net.ChatEmotes;
 import net.minecraft.core.lang.I18n;
 import org.lwjgl.input.Keyboard;
 
-public class SleepScreenMP extends ChatScreen
+public class ScreenSleepMP extends ScreenChat
 {
 
-    public SleepScreenMP()
+    public ScreenSleepMP()
     {
     }
 
@@ -23,7 +23,7 @@ public class SleepScreenMP extends ChatScreen
         I18n i18n = I18n.getInstance();
         buttons.add(new ButtonElement(1, width / 2 - 100, height - 40, i18n.translateKey("gui.sleeping.multiplayer.leave_bed")));
 		int emotePickerYCells = (int)MathHelper.clamp(Math.ceil(ChatEmotes.getEmotes().size() / 5.0), 0, 4);
-		emotePicker = new ChatEmotePickerElement(mc, this, 5, emotePickerYCells);
+		emotePicker = new GuiElementChatEmotePicker(mc, this, 5, emotePickerYCells);
 		showEmotePicker = false;
         super.init();
     }
@@ -62,9 +62,9 @@ public class SleepScreenMP extends ChatScreen
 
     private void leaveBed()
     {
-        if(mc.thePlayer instanceof MultiplayerLocalPlayer)
+        if(mc.thePlayer instanceof PlayerLocalMultiplayer)
         {
-            ClientPacketHandler sendQueue = ((MultiplayerLocalPlayer)mc.thePlayer).sendQueue;
+            PacketHandlerClient sendQueue = ((PlayerLocalMultiplayer)mc.thePlayer).sendQueue;
             sendQueue.addToSendQueue(new UpdatePlayerStatePacket(UpdatePlayerStatePacket.STATE_LEAVE_BED));
         }
     }
diff --git a/src/main/java/net/minecraft/client/gui/container/ActivatorScreen.java b/src/main/java/net/minecraft/client/gui/container/ScreenActivator.java
similarity index 68%
rename from src/main/java/net/minecraft/client/gui/container/ActivatorScreen.java
rename to src/main/java/net/minecraft/client/gui/container/ScreenActivator.java
index a5cc2d3f6..4f2ecc8fb 100644
--- a/src/main/java/net/minecraft/client/gui/container/ActivatorScreen.java
+++ b/src/main/java/net/minecraft/client/gui/container/ScreenActivator.java
@@ -1,26 +1,24 @@
 package net.minecraft.client.gui.container;
 
 import net.minecraft.client.gui.ButtonElement;
-import net.minecraft.client.gui.modelviewer.elements.ListenerButtonElement;
 import net.minecraft.core.InventoryAction;
-import net.minecraft.core.block.entity.ActivatorBlockEntity;
+import net.minecraft.core.block.entity.TileEntityActivator;
 import net.minecraft.core.lang.I18n;
-import net.minecraft.core.player.inventory.container.Inventory;
-import net.minecraft.core.player.inventory.menu.ActivatorMenu;
+import net.minecraft.core.player.inventory.container.ContainerInventory;
+import net.minecraft.core.player.inventory.menu.MenuActivator;
 import net.minecraft.core.sound.SoundCategory;
-import net.minecraft.core.util.helper.Listener;
 import org.lwjgl.opengl.GL11;
 
 import java.util.ArrayList;
 import java.util.List;
 
-public class ActivatorScreen extends AbstractContainerScreen {
-    protected final ActivatorBlockEntity activatorBlockEntity;
+public class ScreenActivator extends ScreenContainerAbstract {
+    protected final TileEntityActivator tileEntityActivator;
     protected final List<ButtonElement> slotButtons = new ArrayList<>();
 
-    public ActivatorScreen(Inventory inventory, ActivatorBlockEntity activatorBlock) {
-        super(new ActivatorMenu(inventory, activatorBlock));
-        this.activatorBlockEntity = activatorBlock;
+    public ScreenActivator(ContainerInventory inventory, TileEntityActivator activatorBlock) {
+        super(new MenuActivator(inventory, activatorBlock));
+        this.tileEntityActivator = activatorBlock;
     }
 
     @Override
@@ -32,7 +30,7 @@ public class ActivatorScreen extends AbstractContainerScreen {
         final int startY = yTop + 34;
         buttons.clear();
         slotButtons.clear();
-        for (int i = 0; i < activatorBlockEntity.getContainerSize(); i++) {
+        for (int i = 0; i < tileEntityActivator.getContainerSize(); i++) {
             ButtonElement button = new ButtonElement(i, startX + 18 * i, startY, 18, 18, "");
             button.visible = false;
             slotButtons.add(button);
@@ -43,7 +41,7 @@ public class ActivatorScreen extends AbstractContainerScreen {
     public void clickInventory(int x, int y, int mouseButton) {
         if (mouseButton == 1 && mc.thePlayer.inventory.getHeldItemStack() == null) {
             for (ButtonElement button : slotButtons) {
-                if (activatorBlockEntity.getItem(button.id) == null && button.mouseClicked(mc, x, y)) {
+                if (tileEntityActivator.getItem(button.id) == null && button.mouseClicked(mc, x, y)) {
                     mc.playerController.handleInventoryMouseClick(inventorySlots.containerId, InventoryAction.LOCK, new int[] {button.id, 0}, mc.thePlayer);
                     if (button.playSound) {
                         mc.sndManager.playSound("random.click", SoundCategory.GUI_SOUNDS, 1.0F, 1.0F);
@@ -69,10 +67,10 @@ public class ActivatorScreen extends AbstractContainerScreen {
         int yTop = (height - ySize) / 2;
         drawTexturedModalRect(xLeft, yTop, 0, 0, xSize, ySize);
 
-        if (!activatorBlockEntity.locked(activatorBlockEntity.stackSelector)) { // Draw selector arrow
+        if (!tileEntityActivator.locked(tileEntityActivator.stackSelector)) { // Draw selector arrow
             final int startX = xLeft + 7;
             final int startY = yTop + 26;
-            drawTexturedModalRect( startX + 18 * activatorBlockEntity.stackSelector, startY, 176, 0, 18, 34);
+            drawTexturedModalRect( startX + 18 * tileEntityActivator.stackSelector, startY, 176, 0, 18, 34);
         }
     }
 }
\ No newline at end of file
diff --git a/src/main/java/net/minecraft/client/gui/container/ContainerScreen.java b/src/main/java/net/minecraft/client/gui/container/ScreenContainer.java
similarity index 87%
rename from src/main/java/net/minecraft/client/gui/container/ContainerScreen.java
rename to src/main/java/net/minecraft/client/gui/container/ScreenContainer.java
index 86d38a502..2f28a2123 100644
--- a/src/main/java/net/minecraft/client/gui/container/ContainerScreen.java
+++ b/src/main/java/net/minecraft/client/gui/container/ScreenContainer.java
@@ -1,6 +1,6 @@
 package net.minecraft.client.gui.container;
 
-import net.minecraft.core.player.inventory.menu.ContainerMenu;
+import net.minecraft.core.player.inventory.menu.MenuContainer;
 import net.minecraft.core.player.inventory.container.Container;
 import org.lwjgl.opengl.GL11;
 
@@ -8,12 +8,12 @@ import org.lwjgl.opengl.GL11;
 //            GuiContainer, ContainerChest, IInventory, FontRenderer, 
 //            RenderEngine
 
-public class ContainerScreen extends AbstractContainerScreen
+public class ScreenContainer extends ScreenContainerAbstract
 {
 
-    public ContainerScreen(Container containerUpper, Container containerLower)
+    public ScreenContainer(Container containerUpper, Container containerLower)
     {
-        super(new ContainerMenu(containerUpper, containerLower));
+        super(new MenuContainer(containerUpper, containerLower));
         inventoryRows = 0;
         upperChestInventory = containerUpper;
         lowerChestInventory = containerLower;
diff --git a/src/main/java/net/minecraft/client/gui/container/AbstractContainerScreen.java b/src/main/java/net/minecraft/client/gui/container/ScreenContainerAbstract.java
similarity index 85%
rename from src/main/java/net/minecraft/client/gui/container/AbstractContainerScreen.java
rename to src/main/java/net/minecraft/client/gui/container/ScreenContainerAbstract.java
index 44adc4f96..12e9c86a0 100644
--- a/src/main/java/net/minecraft/client/gui/container/AbstractContainerScreen.java
+++ b/src/main/java/net/minecraft/client/gui/container/ScreenContainerAbstract.java
@@ -2,19 +2,18 @@
 package net.minecraft.client.gui.container;
 
 import net.minecraft.client.Minecraft;
-import net.minecraft.client.gui.ButtonElement;
 import net.minecraft.client.gui.ItemElement;
 import net.minecraft.client.gui.Screen;
 import net.minecraft.client.gui.TooltipElement;
-import net.minecraft.client.gui.guidebook.GuidebookScreen;
+import net.minecraft.client.gui.guidebook.GuidebookPageManager;
+import net.minecraft.client.gui.guidebook.ScreenGuidebook;
 import net.minecraft.client.gui.guidebook.GuidebookSections;
-import net.minecraft.client.gui.guidebook.PageManager;
 import net.minecraft.client.gui.guidebook.SearchableGuidebookSection;
-import net.minecraft.client.gui.guidebook.search.SearchPage;
+import net.minecraft.client.gui.guidebook.search.GuidebookPageSearch;
 import net.minecraft.client.input.controller.ControllerInput;
 import net.minecraft.client.util.helper.ItemDragHandler;
 import net.minecraft.core.InventoryAction;
-import net.minecraft.core.block.entity.BlastFurnaceBlockEntity;
+import net.minecraft.core.block.entity.TileEntityFurnaceBlastFurnace;
 import net.minecraft.core.crafting.LookupFuelFurnace;
 import net.minecraft.core.crafting.LookupFuelFurnaceBlast;
 import net.minecraft.core.data.registry.Registries;
@@ -24,31 +23,30 @@ import net.minecraft.core.data.registry.recipe.entry.RecipeEntryFurnace;
 import net.minecraft.core.item.IArmorItem;
 import net.minecraft.core.item.Item;
 import net.minecraft.core.item.ItemStack;
-import net.minecraft.core.player.inventory.container.Inventory;
+import net.minecraft.core.player.inventory.container.ContainerInventory;
 import net.minecraft.core.player.inventory.menu.*;
 import net.minecraft.core.player.inventory.slot.Slot;
-import net.minecraft.core.player.inventory.slot.ResultSlot;
-import net.minecraft.core.player.inventory.slot.CreativeSlot;
-import net.minecraft.core.sound.SoundCategory;
+import net.minecraft.core.player.inventory.slot.SlotResult;
+import net.minecraft.core.player.inventory.slot.SlotCreative;
 import org.lwjgl.input.Keyboard;
 import org.lwjgl.opengl.GL11;
 
 // Referenced classes of package net.minecraft.src:
-//            GuiScreen, LocalPlayer, RenderHelper, Container,
+//            GuiScreen, PlayerLocal, RenderHelper, Container,
 //            Slot, InventoryPlayer, RenderItem, StringTranslate,
 //            ItemStack, FontRenderer, RenderEngine, PlayerController,
 //            GameSettings, KeyBinding
 
-public abstract class AbstractContainerScreen extends Screen
+public abstract class ScreenContainerAbstract extends Screen
 {
 	public int xSize;
 	public int ySize;
-	public AbstractContainerMenu inventorySlots;
+	public MenuAbstract inventorySlots;
 	TooltipElement tooltipElement;
 	ItemElement itemElement;
 	public ItemDragHandler itemDragHandler;
 
-	public AbstractContainerScreen(final AbstractContainerMenu container)
+	public ScreenContainerAbstract(final MenuAbstract container)
 	{
 		Minecraft mc = Minecraft.getMinecraft(this);
 		xSize = 176;
@@ -95,7 +93,7 @@ public abstract class AbstractContainerScreen extends Screen
 			}
 		}
 
-		final Inventory inventoryplayer = mc.thePlayer.inventory;
+		final ContainerInventory inventoryplayer = mc.thePlayer.inventory;
 		ItemStack grabbedItem = inventoryplayer.getHeldItemStack();
 		if(mc.gameSettings.enableItemDragging.value) {
 			itemDragHandler.drawScreen(xm, ym, partialTick);
@@ -175,17 +173,17 @@ public abstract class AbstractContainerScreen extends Screen
 					String query = "r:"+slot.getItem().getDisplayName()+"!";
 //					removed();
 //					mc.thePlayer.closeScreen();
-					PageManager.searchQuery = SearchQuery.resolve(query);
-					SearchPage.searchField.setText(query);
-					GuidebookScreen.getPageManager().updatePages();
-                    if (!((SearchableGuidebookSection) GuidebookSections.CRAFTING).searchPages(PageManager.searchQuery).isEmpty()) {
-						GuidebookScreen.getPageManager().setCurrentPage(GuidebookScreen.getPageManager().getSectionIndex(GuidebookSections.CRAFTING), true);
-                    } else if (!((SearchableGuidebookSection) GuidebookSections.FURNACE).searchPages(PageManager.searchQuery).isEmpty()) {
-						GuidebookScreen.getPageManager().setCurrentPage(GuidebookScreen.getPageManager().getSectionIndex(GuidebookSections.FURNACE), true);
-					} else if (!((SearchableGuidebookSection) GuidebookSections.BLAST_FURNACE).searchPages(PageManager.searchQuery).isEmpty()) {
-						GuidebookScreen.getPageManager().setCurrentPage(GuidebookScreen.getPageManager().getSectionIndex(GuidebookSections.BLAST_FURNACE), true);
-					} else if (!((SearchableGuidebookSection) GuidebookSections.TROMMEL).searchPages(PageManager.searchQuery).isEmpty()) {
-						GuidebookScreen.getPageManager().setCurrentPage(GuidebookScreen.getPageManager().getSectionIndex(GuidebookSections.TROMMEL), true);
+					GuidebookPageManager.searchQuery = SearchQuery.resolve(query);
+					GuidebookPageSearch.searchField.setText(query);
+					ScreenGuidebook.getPageManager().updatePages();
+                    if (!((SearchableGuidebookSection) GuidebookSections.CRAFTING).searchPages(GuidebookPageManager.searchQuery).isEmpty()) {
+						ScreenGuidebook.getPageManager().setCurrentPage(ScreenGuidebook.getPageManager().getSectionIndex(GuidebookSections.CRAFTING), true);
+                    } else if (!((SearchableGuidebookSection) GuidebookSections.FURNACE).searchPages(GuidebookPageManager.searchQuery).isEmpty()) {
+						ScreenGuidebook.getPageManager().setCurrentPage(ScreenGuidebook.getPageManager().getSectionIndex(GuidebookSections.FURNACE), true);
+					} else if (!((SearchableGuidebookSection) GuidebookSections.BLAST_FURNACE).searchPages(GuidebookPageManager.searchQuery).isEmpty()) {
+						ScreenGuidebook.getPageManager().setCurrentPage(ScreenGuidebook.getPageManager().getSectionIndex(GuidebookSections.BLAST_FURNACE), true);
+					} else if (!((SearchableGuidebookSection) GuidebookSections.TROMMEL).searchPages(GuidebookPageManager.searchQuery).isEmpty()) {
+						ScreenGuidebook.getPageManager().setCurrentPage(ScreenGuidebook.getPageManager().getSectionIndex(GuidebookSections.TROMMEL), true);
 					}
 					mc.thePlayer.displayGuidebookScreen();
 				}
@@ -196,17 +194,17 @@ public abstract class AbstractContainerScreen extends Screen
 					String query = "u:" + slot.getItem().getDisplayName() + "!";
 //					removed();
 //					mc.thePlayer.closeScreen();
-					PageManager.searchQuery = SearchQuery.resolve(query);
-					SearchPage.searchField.setText(query);
-					GuidebookScreen.getPageManager().updatePages();
-					if (!((SearchableGuidebookSection) GuidebookSections.CRAFTING).searchPages(PageManager.searchQuery).isEmpty()) {
-						GuidebookScreen.getPageManager().setCurrentPage(GuidebookScreen.getPageManager().getSectionIndex(GuidebookSections.CRAFTING), true);
-					} else if (!((SearchableGuidebookSection) GuidebookSections.FURNACE).searchPages(PageManager.searchQuery).isEmpty()) {
-						GuidebookScreen.getPageManager().setCurrentPage(GuidebookScreen.getPageManager().getSectionIndex(GuidebookSections.FURNACE), true);
-					} else if (!((SearchableGuidebookSection) GuidebookSections.BLAST_FURNACE).searchPages(PageManager.searchQuery).isEmpty()) {
-						GuidebookScreen.getPageManager().setCurrentPage(GuidebookScreen.getPageManager().getSectionIndex(GuidebookSections.BLAST_FURNACE), true);
-					} else if (!((SearchableGuidebookSection) GuidebookSections.TROMMEL).searchPages(PageManager.searchQuery).isEmpty()) {
-						GuidebookScreen.getPageManager().setCurrentPage(GuidebookScreen.getPageManager().getSectionIndex(GuidebookSections.TROMMEL), true);
+					GuidebookPageManager.searchQuery = SearchQuery.resolve(query);
+					GuidebookPageSearch.searchField.setText(query);
+					ScreenGuidebook.getPageManager().updatePages();
+					if (!((SearchableGuidebookSection) GuidebookSections.CRAFTING).searchPages(GuidebookPageManager.searchQuery).isEmpty()) {
+						ScreenGuidebook.getPageManager().setCurrentPage(ScreenGuidebook.getPageManager().getSectionIndex(GuidebookSections.CRAFTING), true);
+					} else if (!((SearchableGuidebookSection) GuidebookSections.FURNACE).searchPages(GuidebookPageManager.searchQuery).isEmpty()) {
+						ScreenGuidebook.getPageManager().setCurrentPage(ScreenGuidebook.getPageManager().getSectionIndex(GuidebookSections.FURNACE), true);
+					} else if (!((SearchableGuidebookSection) GuidebookSections.BLAST_FURNACE).searchPages(GuidebookPageManager.searchQuery).isEmpty()) {
+						ScreenGuidebook.getPageManager().setCurrentPage(ScreenGuidebook.getPageManager().getSectionIndex(GuidebookSections.BLAST_FURNACE), true);
+					} else if (!((SearchableGuidebookSection) GuidebookSections.TROMMEL).searchPages(GuidebookPageManager.searchQuery).isEmpty()) {
+						ScreenGuidebook.getPageManager().setCurrentPage(ScreenGuidebook.getPageManager().getSectionIndex(GuidebookSections.TROMMEL), true);
 					}
 					mc.thePlayer.displayGuidebookScreen();
 				}
@@ -340,7 +338,7 @@ public abstract class AbstractContainerScreen extends Screen
 		
 		if(mouseButton == 1) action = InventoryAction.CLICK_RIGHT;
 		
-		if(slot instanceof ResultSlot) {
+		if(slot instanceof SlotResult) {
 			// Crafting behavior
 			if(mc.gameSettings.swapCraftingButtons.value) {
 				if(shiftPressed && ctrlPressed) {
@@ -374,7 +372,7 @@ public abstract class AbstractContainerScreen extends Screen
 			}
 		}
 		
-		if(slot instanceof CreativeSlot) {
+		if(slot instanceof SlotCreative) {
 			// Creative slot behavior
 			ItemStack heldItem = mc.thePlayer.inventory.getHeldItemStack();
 			
@@ -400,18 +398,18 @@ public abstract class AbstractContainerScreen extends Screen
 			return;
 		}
 
-		if(inventorySlots instanceof InventoryMenu) {
+		if(inventorySlots instanceof MenuInventory) {
 			if(itemInSlot instanceof IArmorItem) {
-				// Check for instanceof ArmorItem instead of canPutStackInSlot
+				// Check for instanceof ItemArmor instead of canPutStackInSlot
 				// Pumpkins should not go into the armor slot when pressing shift
 				target = 2; // Into the armor slots
 			}
 		}
-		if(inventorySlots instanceof FurnaceMenu) {
+		if(inventorySlots instanceof MenuFurnace) {
 			// Furnace behavior
-			FurnaceMenu furnace = (FurnaceMenu) inventorySlots;
+			MenuFurnace furnace = (MenuFurnace) inventorySlots;
 			
-			boolean isBlastFurnace = furnace.furnace instanceof BlastFurnaceBlockEntity;
+			boolean isBlastFurnace = furnace.furnace instanceof TileEntityFurnaceBlastFurnace;
 			boolean isFuel, isIngredient = false;
 			
 			if(isBlastFurnace) {
@@ -438,19 +436,19 @@ public abstract class AbstractContainerScreen extends Screen
 				target = 2; // Into the fuel slot
 			}
 		}
-		if(inventorySlots instanceof TrommelMenu) {
+		if(inventorySlots instanceof MenuTrommel) {
 			if(LookupFuelFurnace.instance.getFuelYield(clickedItemId) > 0) {
 				target = 2; // Into the fuel slot
 			}else {
 				target = 1; // Into the item slots
 			}
 		}
-		if(inventorySlots instanceof CraftingMenu || inventorySlots instanceof InventoryMenu) {
+		if(inventorySlots instanceof MenuCrafting || inventorySlots instanceof MenuInventory) {
 			// Move items into crafting by holding alt
 			
 			if(altPressed) target = 1; // Into the crafting grid
 		}
-		if(inventorySlots instanceof CreativeInventoryMenu) {
+		if(inventorySlots instanceof MenuInventoryCreative) {
 			// Delete items by holding alt in the creative inventory
 			
 			if(altPressed) {
@@ -467,7 +465,7 @@ public abstract class AbstractContainerScreen extends Screen
 			}
 		}
 		
-		// Inventory Interactions (Grabbed Item)
+		// ContainerInventory Interactions (Grabbed Item)
 		if(slot != null && slot.allowItemInteraction() && grabbedItem != null && grabbedItem.getItem().hasInventoryInteraction()) {
 			if(mouseButton == 1) {
 				mc.playerController.handleInventoryMouseClick(inventorySlots.containerId, InventoryAction.INTERACT_GRABBED, new int[] {slot.index}, mc.thePlayer);
@@ -475,7 +473,7 @@ public abstract class AbstractContainerScreen extends Screen
 			}
 		}
 		
-		// Inventory Interactions (Clicked Item)
+		// ContainerInventory Interactions (Clicked Item)
 		if(slot != null && stackInSlot != null && slot.allowItemInteraction() && stackInSlot.getItem().hasInventoryInteraction()) {
 			if(mouseButton == 1) {
 				mc.playerController.handleInventoryMouseClick(inventorySlots.containerId, InventoryAction.INTERACT_SLOT, new int[] {slot.index}, mc.thePlayer);
diff --git a/src/main/java/net/minecraft/client/gui/container/CraftingScreen.java b/src/main/java/net/minecraft/client/gui/container/ScreenCrafting.java
similarity index 77%
rename from src/main/java/net/minecraft/client/gui/container/CraftingScreen.java
rename to src/main/java/net/minecraft/client/gui/container/ScreenCrafting.java
index 637786438..7d79d3594 100644
--- a/src/main/java/net/minecraft/client/gui/container/CraftingScreen.java
+++ b/src/main/java/net/minecraft/client/gui/container/ScreenCrafting.java
@@ -2,16 +2,16 @@ package net.minecraft.client.gui.container;
 
 import net.minecraft.client.input.controller.ControllerInput;
 import net.minecraft.core.lang.I18n;
-import net.minecraft.core.player.inventory.menu.CraftingMenu;
-import net.minecraft.core.player.inventory.container.Inventory;
+import net.minecraft.core.player.inventory.container.ContainerInventory;
+import net.minecraft.core.player.inventory.menu.MenuCrafting;
 import net.minecraft.core.world.World;
 import org.lwjgl.opengl.GL11;
 
-public class CraftingScreen extends AbstractContainerScreen
+public class ScreenCrafting extends ScreenContainerAbstract
 {
-    public CraftingScreen(Inventory inventory, World world, int x, int y, int z)
+    public ScreenCrafting(ContainerInventory inventory, World world, int x, int y, int z)
     {
-        super(new CraftingMenu(inventory, world, x, y, z));
+        super(new MenuCrafting(inventory, world, x, y, z));
     }
 
     @Override
diff --git a/src/main/java/net/minecraft/client/gui/container/DispenserScreen.java b/src/main/java/net/minecraft/client/gui/container/ScreenDispenser.java
similarity index 65%
rename from src/main/java/net/minecraft/client/gui/container/DispenserScreen.java
rename to src/main/java/net/minecraft/client/gui/container/ScreenDispenser.java
index 29f566d73..8173f109f 100644
--- a/src/main/java/net/minecraft/client/gui/container/DispenserScreen.java
+++ b/src/main/java/net/minecraft/client/gui/container/ScreenDispenser.java
@@ -1,17 +1,17 @@
 package net.minecraft.client.gui.container;
 
-import net.minecraft.core.block.entity.DispenserBlockEntity;
+import net.minecraft.core.block.entity.TileEntityDispenser;
 import net.minecraft.core.lang.I18n;
-import net.minecraft.core.player.inventory.menu.TrapMenu;
-import net.minecraft.core.player.inventory.container.Inventory;
+import net.minecraft.core.player.inventory.menu.MenuTrap;
+import net.minecraft.core.player.inventory.container.ContainerInventory;
 import org.lwjgl.opengl.GL11;
 
-public class DispenserScreen extends AbstractContainerScreen
+public class ScreenDispenser extends ScreenContainerAbstract
 {
 
-    public DispenserScreen(Inventory inventoryplayer, DispenserBlockEntity tileentitydispenser)
+    public ScreenDispenser(ContainerInventory inventoryplayer, TileEntityDispenser tileentitydispenser)
     {
-        super(new TrapMenu(inventoryplayer, tileentitydispenser));
+        super(new MenuTrap(inventoryplayer, tileentitydispenser));
     }
 
     @Override
diff --git a/src/main/java/net/minecraft/client/gui/container/FlagEditorScreen.java b/src/main/java/net/minecraft/client/gui/container/ScreenFlagEditor.java
similarity index 97%
rename from src/main/java/net/minecraft/client/gui/container/FlagEditorScreen.java
rename to src/main/java/net/minecraft/client/gui/container/ScreenFlagEditor.java
index 0caf9198b..3c4c59b61 100644
--- a/src/main/java/net/minecraft/client/gui/container/FlagEditorScreen.java
+++ b/src/main/java/net/minecraft/client/gui/container/ScreenFlagEditor.java
@@ -4,7 +4,7 @@ import net.minecraft.client.gui.ButtonElement;
 import net.minecraft.client.gui.ClickableLabelElement;
 import net.minecraft.client.gui.DrawableSurfaceElement;
 import net.minecraft.client.gui.TexturedButtonElement;
-import net.minecraft.core.block.entity.FlagBlockEntity;
+import net.minecraft.core.block.entity.TileEntityFlag;
 import net.minecraft.core.entity.player.Player;
 import org.lwjgl.input.Keyboard;
 import org.lwjgl.opengl.GL11;
@@ -17,14 +17,14 @@ import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.lang.I18n;
 import net.minecraft.core.net.command.TextFormatting;
 import net.minecraft.core.net.packet.CustomPayloadPacket;
-import net.minecraft.core.player.inventory.menu.FlagMenu;
+import net.minecraft.core.player.inventory.menu.MenuFlag;
 import net.minecraft.core.util.helper.MathHelper;
 
-public class FlagEditorScreen
-    extends AbstractContainerScreen
+public class ScreenFlagEditor
+    extends ScreenContainerAbstract
     implements IDrawableSurface<Byte>
 {
-    private final FlagBlockEntity flagEntity;
+    private final TileEntityFlag flagEntity;
     private final int CANVAS_SCALE = 4;
     private final int CANVAS_WIDTH = 24;
     private final int CANVAS_HEIGHT = 16;
@@ -48,9 +48,9 @@ public class FlagEditorScreen
     DrawableSurfaceElement flagSurface;
     DrawableSurfaceElement drawOverlaySurface;
     
-    public FlagEditorScreen(Player player, FlagBlockEntity flagTileEntity)
+    public ScreenFlagEditor(Player player, TileEntityFlag flagTileEntity)
     {
-        super(new FlagMenu(player.inventory, flagTileEntity));
+        super(new MenuFlag(player.inventory, flagTileEntity));
         this.flagEntity = flagTileEntity;
         xSize = 176;
         ySize = 195;
diff --git a/src/main/java/net/minecraft/client/gui/container/FurnaceScreen.java b/src/main/java/net/minecraft/client/gui/container/ScreenFurnace.java
similarity index 72%
rename from src/main/java/net/minecraft/client/gui/container/FurnaceScreen.java
rename to src/main/java/net/minecraft/client/gui/container/ScreenFurnace.java
index ff31311ca..5759fd05e 100644
--- a/src/main/java/net/minecraft/client/gui/container/FurnaceScreen.java
+++ b/src/main/java/net/minecraft/client/gui/container/ScreenFurnace.java
@@ -1,27 +1,27 @@
 package net.minecraft.client.gui.container;
 
 import net.minecraft.client.input.controller.ControllerInput;
-import net.minecraft.core.block.entity.BlastFurnaceBlockEntity;
-import net.minecraft.core.block.entity.FurnaceBlockEntity;
+import net.minecraft.core.block.entity.TileEntityFurnace;
+import net.minecraft.core.block.entity.TileEntityFurnaceBlastFurnace;
 import net.minecraft.core.lang.I18n;
-import net.minecraft.core.player.inventory.menu.FurnaceMenu;
-import net.minecraft.core.player.inventory.container.Inventory;
+import net.minecraft.core.player.inventory.menu.MenuFurnace;
+import net.minecraft.core.player.inventory.container.ContainerInventory;
 import org.lwjgl.opengl.GL11;
 
-public class FurnaceScreen extends AbstractContainerScreen
+public class ScreenFurnace extends ScreenContainerAbstract
 {
 
-    public FurnaceScreen(Inventory inventory, FurnaceBlockEntity furnaceBlockEntity)
+    public ScreenFurnace(ContainerInventory inventory, TileEntityFurnace tileEntityFurnace)
     {
-        super(new FurnaceMenu(inventory, furnaceBlockEntity));
-        furnaceInventory = furnaceBlockEntity;
+        super(new MenuFurnace(inventory, tileEntityFurnace));
+        furnaceInventory = tileEntityFurnace;
     }
 
     @Override
 	protected void drawGuiContainerForegroundLayer()
     {
         I18n i18n = I18n.getInstance();
-        if(furnaceInventory instanceof BlastFurnaceBlockEntity) {
+        if(furnaceInventory instanceof TileEntityFurnaceBlastFurnace) {
             font.drawString(i18n.translateKey("gui.furnace.blast.label.blast_furnace"), 60, 6, 0x404040);
         } else {
             font.drawString(i18n.translateKey("gui.furnace.label.furnace"), 60, 6, 0x404040);
@@ -32,7 +32,7 @@ public class FurnaceScreen extends AbstractContainerScreen
     @Override
 	protected void drawGuiContainerBackgroundLayer(float f)
     {
-        if(furnaceInventory instanceof BlastFurnaceBlockEntity) {
+        if(furnaceInventory instanceof TileEntityFurnaceBlastFurnace) {
             mc.textureManager.loadTexture("/assets/minecraft/textures/gui/container/blastfurnace.png").bind();
         } else {
             mc.textureManager.loadTexture("/assets/minecraft/textures/gui/container/furnace.png").bind();
@@ -43,7 +43,7 @@ public class FurnaceScreen extends AbstractContainerScreen
         drawTexturedModalRect(x, y, 0, 0, xSize, ySize);
         if(furnaceInventory.isBurning())
         {
-            if (furnaceInventory instanceof BlastFurnaceBlockEntity) {
+            if (furnaceInventory instanceof TileEntityFurnaceBlastFurnace) {
                 int fireHeight = furnaceInventory.getBurnTimeRemainingScaled(14);
                 drawTexturedModalRect(x + 56, y + 35 + 14 - fireHeight, 176, 14 - fireHeight, 14, fireHeight + 2);
                 int arrowWidth = furnaceInventory.getCookProgressScaled(24);
@@ -62,5 +62,5 @@ public class FurnaceScreen extends AbstractContainerScreen
         controller.inventoryHandler.handleFurnace(this);
     }
 
-    private final FurnaceBlockEntity furnaceInventory;
+    private final TileEntityFurnace furnaceInventory;
 }
diff --git a/src/main/java/net/minecraft/client/gui/container/InventoryScreen.java b/src/main/java/net/minecraft/client/gui/container/ScreenInventory.java
similarity index 97%
rename from src/main/java/net/minecraft/client/gui/container/InventoryScreen.java
rename to src/main/java/net/minecraft/client/gui/container/ScreenInventory.java
index 54389afd7..d06441057 100644
--- a/src/main/java/net/minecraft/client/gui/container/InventoryScreen.java
+++ b/src/main/java/net/minecraft/client/gui/container/ScreenInventory.java
@@ -25,15 +25,15 @@ import org.lwjgl.opengl.GL11;
 
 import net.minecraft.core.util.helper.Color;
 import net.minecraft.core.util.helper.DamageType;
-import net.minecraft.client.option.BooleanOption;
+import net.minecraft.client.option.OptionBoolean;
 import org.lwjgl.opengl.GL12;
 
 // Referenced classes of package net.minecraft.src:
 //            GuiContainer, Player, Achievements, FontRenderer,
-//            RenderEngine, LocalPlayer, RenderHelper, RenderManager,
+//            RenderEngine, PlayerLocal, RenderHelper, RenderManager,
 //            GuiButton, GuiAchievements, GuiStats
 
-public class InventoryScreen extends AbstractContainerScreen
+public class ScreenInventory extends ScreenContainerAbstract
 {
 	
 	private ButtonElement armorButton;
@@ -44,7 +44,7 @@ public class InventoryScreen extends AbstractContainerScreen
 	
 	private DamageType hoveredDamageType;
 
-    public InventoryScreen(Player player)
+    public ScreenInventory(Player player)
     {
         super(player.inventorySlots);
         passEvents = true;
@@ -176,7 +176,7 @@ public class InventoryScreen extends AbstractContainerScreen
         	OverlayButtonElement<?> button = (OverlayButtonElement<?>) overlayButtonsLayout.elements.get(i);
         	drawTexturedModalRect(button.xPosition + 1, button.yPosition + 1, 176, 9 + 9 * uvs.get(i), 9, 9);
         	boolean val = true;
-        	if(button.option instanceof BooleanOption) val = (Boolean) button.option.value;
+        	if(button.option instanceof OptionBoolean) val = (Boolean) button.option.value;
         	if(!val) drawTexturedModalRect(button.xPosition + 1, button.yPosition + 1, 194, 0, 9, 9);
         }
 
diff --git a/src/main/java/net/minecraft/client/gui/container/InventoryScreenCreative.java b/src/main/java/net/minecraft/client/gui/container/ScreenInventoryCreative.java
similarity index 96%
rename from src/main/java/net/minecraft/client/gui/container/InventoryScreenCreative.java
rename to src/main/java/net/minecraft/client/gui/container/ScreenInventoryCreative.java
index d8b0d023c..896f42783 100644
--- a/src/main/java/net/minecraft/client/gui/container/InventoryScreenCreative.java
+++ b/src/main/java/net/minecraft/client/gui/container/ScreenInventoryCreative.java
@@ -7,7 +7,7 @@ import net.minecraft.core.InventoryAction;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.client.gui.options.OptionsButtonElement;
 import net.minecraft.core.lang.I18n;
-import net.minecraft.core.player.inventory.menu.CreativeInventoryMenu;
+import net.minecraft.core.player.inventory.menu.MenuInventoryCreative;
 import net.minecraft.client.render.Lighting;
 import net.minecraft.client.render.tessellator.Tessellator;
 import net.minecraft.client.render.EntityRenderDispatcher;
@@ -18,20 +18,20 @@ import org.lwjgl.opengl.GL11;
 import net.minecraft.client.gui.TextFieldElement.ITextChangeListener;
 import org.lwjgl.opengl.GL12;
 
-public class InventoryScreenCreative extends InventoryScreen implements ITextChangeListener
+public class ScreenInventoryCreative extends ScreenInventory implements ITextChangeListener
 {
 	protected ButtonElement lastPageButton;
 	protected ButtonElement nextPageButton;
 	protected ButtonElement clearSearchButton;
 	protected TextFieldElement searchField;
-	protected CreativeInventoryMenu container;
+	protected MenuInventoryCreative container;
 	protected String pageString = "1/1";
 	
-	public InventoryScreenCreative(Player entityplayer)
+	public ScreenInventoryCreative(Player entityplayer)
 	{
 		super(entityplayer);
 		xSize = 298;
-		container = (CreativeInventoryMenu)entityplayer.inventorySlots;
+		container = (MenuInventoryCreative)entityplayer.inventorySlots;
 		armourValuesFloat = 186;
 		armourButtonFloatX = 81;
 		overlayButtonsLayout.setOffset(-(xSize / 2), -(ySize / 2) - 10);
diff --git a/src/main/java/net/minecraft/client/gui/container/TrommelScreen.java b/src/main/java/net/minecraft/client/gui/container/ScreenTrommel.java
similarity index 74%
rename from src/main/java/net/minecraft/client/gui/container/TrommelScreen.java
rename to src/main/java/net/minecraft/client/gui/container/ScreenTrommel.java
index a8fa756ff..788f6b4d9 100644
--- a/src/main/java/net/minecraft/client/gui/container/TrommelScreen.java
+++ b/src/main/java/net/minecraft/client/gui/container/ScreenTrommel.java
@@ -1,21 +1,21 @@
 package net.minecraft.client.gui.container;
 
-import net.minecraft.core.block.entity.TrommelBlockEntity;
+import net.minecraft.core.block.entity.TileEntityTrommel;
 import net.minecraft.core.lang.I18n;
-import net.minecraft.core.player.inventory.menu.TrommelMenu;
-import net.minecraft.core.player.inventory.container.Inventory;
+import net.minecraft.core.player.inventory.container.ContainerInventory;
+import net.minecraft.core.player.inventory.menu.MenuTrommel;
 import org.lwjgl.opengl.GL11;
 
 // Referenced classes of package net.minecraft.src:
 //            GuiContainer, ContainerFurnace, FontRenderer, RenderEngine,
-//            FurnaceBlockEntity, InventoryPlayer
+//            TileEntityFurnace, InventoryPlayer
 
-public class TrommelScreen extends AbstractContainerScreen
+public class ScreenTrommel extends ScreenContainerAbstract
 {
 
-    public TrommelScreen(Inventory inventoryplayer, TrommelBlockEntity tileentitytrommel)
+    public ScreenTrommel(ContainerInventory inventoryplayer, TileEntityTrommel tileentitytrommel)
     {
-        super(new TrommelMenu(inventoryplayer, tileentitytrommel));
+        super(new MenuTrommel(inventoryplayer, tileentitytrommel));
         ySize = 192;
         trommelInventory = tileentitytrommel;
     }
@@ -48,5 +48,5 @@ public class TrommelScreen extends AbstractContainerScreen
 
     }
 
-    private TrommelBlockEntity trommelInventory;
+    private TileEntityTrommel trommelInventory;
 }
diff --git a/src/main/java/net/minecraft/client/gui/createworld/CreateWorldScreen.java b/src/main/java/net/minecraft/client/gui/createworld/ScreenCreateWorld.java
similarity index 73%
rename from src/main/java/net/minecraft/client/gui/createworld/CreateWorldScreen.java
rename to src/main/java/net/minecraft/client/gui/createworld/ScreenCreateWorld.java
index 1d7a97662..cc31cced6 100644
--- a/src/main/java/net/minecraft/client/gui/createworld/CreateWorldScreen.java
+++ b/src/main/java/net/minecraft/client/gui/createworld/ScreenCreateWorld.java
@@ -1,11 +1,11 @@
 package net.minecraft.client.gui.createworld;
 
 import net.minecraft.client.gui.Screen;
-import net.minecraft.client.gui.paged.PagedScreen;
+import net.minecraft.client.gui.paged.ScreenPaged;
 
-public class CreateWorldScreen
-    extends PagedScreen {
-    public CreateWorldScreen(Screen parent) {
+public class ScreenCreateWorld
+    extends ScreenPaged {
+    public ScreenCreateWorld(Screen parent) {
         super(
             parent,
             CreateWorldPageRegistry.getInstance(),
diff --git a/src/main/java/net/minecraft/client/gui/guidebook/PageManager.java b/src/main/java/net/minecraft/client/gui/guidebook/GuidebookPageManager.java
similarity index 98%
rename from src/main/java/net/minecraft/client/gui/guidebook/PageManager.java
rename to src/main/java/net/minecraft/client/gui/guidebook/GuidebookPageManager.java
index 52ef852b2..f61d92852 100644
--- a/src/main/java/net/minecraft/client/gui/guidebook/PageManager.java
+++ b/src/main/java/net/minecraft/client/gui/guidebook/GuidebookPageManager.java
@@ -7,7 +7,7 @@ import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 
-public class PageManager {
+public class GuidebookPageManager {
     private final List<GuidebookPage> pages = new ArrayList<>();
     private final PageNavigationStack stack = new PageNavigationStack(10);
     private GuidebookPage leftPage = null;
@@ -15,7 +15,7 @@ public class PageManager {
     private GuidebookSection currentSection = null;
     public static SearchQuery searchQuery = null;
 
-    public PageManager() {
+    public GuidebookPageManager() {
        updatePages();
        setCurrentPage(0, false);
     }
diff --git a/src/main/java/net/minecraft/client/gui/guidebook/GuidebookSections.java b/src/main/java/net/minecraft/client/gui/guidebook/GuidebookSections.java
index bf32c9e2f..133124187 100644
--- a/src/main/java/net/minecraft/client/gui/guidebook/GuidebookSections.java
+++ b/src/main/java/net/minecraft/client/gui/guidebook/GuidebookSections.java
@@ -1,14 +1,13 @@
 package net.minecraft.client.gui.guidebook;
 
-import net.minecraft.client.gui.guidebook.cover.CoverSection;
-import net.minecraft.client.gui.guidebook.crafting.CraftingSection;
-import net.minecraft.client.gui.guidebook.index.IndexSection;
-import net.minecraft.client.gui.guidebook.mobs.MobSection;
-import net.minecraft.client.gui.guidebook.search.SearchSection;
-import net.minecraft.client.gui.guidebook.smelting.BlastSmeltingSection;
-import net.minecraft.client.gui.guidebook.smelting.SmeltingSection;
-import net.minecraft.client.gui.guidebook.trommeling.TrommelSection;
-import net.minecraft.core.block.Block;
+import net.minecraft.client.gui.guidebook.cover.GuidebookSectionCover;
+import net.minecraft.client.gui.guidebook.crafting.GuidebookSectionCrafting;
+import net.minecraft.client.gui.guidebook.index.GuidebookSectionIndex;
+import net.minecraft.client.gui.guidebook.mobs.GuidebookSectionMob;
+import net.minecraft.client.gui.guidebook.search.GuidebookSectionSearch;
+import net.minecraft.client.gui.guidebook.smelting.GuidebookSectionBlastSmelting;
+import net.minecraft.client.gui.guidebook.smelting.GuidebookSectionSmelting;
+import net.minecraft.client.gui.guidebook.trommeling.GuidebookSectionTrommel;
 import net.minecraft.core.block.Blocks;
 import net.minecraft.core.item.ItemStack;
 
@@ -33,14 +32,14 @@ public abstract class GuidebookSections {
         if (initialized) return;
         initialized = true;
 
-        COVER = register(new CoverSection());
-        INDEX = register(new IndexSection());
-        SEARCH = register(new SearchSection());
-        CRAFTING = register(new CraftingSection());
-        FURNACE = register(new SmeltingSection("guidebook.section.furnace", new ItemStack(Blocks.FURNACE_STONE_ACTIVE), 0x606060, 0x404040));
-        BLAST_FURNACE = register(new BlastSmeltingSection("guidebook.section.blast_furnace", new ItemStack(Blocks.FURNACE_BLAST_ACTIVE), 0xA0A0A0, 0x808080));
-        TROMMEL = register(new TrommelSection("guidebook.section.trommel", new ItemStack(Blocks.TROMMEL_ACTIVE), 0x202020, 0x404040));
-        MOB = register(new MobSection());
+        COVER = register(new GuidebookSectionCover());
+        INDEX = register(new GuidebookSectionIndex());
+        SEARCH = register(new GuidebookSectionSearch());
+        CRAFTING = register(new GuidebookSectionCrafting());
+        FURNACE = register(new GuidebookSectionSmelting("guidebook.section.furnace", new ItemStack(Blocks.FURNACE_STONE_ACTIVE), 0x606060, 0x404040));
+        BLAST_FURNACE = register(new GuidebookSectionBlastSmelting("guidebook.section.blast_furnace", new ItemStack(Blocks.FURNACE_BLAST_ACTIVE), 0xA0A0A0, 0x808080));
+        TROMMEL = register(new GuidebookSectionTrommel("guidebook.section.trommel", new ItemStack(Blocks.TROMMEL_ACTIVE), 0x202020, 0x404040));
+        MOB = register(new GuidebookSectionMob());
     }
 
     public static GuidebookSection register(GuidebookSection section) {
diff --git a/src/main/java/net/minecraft/client/gui/guidebook/GuidebookScreen.java b/src/main/java/net/minecraft/client/gui/guidebook/ScreenGuidebook.java
similarity index 71%
rename from src/main/java/net/minecraft/client/gui/guidebook/GuidebookScreen.java
rename to src/main/java/net/minecraft/client/gui/guidebook/ScreenGuidebook.java
index 9553d54f6..48a986d6e 100644
--- a/src/main/java/net/minecraft/client/gui/guidebook/GuidebookScreen.java
+++ b/src/main/java/net/minecraft/client/gui/guidebook/ScreenGuidebook.java
@@ -4,14 +4,14 @@ import net.minecraft.client.Minecraft;
 import net.minecraft.client.gui.Gui;
 import net.minecraft.client.gui.Screen;
 import net.minecraft.client.gui.TooltipElement;
-import net.minecraft.client.gui.guidebook.search.SearchPage;
-import net.minecraft.client.gui.guidebook.search.SearchSection;
+import net.minecraft.client.gui.guidebook.search.GuidebookPageSearch;
+import net.minecraft.client.gui.guidebook.search.GuidebookSectionSearch;
 import net.minecraft.client.input.controller.ControllerInput;
 import net.minecraft.client.render.Font;
 import net.minecraft.client.render.Lighting;
 import net.minecraft.client.render.OpenGLHelper;
 import net.minecraft.client.render.TextureManager;
-import net.minecraft.client.render.entity.ItemEntityRenderer;
+import net.minecraft.client.render.entity.EntityRendererItem;
 import net.minecraft.client.render.item.model.ItemModelDispatcher;
 import net.minecraft.client.render.tessellator.Tessellator;
 import net.minecraft.core.item.ItemStack;
@@ -26,14 +26,14 @@ import org.lwjgl.opengl.GL12;
 import java.util.List;
 import java.util.Random;
 
-public class GuidebookScreen
+public class ScreenGuidebook
     extends Screen {
     private static final int TABS_PER_SIDE = 8;
-    private static PageManager pageManager = null;
-    public static PageManager getPageManager() {
+    private static GuidebookPageManager guidebookPageManager = null;
+    public static GuidebookPageManager getPageManager() {
         GuidebookSections.init();
-        if (pageManager == null) pageManager = new PageManager();
-        return pageManager;
+        if (guidebookPageManager == null) guidebookPageManager = new GuidebookPageManager();
+        return guidebookPageManager;
     }
 
     public static boolean allowArrowKeyNavigation = true;
@@ -46,7 +46,7 @@ public class GuidebookScreen
     private GuidebookPage lastPage = null;
     private boolean canPlaySound = true;
 
-    public GuidebookScreen(Screen parent) {
+    public ScreenGuidebook(Screen parent) {
         super(parent);
         getPageManager();
     }
@@ -79,8 +79,8 @@ public class GuidebookScreen
     }
 
     private void updateTabList() {
-        boolean hasLeftPage = pageManager.getLeftPage() != null;
-        boolean hasRightPage = pageManager.getRightPage() != null;
+        boolean hasLeftPage = guidebookPageManager.getLeftPage() != null;
+        boolean hasRightPage = guidebookPageManager.getRightPage() != null;
         int left = width / 2 - xSize / (hasLeftPage && hasRightPage ? 2 : 4);
         int right = width / 2 + xSize / (hasLeftPage && hasRightPage ? 2 : 4);
         int top = height / 2 - ySize / 2;
@@ -93,17 +93,17 @@ public class GuidebookScreen
             tabs[i].setX(left - Tab.WIDTH);
             tabs[i].setY(top + i * (Tab.HEIGHT + 2) + 7);
             tabs[i].setFlipped(false);
-            if (sections.get(i) instanceof SearchableGuidebookSection && PageManager.searchQuery != null) {
-                List<GuidebookPage> search = ((SearchableGuidebookSection) sections.get(i)).searchPages(PageManager.searchQuery);
+            if (sections.get(i) instanceof SearchableGuidebookSection && GuidebookPageManager.searchQuery != null) {
+                List<GuidebookPage> search = ((SearchableGuidebookSection) sections.get(i)).searchPages(GuidebookPageManager.searchQuery);
                 if (search.size() > 0) {
-                    tabs[i].setActive(search.get(0) == pageManager.getLeftPage() || search.get(0) == pageManager.getRightPage());
+                    tabs[i].setActive(search.get(0) == guidebookPageManager.getLeftPage() || search.get(0) == guidebookPageManager.getRightPage());
                 } else {
                     tabs[i].setActive(false);
                 }
             } else {
                 List<GuidebookPage> pages = sections.get(i).getPages();
                 if (pages.size() > 0) {
-                    tabs[i].setActive((pages.get(0) == pageManager.getLeftPage()) || (pages.get(0) == pageManager.getRightPage()));
+                    tabs[i].setActive((pages.get(0) == guidebookPageManager.getLeftPage()) || (pages.get(0) == guidebookPageManager.getRightPage()));
                 } else {
                     tabs[i].setActive(false);
                 }
@@ -116,17 +116,17 @@ public class GuidebookScreen
             tabs[i].setY(top + (i - TABS_PER_SIDE) * (Tab.HEIGHT + 2) + 7);
             tabs[i].setFlipped(true);
             if (sections.get(i).getPages().size() > 0) {
-                if (sections.get(i) instanceof SearchableGuidebookSection && PageManager.searchQuery != null) {
-                    List<GuidebookPage> search = ((SearchableGuidebookSection) sections.get(i)).searchPages(PageManager.searchQuery);
+                if (sections.get(i) instanceof SearchableGuidebookSection && GuidebookPageManager.searchQuery != null) {
+                    List<GuidebookPage> search = ((SearchableGuidebookSection) sections.get(i)).searchPages(GuidebookPageManager.searchQuery);
                     if (search.size() > 0) {
-                        tabs[i].setActive(search.get(0) == pageManager.getLeftPage() || search.get(0) == pageManager.getRightPage());
+                        tabs[i].setActive(search.get(0) == guidebookPageManager.getLeftPage() || search.get(0) == guidebookPageManager.getRightPage());
                     } else {
                         tabs[i].setActive(false);
                     }
                 } else {
                     List<GuidebookPage> pages = sections.get(i).getPages();
                     if (pages.size() > 0) {
-                        tabs[i].setActive((pages.get(0) == pageManager.getLeftPage()) || (pages.get(0) == pageManager.getRightPage()));
+                        tabs[i].setActive((pages.get(0) == guidebookPageManager.getLeftPage()) || (pages.get(0) == guidebookPageManager.getRightPage()));
                     } else {
                         tabs[i].setActive(false);
                     }
@@ -142,14 +142,14 @@ public class GuidebookScreen
 
     @Override
     public void render(int xm, int ym, float renderPartialTicks) {
-        lastPage = pageManager.getLeftPage();
+        lastPage = guidebookPageManager.getLeftPage();
         scroll(Mouse.getDWheel());
 
         int xOffset = 0;
-        if (pageManager.getLeftPage() == null) {
+        if (guidebookPageManager.getLeftPage() == null) {
             xOffset = -158 / 2;
         }
-        if (pageManager.getRightPage() == null) {
+        if (guidebookPageManager.getRightPage() == null) {
             xOffset = 158 / 2;
         }
 
@@ -171,7 +171,7 @@ public class GuidebookScreen
                 count = 100;
             }
         }
-        pageManager.offsetPage(MathHelper.clamp(-direction, -1, 1) * 2 * count);
+        guidebookPageManager.offsetPage(MathHelper.clamp(-direction, -1, 1) * 2 * count);
         playPageSound();
         updateTabList();
     }
@@ -182,23 +182,23 @@ public class GuidebookScreen
 
         // Handle back button
         if (buttonNum == 3) {
-            pageManager.goBack();
+            guidebookPageManager.goBack();
             playPageSound();
             updateTabList();
             return;
         }
         if (buttonNum == 4) {
-            pageManager.goForward();
+            guidebookPageManager.goForward();
             playPageSound();
             updateTabList();
             return;
         }
 
         int xOffset = 0;
-        if (pageManager.getLeftPage() == null) {
+        if (guidebookPageManager.getLeftPage() == null) {
             xOffset = -158 / 2;
         }
-        if (pageManager.getRightPage() == null) {
+        if (guidebookPageManager.getRightPage() == null) {
             xOffset = 158 / 2;
         }
 
@@ -209,42 +209,42 @@ public class GuidebookScreen
         int left = width / 2 - xSize / 2 + xOffset;
         int right = width / 2 + xSize / 2 + xOffset;
 
-        if (pageManager.getLeftPage() != null && pageManager.hasPreviousPage()) {
+        if (guidebookPageManager.getLeftPage() != null && guidebookPageManager.hasPreviousPage()) {
             if (mx >= left && mx <= left + size && my >= top && my <= top + size) {
-                pageManager.offsetPage(-2);
+                guidebookPageManager.offsetPage(-2);
                 playPageSound();
                 updateTabList();
                 return;
             }
             if (mx >= left && mx <= left + size && my >= bottom - size && my <= bottom) {
-                pageManager.offsetPage(-2);
+                guidebookPageManager.offsetPage(-2);
                 playPageSound();
                 updateTabList();
                 return;
             }
         }
-        if (pageManager.getRightPage() != null && pageManager.hasNextPage()) {
+        if (guidebookPageManager.getRightPage() != null && guidebookPageManager.hasNextPage()) {
             if (mx >= right - size && mx <= right && my >= top && my <= top + size) {
-                pageManager.offsetPage(2);
+                guidebookPageManager.offsetPage(2);
                 playPageSound();
                 updateTabList();
                 return;
             }
             if (mx >= right - size && mx <= right && my >= bottom - size && my <= bottom) {
-                pageManager.offsetPage(2);
+                guidebookPageManager.offsetPage(2);
                 playPageSound();
                 updateTabList();
                 return;
             }
         }
 
-        if (pageManager.getLeftPage() != null && mx > left && mx < left + xSize / 2 && my > top && my < bottom) {
-            pageManager.getLeftPage().onMouseDown(left, top, mx, my, buttonNum);
+        if (guidebookPageManager.getLeftPage() != null && mx > left && mx < left + xSize / 2 && my > top && my < bottom) {
+            guidebookPageManager.getLeftPage().onMouseDown(left, top, mx, my, buttonNum);
             updateTabList();
             return;
         }
-        if (pageManager.getRightPage() != null && mx > left + xSize / 2 && mx < right && my > top && my < bottom) {
-            pageManager.getRightPage().onMouseDown(left + xSize / 2, top, mx, my, buttonNum);
+        if (guidebookPageManager.getRightPage() != null && mx > left + xSize / 2 && mx < right && my > top && my < bottom) {
+            guidebookPageManager.getRightPage().onMouseDown(left + xSize / 2, top, mx, my, buttonNum);
             updateTabList();
             return;
         }
@@ -261,10 +261,10 @@ public class GuidebookScreen
         if(eventKey != Keyboard.KEY_BACK) super.keyPressed(eventCharacter, eventKey, mx, my);
 
         int xOffset = 0;
-        if (pageManager.getLeftPage() == null) {
+        if (guidebookPageManager.getLeftPage() == null) {
             xOffset = -158 / 2;
         }
-        if (pageManager.getRightPage() == null) {
+        if (guidebookPageManager.getRightPage() == null) {
             xOffset = 158 / 2;
         }
 
@@ -273,22 +273,22 @@ public class GuidebookScreen
 
         if (allowArrowKeyNavigation) {
             if (eventKey == Keyboard.KEY_LEFT) {
-                pageManager.offsetPage(-2);
+                guidebookPageManager.offsetPage(-2);
                 updateTabList();
             }
             if (eventKey == Keyboard.KEY_RIGHT) {
-                pageManager.offsetPage(2);
+                guidebookPageManager.offsetPage(2);
                 updateTabList();
             }
         }
 
         boolean consumedInput = false;
-        if (pageManager.getLeftPage() != null) {
-            consumedInput |= pageManager.getLeftPage().keyTyped(eventCharacter, eventKey, left, top, mx, my);
+        if (guidebookPageManager.getLeftPage() != null) {
+            consumedInput |= guidebookPageManager.getLeftPage().keyTyped(eventCharacter, eventKey, left, top, mx, my);
             updateTabList();
         }
-        if (pageManager.getRightPage() != null) {
-            consumedInput |= pageManager.getRightPage().keyTyped(eventCharacter, eventKey, left + xSize / 2, top, mx, my);
+        if (guidebookPageManager.getRightPage() != null) {
+            consumedInput |= guidebookPageManager.getRightPage().keyTyped(eventCharacter, eventKey, left + xSize / 2, top, mx, my);
             updateTabList();
         }
 
@@ -301,7 +301,7 @@ public class GuidebookScreen
         for (Tab tab : tabs) {
             if (tab == null) return;
             if (tab.mouseOver(mouseX, mouseY)) {
-                pageManager.setCurrentPage(pageManager.getSectionIndex(tab.getSection()), true);
+                guidebookPageManager.setCurrentPage(guidebookPageManager.getSectionIndex(tab.getSection()), true);
                 playPageSound();
                 updateTabList();
                 return;
@@ -310,7 +310,7 @@ public class GuidebookScreen
     }
 
     private void playPageSound() {
-        if (!canPlaySound || lastPage == pageManager.getLeftPage()) return;
+        if (!canPlaySound || lastPage == guidebookPageManager.getLeftPage()) return;
         canPlaySound = false;
         Random r = new Random();
         mc.sndManager.playSound("random.page", SoundCategory.GUI_SOUNDS, 0.8f, 0.9f + (r.nextFloat() - r.nextFloat()) * 0.1f);
@@ -318,31 +318,31 @@ public class GuidebookScreen
 
     public void guiSpecificControllerInput(ControllerInput controller){
         if (controller.digitalPad.left.pressedThisFrame() || (controller.digitalPad.left.isPressed() && controller.digitalPad.left.getHoldTime() % 4 == 0)){
-            pageManager.offsetPage(-2);
+            guidebookPageManager.offsetPage(-2);
             updateTabList();
         }
         if (controller.digitalPad.right.pressedThisFrame() || (controller.digitalPad.right.isPressed() && controller.digitalPad.right.getHoldTime() % 4 == 0)){
-            pageManager.offsetPage(2);
+            guidebookPageManager.offsetPage(2);
             updateTabList();
         }
         if (controller.buttonRightShoulder.pressedThisFrame()){
-            Tab t = getTab(pageManager.getCurrentSection(), true);
+            Tab t = getTab(guidebookPageManager.getCurrentSection(), true);
             if (t != null){
-                int currentPage = pageManager.getPageIndex(pageManager.getLeftPage());
-                pageManager.setCurrentPage(pageManager.getSectionIndex(t.getSection()), true);
-                if (currentPage == pageManager.getPageIndex(pageManager.getLeftPage())){
-                    pageManager.offsetPage(2);
+                int currentPage = guidebookPageManager.getPageIndex(guidebookPageManager.getLeftPage());
+                guidebookPageManager.setCurrentPage(guidebookPageManager.getSectionIndex(t.getSection()), true);
+                if (currentPage == guidebookPageManager.getPageIndex(guidebookPageManager.getLeftPage())){
+                    guidebookPageManager.offsetPage(2);
                 }
                 updateTabList();
             }
         }
         if (controller.buttonLeftShoulder.pressedThisFrame()){
-            Tab t = getTab(pageManager.getCurrentSection(), false);
+            Tab t = getTab(guidebookPageManager.getCurrentSection(), false);
             if (t != null){
-                int currentPage = pageManager.getPageIndex(pageManager.getLeftPage());
-                pageManager.setCurrentPage(pageManager.getSectionIndex(t.getSection()), true);
-                if (currentPage == pageManager.getPageIndex(pageManager.getLeftPage())){
-                    pageManager.offsetPage(-2);
+                int currentPage = guidebookPageManager.getPageIndex(guidebookPageManager.getLeftPage());
+                guidebookPageManager.setCurrentPage(guidebookPageManager.getSectionIndex(t.getSection()), true);
+                if (currentPage == guidebookPageManager.getPageIndex(guidebookPageManager.getLeftPage())){
+                    guidebookPageManager.offsetPage(-2);
                 }
                 updateTabList();
             }
@@ -355,7 +355,7 @@ public class GuidebookScreen
             Tab t = tabs[i];
             if (t == null) continue;
             if (t.getSection() == section){
-                if (section instanceof SearchSection){
+                if (section instanceof GuidebookSectionSearch){
                     index = i + 1;
                     tab = tabs[i + 1];
                 } else {
@@ -379,14 +379,14 @@ public class GuidebookScreen
 
         canPlaySound = true;
 
-        if (pageManager.getLeftPage() != null) {
-            pageManager.getLeftPage().onTick();
+        if (guidebookPageManager.getLeftPage() != null) {
+            guidebookPageManager.getLeftPage().onTick();
         }
-        if (pageManager.getRightPage() != null) {
-            pageManager.getRightPage().onTick();
+        if (guidebookPageManager.getRightPage() != null) {
+            guidebookPageManager.getRightPage().onTick();
         }
 
-        allowArrowKeyNavigation = !((pageManager.getLeftPage() instanceof SearchPage || pageManager.getRightPage() instanceof SearchPage) && SearchPage.searchField.isFocused) || SearchPage.searchField.getText().isEmpty();
+        allowArrowKeyNavigation = !((guidebookPageManager.getLeftPage() instanceof GuidebookPageSearch || guidebookPageManager.getRightPage() instanceof GuidebookPageSearch) && GuidebookPageSearch.searchField.isFocused) || GuidebookPageSearch.searchField.getText().isEmpty();
     }
 
     private void drawTabs(int mouseX, int mouseY) {
@@ -411,8 +411,8 @@ public class GuidebookScreen
         int left = width / 2 - xSize / 2 + xOffset;
         int right = width / 2 + xSize / 2 + xOffset;
 
-        GuidebookPage leftPage = pageManager.getLeftPage();
-        GuidebookPage rightPage = pageManager.getRightPage();
+        GuidebookPage leftPage = guidebookPageManager.getLeftPage();
+        GuidebookPage rightPage = guidebookPageManager.getRightPage();
 
         if (leftPage != null) {
             leftPage.render(mc.textureManager, mc.font, left, top, mouseX, mouseY, partialTicks);
@@ -428,8 +428,8 @@ public class GuidebookScreen
         int left = width / 2 - xSize / 2 + xOffset;
         int right = width / 2 + xSize / 2 + xOffset;
 
-        GuidebookPage leftPage = pageManager.getLeftPage();
-        GuidebookPage rightPage = pageManager.getRightPage();
+        GuidebookPage leftPage = guidebookPageManager.getLeftPage();
+        GuidebookPage rightPage = guidebookPageManager.getRightPage();
 
         if (leftPage != null) {
             leftPage.renderOverlay(mc.textureManager, mc.font,left,top,mouseX,mouseY,partialTicks);
@@ -444,18 +444,18 @@ public class GuidebookScreen
         int left = width / 2 - xSize / 2 + xOffset;
         int right = width / 2 + xSize / 2 + xOffset;
 
-        GuidebookPage leftPage = pageManager.getLeftPage();
-        GuidebookPage rightPage = pageManager.getRightPage();
+        GuidebookPage leftPage = guidebookPageManager.getLeftPage();
+        GuidebookPage rightPage = guidebookPageManager.getRightPage();
 
         //find a way how to display the total number of pages properly maybe
         if (leftPage != null && leftPage.drawHeaders()) {
-            drawStringNoShadow(font, String.valueOf(pageManager.getPageIndex(leftPage)) /*+ "/" + pageManager.getNumPages()*/, left + 12, bottom - 20, 0xFF000000);
-            drawStringCenteredNoShadow(font, I18n.getInstance().translateKey(pageManager.getLeftPage().getSection().getTranslationKey()), left + 158 / 2, bottom - 20, 0xFF808080);
+            drawStringNoShadow(font, String.valueOf(guidebookPageManager.getPageIndex(leftPage)) /*+ "/" + guidebookPageManager.getNumPages()*/, left + 12, bottom - 20, 0xFF000000);
+            drawStringCenteredNoShadow(font, I18n.getInstance().translateKey(guidebookPageManager.getLeftPage().getSection().getTranslationKey()), left + 158 / 2, bottom - 20, 0xFF808080);
         }
         if (rightPage != null && rightPage.drawHeaders()) {
-            String str = String.valueOf(pageManager.getPageIndex(rightPage)); /*+ "/" + pageManager.getNumPages();*/
+            String str = String.valueOf(guidebookPageManager.getPageIndex(rightPage)); /*+ "/" + guidebookPageManager.getNumPages();*/
             drawStringNoShadow(font, str, right - 12 - font.getStringWidth(str), bottom - 20, 0xFF000000);
-            drawStringCenteredNoShadow(font, I18n.getInstance().translateKey(pageManager.getRightPage().getSection().getTranslationKey()), right - 158 / 2, bottom - 20, 0xFF808080);
+            drawStringCenteredNoShadow(font, I18n.getInstance().translateKey(guidebookPageManager.getRightPage().getSection().getTranslationKey()), right - 158 / 2, bottom - 20, 0xFF808080);
         }
     }
 
@@ -470,7 +470,7 @@ public class GuidebookScreen
         mc.textureManager.bindTexture(mc.textureManager.loadTexture("/assets/minecraft/textures/gui/container/guidebook/guidebook.png"));
 
         GL11.glColor4f(1, 1, 1, 1);
-        if (pageManager.getLeftPage() != null && pageManager.hasPreviousPage()) {
+        if (guidebookPageManager.getLeftPage() != null && guidebookPageManager.hasPreviousPage()) {
             if (mouseX >= left && mouseX <= left + size && mouseY >= top && mouseY <= top + size) {
                 drawTexturedModalRect(left, top, 24 * 0, 220, 24, 24);
             }
@@ -478,7 +478,7 @@ public class GuidebookScreen
                 drawTexturedModalRect(left, bottom - size, 24 * 2, 220, 24, 24);
             }
         }
-        if (pageManager.getRightPage() != null && pageManager.hasNextPage()) {
+        if (guidebookPageManager.getRightPage() != null && guidebookPageManager.hasNextPage()) {
             if (mouseX >= right - size && mouseX <= right && mouseY >= top && mouseY <= top + size) {
                 drawTexturedModalRect(right - size, top, 24 * 1, 220, 24, 24);
             }
@@ -490,7 +490,7 @@ public class GuidebookScreen
 
     private static class Tab
         extends Gui {
-        private static ItemEntityRenderer itemRenderer = new ItemEntityRenderer();
+        private static EntityRendererItem itemRenderer = new EntityRendererItem();
         private static final int WIDTH = 36;
         private static final int HEIGHT = 24;
         private final GuidebookSection section;
diff --git a/src/main/java/net/minecraft/client/gui/guidebook/GuidebookSlot.java b/src/main/java/net/minecraft/client/gui/guidebook/SlotGuidebook.java
similarity index 91%
rename from src/main/java/net/minecraft/client/gui/guidebook/GuidebookSlot.java
rename to src/main/java/net/minecraft/client/gui/guidebook/SlotGuidebook.java
index 5c974c092..b2e51e94e 100644
--- a/src/main/java/net/minecraft/client/gui/guidebook/GuidebookSlot.java
+++ b/src/main/java/net/minecraft/client/gui/guidebook/SlotGuidebook.java
@@ -1,7 +1,7 @@
 package net.minecraft.client.gui.guidebook;
 
 import net.minecraft.client.Minecraft;
-import net.minecraft.client.entity.player.LocalPlayer;
+import net.minecraft.client.entity.player.PlayerLocal;
 import net.minecraft.core.WeightedRandomBag;
 import net.minecraft.core.WeightedRandomLootObject;
 import net.minecraft.core.achievement.stat.StatList;
@@ -16,7 +16,7 @@ import net.minecraft.core.player.inventory.slot.Slot;
 import java.util.List;
 import java.util.Random;
 
-public class GuidebookSlot extends Slot
+public class SlotGuidebook extends Slot
 {
 	public ItemStack item;
 	public RecipeSymbol symbol;
@@ -24,7 +24,7 @@ public class GuidebookSlot extends Slot
 	public int recipeIndex = 0;
 	public int recipeAmount = 0;
 	public boolean isOutput = false;
-	public GuidebookSlot(final int id, final int x, final int y, final RecipeSymbol symbol, final boolean discovered, final RecipeEntryBase<?,?,?> recipe)
+	public SlotGuidebook(final int id, final int x, final int y, final RecipeSymbol symbol, final boolean discovered, final RecipeEntryBase<?,?,?> recipe)
 	{
 		super(null, id, x, y);
 		this.index = id;
@@ -44,7 +44,7 @@ public class GuidebookSlot extends Slot
 
 
 	@Deprecated
-	public GuidebookSlot(final int id, final int x, final int y, final RecipeSymbol symbol, final boolean discovered)
+	public SlotGuidebook(final int id, final int x, final int y, final RecipeSymbol symbol, final boolean discovered)
 	{
 		super(null, id, x, y);
 		this.symbol = symbol;
@@ -57,7 +57,7 @@ public class GuidebookSlot extends Slot
 		this.recipe = null;
 	}
 
-	public GuidebookSlot setAsOutput(){
+	public SlotGuidebook setAsOutput(){
 		this.isOutput = true;
 		return this;
 	}
@@ -116,7 +116,7 @@ public class GuidebookSlot extends Slot
 	}
 	public boolean getIsDiscovered(Player player){
 		if (item == null || discovered) return true;
-		if (player instanceof LocalPlayer){
+		if (player instanceof PlayerLocal){
 			Minecraft mc = Minecraft.getMinecraft(this);
 			if (!mc.gameSettings.hideUndiscoveredItems.value) return true;
 		}
diff --git a/src/main/java/net/minecraft/client/gui/guidebook/cover/CoverPage.java b/src/main/java/net/minecraft/client/gui/guidebook/cover/GuidebookPageCover.java
similarity index 92%
rename from src/main/java/net/minecraft/client/gui/guidebook/cover/CoverPage.java
rename to src/main/java/net/minecraft/client/gui/guidebook/cover/GuidebookPageCover.java
index 41e88577d..126b327fc 100644
--- a/src/main/java/net/minecraft/client/gui/guidebook/cover/CoverPage.java
+++ b/src/main/java/net/minecraft/client/gui/guidebook/cover/GuidebookPageCover.java
@@ -6,9 +6,9 @@ import net.minecraft.client.render.Font;
 import net.minecraft.client.render.TextureManager;
 import net.minecraft.core.Global;
 
-public class CoverPage
+public class GuidebookPageCover
     extends GuidebookPage {
-    public CoverPage(GuidebookSection section) {
+    public GuidebookPageCover(GuidebookSection section) {
         super(section);
     }
 
diff --git a/src/main/java/net/minecraft/client/gui/guidebook/cover/CoverSection.java b/src/main/java/net/minecraft/client/gui/guidebook/cover/GuidebookSectionCover.java
similarity index 83%
rename from src/main/java/net/minecraft/client/gui/guidebook/cover/CoverSection.java
rename to src/main/java/net/minecraft/client/gui/guidebook/cover/GuidebookSectionCover.java
index 642e40d8c..8df4bfe26 100644
--- a/src/main/java/net/minecraft/client/gui/guidebook/cover/CoverSection.java
+++ b/src/main/java/net/minecraft/client/gui/guidebook/cover/GuidebookSectionCover.java
@@ -2,21 +2,20 @@ package net.minecraft.client.gui.guidebook.cover;
 
 import net.minecraft.client.gui.guidebook.GuidebookPage;
 import net.minecraft.client.gui.guidebook.GuidebookSection;
-import net.minecraft.core.block.Block;
 import net.minecraft.core.block.Blocks;
 import net.minecraft.core.item.ItemStack;
 
 import java.util.ArrayList;
 import java.util.List;
 
-public class CoverSection
+public class GuidebookSectionCover
     extends GuidebookSection {
     private final List<GuidebookPage> pages = new ArrayList<>();
 
-    public CoverSection() {
+    public GuidebookSectionCover() {
         super("guidebook.section.cover", new ItemStack(Blocks.MOTION_SENSOR_ACTIVE), 0xA42D29, 0xC29B1C);
 
-        pages.add(new CoverPage(this));
+        pages.add(new GuidebookPageCover(this));
     }
 
     @Override
diff --git a/src/main/java/net/minecraft/client/gui/guidebook/crafting/CraftingSection.java b/src/main/java/net/minecraft/client/gui/guidebook/crafting/GuidebookSectionCrafting.java
similarity index 77%
rename from src/main/java/net/minecraft/client/gui/guidebook/crafting/CraftingSection.java
rename to src/main/java/net/minecraft/client/gui/guidebook/crafting/GuidebookSectionCrafting.java
index e0a985018..dc3d3fd41 100644
--- a/src/main/java/net/minecraft/client/gui/guidebook/crafting/CraftingSection.java
+++ b/src/main/java/net/minecraft/client/gui/guidebook/crafting/GuidebookSectionCrafting.java
@@ -14,12 +14,12 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Objects;
 
-public class CraftingSection
+public class GuidebookSectionCrafting
     extends SearchableGuidebookSection {
     private final List<GuidebookPage> pages = new ArrayList<>();
     private Pair<String,List<GuidebookPage>> filteredPages = null;
 
-    public CraftingSection() {
+    public GuidebookSectionCrafting() {
         super("guidebook.section.crafting", new ItemStack(Blocks.WORKBENCH), 0xA86335, 0xA52922);
         reloadRecipes();
     }
@@ -27,13 +27,13 @@ public class CraftingSection
     public void reloadRecipes(){
         pages.clear();
         List<RecipeEntryCrafting<?, ?>> allRecipes = new ArrayList<>(Registries.RECIPES.getAllCraftingRecipes());
-        allRecipes.removeIf((R)->(!CraftingPage.guidebookSupportsRecipe(R)));
+        allRecipes.removeIf((R)->(!RecipePageCrafting.guidebookSupportsRecipe(R)));
         int totalRecipes = allRecipes.size();
-        int totalPages = MathHelper.ceilInt(totalRecipes, CraftingPage.RECIPES_PER_PAGE);
+        int totalPages = MathHelper.ceilInt(totalRecipes, RecipePageCrafting.RECIPES_PER_PAGE);
         for (int i = 0; i < totalPages; i++) {
-            int j = i*CraftingPage.RECIPES_PER_PAGE;
-            ArrayList<RecipeEntryCrafting<?, ?>> recipes = new ArrayList<>(allRecipes.subList(Math.min(j, totalRecipes),Math.min(j+CraftingPage.RECIPES_PER_PAGE,totalRecipes)));
-            pages.add(new CraftingPage(this,recipes));
+            int j = i* RecipePageCrafting.RECIPES_PER_PAGE;
+            ArrayList<RecipeEntryCrafting<?, ?>> recipes = new ArrayList<>(allRecipes.subList(Math.min(j, totalRecipes),Math.min(j+ RecipePageCrafting.RECIPES_PER_PAGE,totalRecipes)));
+            pages.add(new RecipePageCrafting(this,recipes));
         }
     }
 
@@ -52,7 +52,7 @@ public class CraftingSection
         if(filteredPages == null || !Objects.equals(filteredPages.getLeft(), query.rawQuery)) {
             ArrayList<RecipeEntryCrafting<?, ?>> filteredRecipes = new ArrayList<>();
             List<RecipeEntryCrafting<?, ?>> allRecipes = new ArrayList<>(Registries.RECIPES.getAllCraftingRecipes());
-            allRecipes.removeIf((R)->(!CraftingPage.guidebookSupportsRecipe(R)));
+            allRecipes.removeIf((R)->(!RecipePageCrafting.guidebookSupportsRecipe(R)));
             for (RecipeEntryCrafting<?, ?> recipe : allRecipes) {
                 if(recipe.matchesQueryIgnoreExceptions(query)){
                     filteredRecipes.add(recipe);
@@ -60,12 +60,12 @@ public class CraftingSection
             }
             ArrayList<GuidebookPage> filteredPages = new ArrayList<>();
             int filteredRecipeSize = filteredRecipes.size();
-            int filteredPageCount = MathHelper.ceilInt(filteredRecipeSize, CraftingPage.RECIPES_PER_PAGE);
+            int filteredPageCount = MathHelper.ceilInt(filteredRecipeSize, RecipePageCrafting.RECIPES_PER_PAGE);
             for (int i = 0; i < filteredPageCount; i++) {
-                int j = i * CraftingPage.RECIPES_PER_PAGE;
-                ArrayList<RecipeEntryCrafting<?, ?>> recipes = new ArrayList<>(filteredRecipes.subList(Math.min(j, filteredRecipeSize), Math.min(j + CraftingPage.RECIPES_PER_PAGE, filteredRecipeSize)));
+                int j = i * RecipePageCrafting.RECIPES_PER_PAGE;
+                ArrayList<RecipeEntryCrafting<?, ?>> recipes = new ArrayList<>(filteredRecipes.subList(Math.min(j, filteredRecipeSize), Math.min(j + RecipePageCrafting.RECIPES_PER_PAGE, filteredRecipeSize)));
                 if (!recipes.isEmpty()) {
-                    filteredPages.add(new CraftingPage(this, recipes));
+                    filteredPages.add(new RecipePageCrafting(this, recipes));
                 }
             }
             this.filteredPages = Pair.of(query.rawQuery, filteredPages);
diff --git a/src/main/java/net/minecraft/client/gui/guidebook/crafting/CraftingPage.java b/src/main/java/net/minecraft/client/gui/guidebook/crafting/RecipePageCrafting.java
similarity index 73%
rename from src/main/java/net/minecraft/client/gui/guidebook/crafting/CraftingPage.java
rename to src/main/java/net/minecraft/client/gui/guidebook/crafting/RecipePageCrafting.java
index c96f6759a..cf2a0921a 100644
--- a/src/main/java/net/minecraft/client/gui/guidebook/crafting/CraftingPage.java
+++ b/src/main/java/net/minecraft/client/gui/guidebook/crafting/RecipePageCrafting.java
@@ -3,23 +3,23 @@ package net.minecraft.client.gui.guidebook.crafting;
 import net.minecraft.client.Minecraft;
 import net.minecraft.client.gui.ItemElement;
 import net.minecraft.client.gui.TooltipElement;
-import net.minecraft.client.gui.guidebook.GuidebookScreen;
+import net.minecraft.client.gui.guidebook.ScreenGuidebook;
 import net.minecraft.client.gui.guidebook.GuidebookPage;
 import net.minecraft.client.gui.guidebook.GuidebookSection;
 import net.minecraft.client.gui.guidebook.GuidebookSections;
-import net.minecraft.client.gui.guidebook.PageManager;
+import net.minecraft.client.gui.guidebook.GuidebookPageManager;
 import net.minecraft.client.gui.guidebook.RecipePage;
-import net.minecraft.client.gui.guidebook.crafting.displays.LabelDisplayAdapter;
-import net.minecraft.client.gui.guidebook.crafting.displays.LabelDyeDisplayAdapter;
-import net.minecraft.client.gui.guidebook.crafting.displays.MapDuplicationDisplayAdapter;
+import net.minecraft.client.gui.guidebook.crafting.displays.DisplayAdapterLabel;
+import net.minecraft.client.gui.guidebook.crafting.displays.DisplayAdapterLabelDye;
+import net.minecraft.client.gui.guidebook.crafting.displays.DisplayAdapterMapDuplication;
 import net.minecraft.client.gui.guidebook.crafting.displays.RecipeDisplayAdapter;
-import net.minecraft.client.gui.guidebook.crafting.displays.RepairableDisplayAdapter;
-import net.minecraft.client.gui.guidebook.crafting.displays.ScrapDisplayAdapter;
-import net.minecraft.client.gui.guidebook.crafting.displays.ShapedDisplayAdapter;
-import net.minecraft.client.gui.guidebook.crafting.displays.ShapelessDisplayAdapter;
-import net.minecraft.client.gui.guidebook.crafting.displays.ToolDisplayAdapter;
-import net.minecraft.client.gui.guidebook.crafting.displays.UndyeDisplayAdapter;
-import net.minecraft.client.gui.guidebook.search.SearchPage;
+import net.minecraft.client.gui.guidebook.crafting.displays.DisplayAdapterRepairable;
+import net.minecraft.client.gui.guidebook.crafting.displays.displayAdapterScrap;
+import net.minecraft.client.gui.guidebook.crafting.displays.DisplayAdapterShaped;
+import net.minecraft.client.gui.guidebook.crafting.displays.DisplayAdapterShapeless;
+import net.minecraft.client.gui.guidebook.crafting.displays.DisplayAdapterTool;
+import net.minecraft.client.gui.guidebook.crafting.displays.DisplayAdapterUndye;
+import net.minecraft.client.gui.guidebook.search.GuidebookPageSearch;
 import net.minecraft.client.render.Font;
 import net.minecraft.client.render.TextureManager;
 import net.minecraft.core.achievement.Achievements;
@@ -38,7 +38,7 @@ import net.minecraft.core.data.registry.recipe.entry.RecipeEntryUndyeing;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.lang.I18n;
 import net.minecraft.core.player.inventory.slot.Slot;
-import net.minecraft.client.gui.guidebook.GuidebookSlot;
+import net.minecraft.client.gui.guidebook.SlotGuidebook;
 import org.lwjgl.input.Keyboard;
 import org.lwjgl.opengl.GL11;
 
@@ -47,25 +47,25 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-public class CraftingPage
+public class RecipePageCrafting
     extends RecipePage<RecipeEntryCrafting<?,?>> {
     public static final int RECIPES_PER_PAGE = 3;
 
-    public List<GuidebookSlot> slots;
-    public Map<RecipeEntryCrafting<?,?>,List<GuidebookSlot>> map;
+    public List<SlotGuidebook> slots;
+    public Map<RecipeEntryCrafting<?,?>,List<SlotGuidebook>> map;
 
     public static Map<Class<? extends RecipeEntryCrafting<?, ?>>, RecipeDisplayAdapter<?>> recipeToDisplayAdapterMap = new HashMap<>();
 
     static {
-        recipeToDisplayAdapterMap.put(RecipeEntryCraftingShaped.class, new ShapedDisplayAdapter());
-        recipeToDisplayAdapterMap.put(RecipeEntryCraftingShapeless.class, new ShapelessDisplayAdapter());
-        recipeToDisplayAdapterMap.put(RecipeEntryCraftingWithTool.class, new ToolDisplayAdapter());
-        recipeToDisplayAdapterMap.put(RecipeEntryRepairable.class, new RepairableDisplayAdapter());
-        recipeToDisplayAdapterMap.put(RecipeEntryScrap.class, new ScrapDisplayAdapter());
-        recipeToDisplayAdapterMap.put(RecipeEntryLabel.class, new LabelDisplayAdapter());
-        recipeToDisplayAdapterMap.put(RecipeEntryLabelDye.class, new LabelDyeDisplayAdapter());
-        recipeToDisplayAdapterMap.put(RecipeEntryMapDuplication.class, new MapDuplicationDisplayAdapter());
-        recipeToDisplayAdapterMap.put(RecipeEntryUndyeing.class, new UndyeDisplayAdapter());
+        recipeToDisplayAdapterMap.put(RecipeEntryCraftingShaped.class, new DisplayAdapterShaped());
+        recipeToDisplayAdapterMap.put(RecipeEntryCraftingShapeless.class, new DisplayAdapterShapeless());
+        recipeToDisplayAdapterMap.put(RecipeEntryCraftingWithTool.class, new DisplayAdapterTool());
+        recipeToDisplayAdapterMap.put(RecipeEntryRepairable.class, new DisplayAdapterRepairable());
+        recipeToDisplayAdapterMap.put(RecipeEntryScrap.class, new displayAdapterScrap());
+        recipeToDisplayAdapterMap.put(RecipeEntryLabel.class, new DisplayAdapterLabel());
+        recipeToDisplayAdapterMap.put(RecipeEntryLabelDye.class, new DisplayAdapterLabelDye());
+        recipeToDisplayAdapterMap.put(RecipeEntryMapDuplication.class, new DisplayAdapterMapDuplication());
+        recipeToDisplayAdapterMap.put(RecipeEntryUndyeing.class, new DisplayAdapterUndye());
     }
 
     private final TooltipElement tooltipElement;
@@ -74,7 +74,7 @@ public class CraftingPage
     private static Player player;
     private static long ticks = 0;
 
-    public CraftingPage(GuidebookSection section, List<RecipeEntryCrafting<?,?>> recipes) {
+    public RecipePageCrafting(GuidebookSection section, List<RecipeEntryCrafting<?,?>> recipes) {
         super(section);
         this.recipes = recipes;
         this.slots = new ArrayList<>();
@@ -89,7 +89,7 @@ public class CraftingPage
         for (RecipeEntryCrafting<?,?> recipe : recipes) {
             if (recipeToDisplayAdapterMap.containsKey(recipe.getClass())) {
                 RecipeDisplayAdapter adapter = recipeToDisplayAdapterMap.get(recipe.getClass());
-                List<GuidebookSlot> recipeSlots = adapter.getSlots(recipe, recipeAmount, xOffset, yOffset);
+                List<SlotGuidebook> recipeSlots = adapter.getSlots(recipe, recipeAmount, xOffset, yOffset);
                 map.put(recipe,recipeSlots);
                 slots.addAll(recipeSlots);
                 yOffset += 10;
@@ -102,7 +102,7 @@ public class CraftingPage
     @Override
     public void onTick() {
         ticks++;
-        for (GuidebookSlot slot : slots) {
+        for (SlotGuidebook slot : slots) {
             if(ticks > 20) {
                 slot.showRandomItem();
                 if(slots.get(slots.size()-1) == slot){
@@ -117,8 +117,8 @@ public class CraftingPage
         if(recipes.isEmpty()){
             drawStringCenteredNoShadow(fr, I18n.getInstance().translateKey("guidebook.section.search.error.no_recipes"), x+width/2,y+height/2,0xFF808080);
         }
-        GuidebookSlot mouseOverSlot = null;
-        for (GuidebookSlot slot : slots) {
+        SlotGuidebook mouseOverSlot = null;
+        for (SlotGuidebook slot : slots) {
             if(slot.item != null){
                 if(!slot.isOutput) slot.item.stackSize = 1;
             }
@@ -137,32 +137,32 @@ public class CraftingPage
     public boolean keyTyped(char c, int key, int x, int y, int mouseX, int mouseY) {
         super.keyTyped(c, key, x, y, mouseX, mouseY);
         if(mc.gameSettings.keyShowRecipe.isKeyboardKey(key)){
-            GuidebookSlot hoveringSlot= null;
-            for (GuidebookSlot slot : slots) {
+            SlotGuidebook hoveringSlot= null;
+            for (SlotGuidebook slot : slots) {
                 if(getIsMouseOverSlot(slot,x,y,mouseX,mouseY)) hoveringSlot = slot;
             }
             if(hoveringSlot != null){
                 if(hoveringSlot.hasItem()){
                     String query = "r:"+hoveringSlot.getItem().getDisplayName()+"!";
-                    PageManager.searchQuery = SearchQuery.resolve(query);
-                    SearchPage.searchField.setText(query);
-                    GuidebookScreen.getPageManager().updatePages();
-                    GuidebookScreen.getPageManager().setCurrentPage(GuidebookScreen.getPageManager().getSectionIndex(GuidebookSections.CRAFTING), true);
+                    GuidebookPageManager.searchQuery = SearchQuery.resolve(query);
+                    GuidebookPageSearch.searchField.setText(query);
+                    ScreenGuidebook.getPageManager().updatePages();
+                    ScreenGuidebook.getPageManager().setCurrentPage(ScreenGuidebook.getPageManager().getSectionIndex(GuidebookSections.CRAFTING), true);
                     return true;
                 }
             }
         } else if (mc.gameSettings.keyShowUsage.isKeyboardKey(key)) {
-            GuidebookSlot hoveringSlot= null;
-            for (GuidebookSlot slot : slots) {
+            SlotGuidebook hoveringSlot= null;
+            for (SlotGuidebook slot : slots) {
                 if(getIsMouseOverSlot(slot,x,y,mouseX,mouseY)) hoveringSlot = slot;
             }
             if(hoveringSlot != null) {
                 if (hoveringSlot.hasItem()) {
                     String query = "u:" + hoveringSlot.getItem().getDisplayName() + "!";
-                    PageManager.searchQuery = SearchQuery.resolve(query);
-                    SearchPage.searchField.setText(query);
-                    GuidebookScreen.getPageManager().updatePages();
-                    GuidebookScreen.getPageManager().setCurrentPage(GuidebookScreen.getPageManager().getSectionIndex(GuidebookSections.CRAFTING), true);
+                    GuidebookPageManager.searchQuery = SearchQuery.resolve(query);
+                    GuidebookPageSearch.searchField.setText(query);
+                    ScreenGuidebook.getPageManager().updatePages();
+                    ScreenGuidebook.getPageManager().setCurrentPage(ScreenGuidebook.getPageManager().getSectionIndex(GuidebookSections.CRAFTING), true);
                     return true;
                 }
             }
@@ -182,7 +182,7 @@ public class CraftingPage
         re.bindTexture(re.loadTexture("/assets/minecraft/textures/gui/container/guidebook/guidebook.png"));
         for (int i = 1; i <= recipes.size(); i++) {
             RecipeEntryCrafting<?, ?> recipe = recipes.get(i-1);
-            List<GuidebookSlot> list = map.get(recipe);
+            List<SlotGuidebook> list = map.get(recipe);
             drawTexturedModalRect(x + list.get(list.size()-1).x - 25, y +  list.get(list.size()-1).y, 234, 0, 22, 15);
         }
     }
@@ -190,8 +190,8 @@ public class CraftingPage
     @Override
     protected void renderOverlay(TextureManager re, Font fr, int x, int y, int mouseX, int mouseY, float partialTicks) {
         super.renderOverlay(re, fr, x, y, mouseX, mouseY, partialTicks);
-        GuidebookSlot mouseOverSlot = null;
-        for (GuidebookSlot slot : slots) {
+        SlotGuidebook mouseOverSlot = null;
+        for (SlotGuidebook slot : slots) {
             if(getIsMouseOverSlot(slot,x,y,mouseX,mouseY)) mouseOverSlot = slot;
             GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
             if (mouseOverSlot != null && mouseOverSlot.hasItem())
diff --git a/src/main/java/net/minecraft/client/gui/guidebook/crafting/displays/LabelDisplayAdapter.java b/src/main/java/net/minecraft/client/gui/guidebook/crafting/displays/DisplayAdapterLabel.java
similarity index 81%
rename from src/main/java/net/minecraft/client/gui/guidebook/crafting/displays/LabelDisplayAdapter.java
rename to src/main/java/net/minecraft/client/gui/guidebook/crafting/displays/DisplayAdapterLabel.java
index db18caa3f..371bccdb9 100644
--- a/src/main/java/net/minecraft/client/gui/guidebook/crafting/displays/LabelDisplayAdapter.java
+++ b/src/main/java/net/minecraft/client/gui/guidebook/crafting/displays/DisplayAdapterLabel.java
@@ -1,6 +1,6 @@
 package net.minecraft.client.gui.guidebook.crafting.displays;
 
-import net.minecraft.client.gui.guidebook.GuidebookSlot;
+import net.minecraft.client.gui.guidebook.SlotGuidebook;
 import net.minecraft.core.block.Block;
 import net.minecraft.core.data.registry.recipe.RecipeEntryBase;
 import net.minecraft.core.data.registry.recipe.RecipeSymbol;
@@ -14,7 +14,7 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Random;
 
-public class LabelDisplayAdapter implements RecipeDisplayAdapter<RecipeEntryLabel>{
+public class DisplayAdapterLabel implements RecipeDisplayAdapter<RecipeEntryLabel>{
     protected static final IItemConvertible[] randomOptions = new IItemConvertible[100];
     public static final String[] randomNames = new String[] {"Useless", "Bob", "Steve", "Adam", "Lucas", "George", "Ferdinand", "Hemingway", "Greg", "Brian", "Fells", "Herobrine"};
     static {
@@ -48,34 +48,34 @@ public class LabelDisplayAdapter implements RecipeDisplayAdapter<RecipeEntryLabe
         }
     }
     @Override
-    public List<GuidebookSlot> getSlots(RecipeEntryLabel recipe, int recipeAmount, int xOffset, int yOffset) {
-        List<GuidebookSlot> recipeSlots = new ArrayList<>();
+    public List<SlotGuidebook> getSlots(RecipeEntryLabel recipe, int recipeAmount, int xOffset, int yOffset) {
+        List<SlotGuidebook> recipeSlots = new ArrayList<>();
 
         ItemStack[] sharedBuffer = new ItemStack[2]; // 0:Label | 1:Item to name
         RecipeSymbol[] symbols = {new RecipeSymbol(Items.LABEL.getDefaultStack()), new RecipeSymbol(randomOptions[0].getDefaultStack()), null, null, new RecipeSymbol(randomOptions[0].getDefaultStack())};
 
         for (int i = 0; i < 4; i++) {
-            GuidebookSlot slot;
+            SlotGuidebook slot;
             int x = 13 + 18 * (i % 2) + xOffset;
             int y = 10 + 18 * ((i / 2) + recipeAmount * 3) + yOffset;
             if (i == 0) {
-                slot = new LabelGuidebookSlot(i, x, y, symbols[i], false, recipe, sharedBuffer);
+                slot = new SlotGuidebookLabel(i, x, y, symbols[i], false, recipe, sharedBuffer);
             } else if (i == 1) {
-                slot = new UnnamedInputGuidebookSlot(i, x, y, symbols[i], false, recipe, sharedBuffer);
+                slot = new SlotGuidebookUnnamedInput(i, x, y, symbols[i], false, recipe, sharedBuffer);
             } else {
-                slot = new GuidebookSlot(i, x, y, symbols[i], false, recipe);
+                slot = new SlotGuidebook(i, x, y, symbols[i], false, recipe);
             }
             recipeSlots.add(slot);
         }
 
         int centerY = (recipeSlots.get(recipeSlots.size()-1).y + recipeSlots.get(recipeSlots.size()-3).y) / 2;
-        recipeSlots.add(new NamedOutputGuidebookSlot(symbols.length - 1, 81 + xOffset, centerY, symbols[4], false, recipe, sharedBuffer).setAsOutput());
+        recipeSlots.add(new SlotGuidebookNamedOutput(symbols.length - 1, 81 + xOffset, centerY, symbols[4], false, recipe, sharedBuffer).setAsOutput());
         return recipeSlots;
     }
 
-    public static class LabelGuidebookSlot extends GuidebookSlot {
+    public static class SlotGuidebookLabel extends SlotGuidebook {
         private final ItemStack[] itemBuffer;
-        public LabelGuidebookSlot(int id, int x, int y, RecipeSymbol symbol, boolean discovered, RecipeEntryBase<?, ?, ?> recipe, ItemStack[] itemBuffer) {
+        public SlotGuidebookLabel(int id, int x, int y, RecipeSymbol symbol, boolean discovered, RecipeEntryBase<?, ?, ?> recipe, ItemStack[] itemBuffer) {
             super(id, x, y, symbol, discovered, recipe);
             this.itemBuffer = itemBuffer;
         }
@@ -89,9 +89,9 @@ public class LabelDisplayAdapter implements RecipeDisplayAdapter<RecipeEntryLabe
         }
     }
 
-    public static class UnnamedInputGuidebookSlot extends GuidebookSlot {
+    public static class SlotGuidebookUnnamedInput extends SlotGuidebook {
         private final ItemStack[] itemBuffer;
-        public UnnamedInputGuidebookSlot(int id, int x, int y, RecipeSymbol symbol, boolean discovered, RecipeEntryBase<?, ?, ?> recipe, ItemStack[] itemBuffer) {
+        public SlotGuidebookUnnamedInput(int id, int x, int y, RecipeSymbol symbol, boolean discovered, RecipeEntryBase<?, ?, ?> recipe, ItemStack[] itemBuffer) {
             super(id, x, y, symbol, discovered, recipe);
             this.itemBuffer = itemBuffer;
         }
@@ -104,9 +104,9 @@ public class LabelDisplayAdapter implements RecipeDisplayAdapter<RecipeEntryLabe
         }
     }
 
-    public static class NamedOutputGuidebookSlot extends GuidebookSlot {
+    public static class SlotGuidebookNamedOutput extends SlotGuidebook {
         private final ItemStack[] itemBuffer;
-        public NamedOutputGuidebookSlot(int id, int x, int y, RecipeSymbol symbol, boolean discovered, RecipeEntryBase<?, ?, ?> recipe, ItemStack[] itemBuffer) {
+        public SlotGuidebookNamedOutput(int id, int x, int y, RecipeSymbol symbol, boolean discovered, RecipeEntryBase<?, ?, ?> recipe, ItemStack[] itemBuffer) {
             super(id, x, y, symbol, discovered, recipe);
             this.itemBuffer = itemBuffer;
         }
diff --git a/src/main/java/net/minecraft/client/gui/guidebook/crafting/displays/LabelDyeDisplayAdapter.java b/src/main/java/net/minecraft/client/gui/guidebook/crafting/displays/DisplayAdapterLabelDye.java
similarity index 71%
rename from src/main/java/net/minecraft/client/gui/guidebook/crafting/displays/LabelDyeDisplayAdapter.java
rename to src/main/java/net/minecraft/client/gui/guidebook/crafting/displays/DisplayAdapterLabelDye.java
index e41eb1db1..7b4648840 100644
--- a/src/main/java/net/minecraft/client/gui/guidebook/crafting/displays/LabelDyeDisplayAdapter.java
+++ b/src/main/java/net/minecraft/client/gui/guidebook/crafting/displays/DisplayAdapterLabelDye.java
@@ -1,9 +1,8 @@
 package net.minecraft.client.gui.guidebook.crafting.displays;
 
-import net.minecraft.client.gui.guidebook.GuidebookSlot;
+import net.minecraft.client.gui.guidebook.SlotGuidebook;
 import net.minecraft.core.data.registry.recipe.RecipeEntryBase;
 import net.minecraft.core.data.registry.recipe.RecipeSymbol;
-import net.minecraft.core.data.registry.recipe.entry.RecipeEntryCraftingWithTool;
 import net.minecraft.core.data.registry.recipe.entry.RecipeEntryLabelDye;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.item.Items;
@@ -13,36 +12,36 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Random;
 
-public class LabelDyeDisplayAdapter implements RecipeDisplayAdapter<RecipeEntryLabelDye> {
+public class DisplayAdapterLabelDye implements RecipeDisplayAdapter<RecipeEntryLabelDye> {
     @Override
-    public List<GuidebookSlot> getSlots(RecipeEntryLabelDye recipe, int recipeAmount, int xOffset, int yOffset) {
-        List<GuidebookSlot> recipeSlots = new ArrayList<>();
+    public List<SlotGuidebook> getSlots(RecipeEntryLabelDye recipe, int recipeAmount, int xOffset, int yOffset) {
+        List<SlotGuidebook> recipeSlots = new ArrayList<>();
 
         ItemStack[] sharedBuffer = new ItemStack[2]; // 0:Label | 1:Dye
         RecipeSymbol[] symbols = {new RecipeSymbol(Items.LABEL.getDefaultStack()), new RecipeSymbol(Items.DYE.getDefaultStack()), null, null, new RecipeSymbol(Items.LABEL.getDefaultStack())};
 
         for (int i = 0; i < 4; i++) {
-            GuidebookSlot slot;
+            SlotGuidebook slot;
             int x = 13 + 18 * (i % 2) + xOffset;
             int y = 10 + 18 * ((i / 2) + recipeAmount * 3) + yOffset;
             if (i == 0) {
-                slot = new LabelGuidebookSlot(i, x, y, symbols[i], false, recipe, sharedBuffer);
+                slot = new SlotGuidebookLabel(i, x, y, symbols[i], false, recipe, sharedBuffer);
             } else if (i == 1) {
-                slot = new DyeGuidebookSlot(i, x, y, symbols[i], false, recipe, sharedBuffer);
+                slot = new SlotGuidebookDye(i, x, y, symbols[i], false, recipe, sharedBuffer);
             } else {
-                slot = new GuidebookSlot(i, x, y, symbols[i], false, recipe);
+                slot = new SlotGuidebook(i, x, y, symbols[i], false, recipe);
             }
             recipeSlots.add(slot);
         }
 
         int centerY = (recipeSlots.get(recipeSlots.size()-1).y + recipeSlots.get(recipeSlots.size()-3).y) / 2;
-        recipeSlots.add(new NamedOutputGuidebookSlot(symbols.length - 1, 81 + xOffset, centerY, symbols[4], false,recipe, sharedBuffer).setAsOutput());
+        recipeSlots.add(new SlotGuidebookNamedOutput(symbols.length - 1, 81 + xOffset, centerY, symbols[4], false,recipe, sharedBuffer).setAsOutput());
         return recipeSlots;
     }
 
-    public static class LabelGuidebookSlot extends GuidebookSlot {
+    public static class SlotGuidebookLabel extends SlotGuidebook {
         private final ItemStack[] itemBuffer;
-        public LabelGuidebookSlot(int id, int x, int y, RecipeSymbol symbol, boolean discovered, RecipeEntryBase<?, ?, ?> recipe, ItemStack[] itemBuffer) {
+        public SlotGuidebookLabel(int id, int x, int y, RecipeSymbol symbol, boolean discovered, RecipeEntryBase<?, ?, ?> recipe, ItemStack[] itemBuffer) {
             super(id, x, y, symbol, discovered, recipe);
             this.itemBuffer = itemBuffer;
         }
@@ -52,13 +51,13 @@ public class LabelDyeDisplayAdapter implements RecipeDisplayAdapter<RecipeEntryL
             Random r = new Random();
             item = new ItemStack(Items.LABEL);
             itemBuffer[0] = item;
-            item.setCustomName(LabelDisplayAdapter.randomNames[r.nextInt(LabelDisplayAdapter.randomNames.length)]);
+            item.setCustomName(DisplayAdapterLabel.randomNames[r.nextInt(DisplayAdapterLabel.randomNames.length)]);
         }
     }
 
-    public static class DyeGuidebookSlot extends GuidebookSlot {
+    public static class SlotGuidebookDye extends SlotGuidebook {
         private final ItemStack[] itemBuffer;
-        public DyeGuidebookSlot(int id, int x, int y, RecipeSymbol symbol, boolean discovered, RecipeEntryBase<?, ?, ?> recipe, ItemStack[] itemBuffer) {
+        public SlotGuidebookDye(int id, int x, int y, RecipeSymbol symbol, boolean discovered, RecipeEntryBase<?, ?, ?> recipe, ItemStack[] itemBuffer) {
             super(id, x, y, symbol, discovered, recipe);
             this.itemBuffer = itemBuffer;
         }
@@ -71,9 +70,9 @@ public class LabelDyeDisplayAdapter implements RecipeDisplayAdapter<RecipeEntryL
         }
     }
 
-    public static class NamedOutputGuidebookSlot extends GuidebookSlot {
+    public static class SlotGuidebookNamedOutput extends SlotGuidebook {
         private final ItemStack[] itemBuffer;
-        public NamedOutputGuidebookSlot(int id, int x, int y, RecipeSymbol symbol, boolean discovered, RecipeEntryBase<?, ?, ?> recipe, ItemStack[] itemBuffer) {
+        public SlotGuidebookNamedOutput(int id, int x, int y, RecipeSymbol symbol, boolean discovered, RecipeEntryBase<?, ?, ?> recipe, ItemStack[] itemBuffer) {
             super(id, x, y, symbol, discovered, recipe);
             this.itemBuffer = itemBuffer;
         }
diff --git a/src/main/java/net/minecraft/client/gui/guidebook/crafting/displays/MapDuplicationDisplayAdapter.java b/src/main/java/net/minecraft/client/gui/guidebook/crafting/displays/DisplayAdapterMapDuplication.java
similarity index 76%
rename from src/main/java/net/minecraft/client/gui/guidebook/crafting/displays/MapDuplicationDisplayAdapter.java
rename to src/main/java/net/minecraft/client/gui/guidebook/crafting/displays/DisplayAdapterMapDuplication.java
index a6e1596e8..7b5e6951f 100644
--- a/src/main/java/net/minecraft/client/gui/guidebook/crafting/displays/MapDuplicationDisplayAdapter.java
+++ b/src/main/java/net/minecraft/client/gui/guidebook/crafting/displays/DisplayAdapterMapDuplication.java
@@ -1,6 +1,6 @@
 package net.minecraft.client.gui.guidebook.crafting.displays;
 
-import net.minecraft.client.gui.guidebook.GuidebookSlot;
+import net.minecraft.client.gui.guidebook.SlotGuidebook;
 import net.minecraft.core.data.registry.recipe.RecipeSymbol;
 import net.minecraft.core.data.registry.recipe.entry.RecipeEntryMapDuplication;
 import net.minecraft.core.item.ItemStack;
@@ -9,10 +9,10 @@ import net.minecraft.core.item.Items;
 import java.util.ArrayList;
 import java.util.List;
 
-public class MapDuplicationDisplayAdapter implements RecipeDisplayAdapter<RecipeEntryMapDuplication>{
+public class DisplayAdapterMapDuplication implements RecipeDisplayAdapter<RecipeEntryMapDuplication>{
     @Override
-    public List<GuidebookSlot> getSlots(RecipeEntryMapDuplication recipe, int recipeAmount, int xOffset, int yOffset) {
-        List<GuidebookSlot> recipeSlots = new ArrayList<>();
+    public List<SlotGuidebook> getSlots(RecipeEntryMapDuplication recipe, int recipeAmount, int xOffset, int yOffset) {
+        List<SlotGuidebook> recipeSlots = new ArrayList<>();
 
         ItemStack initMap = new ItemStack(Items.MAP, 1, 1);
         initMap.getData().putBoolean("initialized", true);
@@ -23,11 +23,11 @@ public class MapDuplicationDisplayAdapter implements RecipeDisplayAdapter<Recipe
         for (int i = 0; i < 4; i++) {
             int x = 13 + 18 * (i % 2) + xOffset;
             int y = 10 + 18 * ((i / 2) + recipeAmount * 3) + yOffset;
-            recipeSlots.add(new GuidebookSlot(i, x, y, symbols[i], false, recipe));
+            recipeSlots.add(new SlotGuidebook(i, x, y, symbols[i], false, recipe));
         }
 
         int centerY = (recipeSlots.get(recipeSlots.size()-1).y + recipeSlots.get(recipeSlots.size()-3).y) / 2;
-        recipeSlots.add(new GuidebookSlot(symbols.length - 1, 81 + xOffset, centerY, symbols[4], false, recipe).setAsOutput());
+        recipeSlots.add(new SlotGuidebook(symbols.length - 1, 81 + xOffset, centerY, symbols[4], false, recipe).setAsOutput());
         return recipeSlots;
     }
 }
diff --git a/src/main/java/net/minecraft/client/gui/guidebook/crafting/displays/RepairableDisplayAdapter.java b/src/main/java/net/minecraft/client/gui/guidebook/crafting/displays/DisplayAdapterRepairable.java
similarity index 83%
rename from src/main/java/net/minecraft/client/gui/guidebook/crafting/displays/RepairableDisplayAdapter.java
rename to src/main/java/net/minecraft/client/gui/guidebook/crafting/displays/DisplayAdapterRepairable.java
index 8d5ed8f0a..3d825fc0c 100644
--- a/src/main/java/net/minecraft/client/gui/guidebook/crafting/displays/RepairableDisplayAdapter.java
+++ b/src/main/java/net/minecraft/client/gui/guidebook/crafting/displays/DisplayAdapterRepairable.java
@@ -1,6 +1,6 @@
 package net.minecraft.client.gui.guidebook.crafting.displays;
 
-import net.minecraft.client.gui.guidebook.GuidebookSlot;
+import net.minecraft.client.gui.guidebook.SlotGuidebook;
 import net.minecraft.core.data.registry.recipe.RecipeEntryBase;
 import net.minecraft.core.data.registry.recipe.RecipeSymbol;
 import net.minecraft.core.data.registry.recipe.entry.RecipeEntryRepairable;
@@ -10,36 +10,36 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Random;
 
-public class RepairableDisplayAdapter implements RecipeDisplayAdapter<RecipeEntryRepairable>{
+public class DisplayAdapterRepairable implements RecipeDisplayAdapter<RecipeEntryRepairable>{
     @Override
-    public List<GuidebookSlot> getSlots(RecipeEntryRepairable recipe, int recipeAmount, int xOffset, int yOffset) {
-        List<GuidebookSlot> recipeSlots = new ArrayList<>();
+    public List<SlotGuidebook> getSlots(RecipeEntryRepairable recipe, int recipeAmount, int xOffset, int yOffset) {
+        List<SlotGuidebook> recipeSlots = new ArrayList<>();
 
         ItemStack[] sharedItemBuffer = new ItemStack[1]; // Cursed shared reference
         int[] sharedInt = new int[1]; // Another Cursed shared reference
         RecipeSymbol[] symbols = {new RecipeSymbol(recipe.inItem), recipe.repairMaterial, recipe.repairMaterial, recipe.repairMaterial, new RecipeSymbol(recipe.inItem)};
 
         for (int i = 0; i < 4; i++) {
-            GuidebookSlot slot;
+            SlotGuidebook slot;
             int x = 13 + 18 * (i % 2) + xOffset;
             int y = 10 + 18 * ((i / 2) + recipeAmount * 3) + yOffset;
             if (i == 0) {
-                slot = new RepariableGuidebookSlot(i, x, y, symbols[i], false, recipe, sharedItemBuffer);
+                slot = new SlotGuidebookRepairable(i, x, y, symbols[i], false, recipe, sharedItemBuffer);
             } else {
-                slot = new MaterialGuidebookSlot(i, x, y, symbols[i], false, recipe, sharedInt);
+                slot = new SlotGuidebookMaterial(i, x, y, symbols[i], false, recipe, sharedInt);
             }
             recipeSlots.add(slot);
         }
 
         int centerY = (recipeSlots.get(recipeSlots.size()-1).y + recipeSlots.get(recipeSlots.size()-3).y) / 2;
-        recipeSlots.add(new RepairOutputGuidebookSlot(symbols.length - 1, 81 + xOffset, centerY, symbols[4], false,recipe, sharedItemBuffer, sharedInt).setAsOutput());
+        recipeSlots.add(new SlotGuidebookRepairOutput(symbols.length - 1, 81 + xOffset, centerY, symbols[4], false,recipe, sharedItemBuffer, sharedInt).setAsOutput());
         return recipeSlots;
     }
 
-    public static class RepariableGuidebookSlot extends GuidebookSlot {
+    public static class SlotGuidebookRepairable extends SlotGuidebook {
         private final ItemStack[] buffer;
         private int tickCount = 0;
-        public RepariableGuidebookSlot(int id, int x, int y, RecipeSymbol symbol, boolean discovered, RecipeEntryBase<?, ?, ?> recipe, ItemStack[] itemBuffer) {
+        public SlotGuidebookRepairable(int id, int x, int y, RecipeSymbol symbol, boolean discovered, RecipeEntryBase<?, ?, ?> recipe, ItemStack[] itemBuffer) {
             super(id, x, y, symbol, discovered, recipe);
             buffer = itemBuffer;
         }
@@ -65,9 +65,9 @@ public class RepairableDisplayAdapter implements RecipeDisplayAdapter<RecipeEntr
         }
     }
 
-    public static class MaterialGuidebookSlot extends GuidebookSlot {
+    public static class SlotGuidebookMaterial extends SlotGuidebook {
         private final int[] buffer;
-        public MaterialGuidebookSlot(int id, int x, int y, RecipeSymbol symbol, boolean discovered, RecipeEntryBase<?, ?, ?> recipe, int[] intBuffer) {
+        public SlotGuidebookMaterial(int id, int x, int y, RecipeSymbol symbol, boolean discovered, RecipeEntryBase<?, ?, ?> recipe, int[] intBuffer) {
             super(id, x, y, symbol, discovered, recipe);
             buffer = intBuffer;
         }
@@ -96,10 +96,10 @@ public class RepairableDisplayAdapter implements RecipeDisplayAdapter<RecipeEntr
         }
     }
 
-    public static class RepairOutputGuidebookSlot extends GuidebookSlot {
+    public static class SlotGuidebookRepairOutput extends SlotGuidebook {
         private final ItemStack[] itemBuffer;
         private final int[] intBuffer;
-        public RepairOutputGuidebookSlot(int id, int x, int y, RecipeSymbol symbol, boolean discovered, RecipeEntryBase<?, ?, ?> recipe, ItemStack[] itemBuffer, int[] intBuffer) {
+        public SlotGuidebookRepairOutput(int id, int x, int y, RecipeSymbol symbol, boolean discovered, RecipeEntryBase<?, ?, ?> recipe, ItemStack[] itemBuffer, int[] intBuffer) {
             super(id, x, y, symbol, discovered, recipe);
             this.itemBuffer = itemBuffer;
             this.intBuffer = intBuffer;
diff --git a/src/main/java/net/minecraft/client/gui/guidebook/crafting/displays/ShapedDisplayAdapter.java b/src/main/java/net/minecraft/client/gui/guidebook/crafting/displays/DisplayAdapterShaped.java
similarity index 78%
rename from src/main/java/net/minecraft/client/gui/guidebook/crafting/displays/ShapedDisplayAdapter.java
rename to src/main/java/net/minecraft/client/gui/guidebook/crafting/displays/DisplayAdapterShaped.java
index 251c82a57..833490730 100644
--- a/src/main/java/net/minecraft/client/gui/guidebook/crafting/displays/ShapedDisplayAdapter.java
+++ b/src/main/java/net/minecraft/client/gui/guidebook/crafting/displays/DisplayAdapterShaped.java
@@ -1,16 +1,16 @@
 package net.minecraft.client.gui.guidebook.crafting.displays;
 
-import net.minecraft.client.gui.guidebook.GuidebookSlot;
+import net.minecraft.client.gui.guidebook.SlotGuidebook;
 import net.minecraft.core.data.registry.recipe.RecipeSymbol;
 import net.minecraft.core.data.registry.recipe.entry.RecipeEntryCraftingShaped;
 
 import java.util.ArrayList;
 import java.util.List;
 
-public class ShapedDisplayAdapter implements RecipeDisplayAdapter<RecipeEntryCraftingShaped> {
+public class DisplayAdapterShaped implements RecipeDisplayAdapter<RecipeEntryCraftingShaped> {
     @Override
-    public List<GuidebookSlot> getSlots(RecipeEntryCraftingShaped recipe, int recipeAmount, int xOffset, int yOffset) {
-        List<GuidebookSlot> recipeSlots = new ArrayList<>();
+    public List<SlotGuidebook> getSlots(RecipeEntryCraftingShaped recipe, int recipeAmount, int xOffset, int yOffset) {
+        List<SlotGuidebook> recipeSlots = new ArrayList<>();
         int slotsAmount;
 
         if (recipe.recipeHeight > 2 || recipe.recipeWidth > 2)
@@ -24,17 +24,17 @@ public class ShapedDisplayAdapter implements RecipeDisplayAdapter<RecipeEntryCra
 
                 if (slotX >= recipe.recipeWidth || slotY >= recipe.recipeHeight)
                 {
-                    recipeSlots.add(new GuidebookSlot(i, 1 + 18 * (i % 3) + xOffset, 1 + 18 * ((i / 3)+recipeAmount*3) + yOffset, null, false,recipe));
+                    recipeSlots.add(new SlotGuidebook(i, 1 + 18 * (i % 3) + xOffset, 1 + 18 * ((i / 3)+recipeAmount*3) + yOffset, null, false,recipe));
                 }
                 else
                 {
                     RecipeSymbol stack = recipe.getInput()[slotX + (slotY * recipe.recipeWidth)];
-                    recipeSlots.add(new GuidebookSlot(i, 1 + 18 * (i % 3) + xOffset, 1 + 18 * ((i / 3)+recipeAmount*3) + yOffset, stack, false,recipe));
+                    recipeSlots.add(new SlotGuidebook(i, 1 + 18 * (i % 3) + xOffset, 1 + 18 * ((i / 3)+recipeAmount*3) + yOffset, stack, false,recipe));
                 }
             }
 
             int centerY = (recipeSlots.get(recipeSlots.size()-1).y + recipeSlots.get(recipeSlots.size()-8).y) / 2;
-            recipeSlots.add(new GuidebookSlot(slotsAmount - 1, 81 + xOffset, centerY, new RecipeSymbol(recipe.getOutput().copy()), false,recipe).setAsOutput());
+            recipeSlots.add(new SlotGuidebook(slotsAmount - 1, 81 + xOffset, centerY, new RecipeSymbol(recipe.getOutput().copy()), false,recipe).setAsOutput());
         }
         else
         {
@@ -48,17 +48,17 @@ public class ShapedDisplayAdapter implements RecipeDisplayAdapter<RecipeEntryCra
 
                 if (slotX >= recipe.recipeWidth || slotY >= recipe.recipeHeight)
                 {
-                    recipeSlots.add(new GuidebookSlot(i, 13 + 18 * (i % 2) + xOffset, 10 + 18 * ((i / 2)+recipeAmount*3) + yOffset, null, false,recipe));
+                    recipeSlots.add(new SlotGuidebook(i, 13 + 18 * (i % 2) + xOffset, 10 + 18 * ((i / 2)+recipeAmount*3) + yOffset, null, false,recipe));
                 }
                 else
                 {
                     RecipeSymbol stack = recipe.getInput()[slotX + (slotY * recipe.recipeWidth)];
-                    recipeSlots.add(new GuidebookSlot(i, 13 + 18 * (i % 2) + xOffset, 10 + 18 * ((i / 2)+recipeAmount*3) + yOffset, stack, false,recipe));
+                    recipeSlots.add(new SlotGuidebook(i, 13 + 18 * (i % 2) + xOffset, 10 + 18 * ((i / 2)+recipeAmount*3) + yOffset, stack, false,recipe));
                 }
             }
 
             int centerY = (recipeSlots.get(recipeSlots.size()-1).y + recipeSlots.get(recipeSlots.size()-3).y) / 2;
-            recipeSlots.add(new GuidebookSlot(slotsAmount - 1, 81 + xOffset, centerY, new RecipeSymbol(recipe.getOutput()), false,recipe).setAsOutput());
+            recipeSlots.add(new SlotGuidebook(slotsAmount - 1, 81 + xOffset, centerY, new RecipeSymbol(recipe.getOutput()), false,recipe).setAsOutput());
         }
         return recipeSlots;
     }
diff --git a/src/main/java/net/minecraft/client/gui/guidebook/crafting/displays/ShapelessDisplayAdapter.java b/src/main/java/net/minecraft/client/gui/guidebook/crafting/displays/DisplayAdapterShapeless.java
similarity index 74%
rename from src/main/java/net/minecraft/client/gui/guidebook/crafting/displays/ShapelessDisplayAdapter.java
rename to src/main/java/net/minecraft/client/gui/guidebook/crafting/displays/DisplayAdapterShapeless.java
index b87b71c28..da1c4153a 100644
--- a/src/main/java/net/minecraft/client/gui/guidebook/crafting/displays/ShapelessDisplayAdapter.java
+++ b/src/main/java/net/minecraft/client/gui/guidebook/crafting/displays/DisplayAdapterShapeless.java
@@ -1,16 +1,16 @@
 package net.minecraft.client.gui.guidebook.crafting.displays;
 
-import net.minecraft.client.gui.guidebook.GuidebookSlot;
+import net.minecraft.client.gui.guidebook.SlotGuidebook;
 import net.minecraft.core.data.registry.recipe.RecipeSymbol;
 import net.minecraft.core.data.registry.recipe.entry.RecipeEntryCraftingShapeless;
 
 import java.util.ArrayList;
 import java.util.List;
 
-public class ShapelessDisplayAdapter implements RecipeDisplayAdapter<RecipeEntryCraftingShapeless>{
+public class DisplayAdapterShapeless implements RecipeDisplayAdapter<RecipeEntryCraftingShapeless>{
     @Override
-    public List<GuidebookSlot> getSlots(RecipeEntryCraftingShapeless recipe, int recipeAmount, int xOffset, int yOffset) {
-        List<GuidebookSlot> recipeSlots = new ArrayList<>();
+    public List<SlotGuidebook> getSlots(RecipeEntryCraftingShapeless recipe, int recipeAmount, int xOffset, int yOffset) {
+        List<SlotGuidebook> recipeSlots = new ArrayList<>();
         int slotsAmount;
 
         if (recipe.getInput().size() > 4)
@@ -21,15 +21,15 @@ public class ShapelessDisplayAdapter implements RecipeDisplayAdapter<RecipeEntry
             for (int i = 0; i < Math.max(recipe.getInput().size(),9); i++)
             {
                 if(i >= recipe.getInput().size()){
-                    recipeSlots.add(new GuidebookSlot(i, 1 + 18 * (i % 3) + xOffset, 1 + 18 * ((i / 3)+recipeAmount*3) + yOffset, null, false,recipe));
+                    recipeSlots.add(new SlotGuidebook(i, 1 + 18 * (i % 3) + xOffset, 1 + 18 * ((i / 3)+recipeAmount*3) + yOffset, null, false,recipe));
                     continue;
                 }
                 RecipeSymbol stack = recipe.getInput().get(i);
-                recipeSlots.add(new GuidebookSlot(i, 1 + 18 * (i % 3) + xOffset, 1 + 18 * ((i / 3)+recipeAmount*3) + yOffset, stack, false,recipe));
+                recipeSlots.add(new SlotGuidebook(i, 1 + 18 * (i % 3) + xOffset, 1 + 18 * ((i / 3)+recipeAmount*3) + yOffset, stack, false,recipe));
             }
 
             int centerY = (recipeSlots.get(recipeSlots.size()-1).y + recipeSlots.get(recipeSlots.size()-8).y) / 2;
-            recipeSlots.add(new GuidebookSlot(slotsAmount - 1, 81 + xOffset, centerY, new RecipeSymbol(recipe.getOutput()), false,recipe).setAsOutput());
+            recipeSlots.add(new SlotGuidebook(slotsAmount - 1, 81 + xOffset, centerY, new RecipeSymbol(recipe.getOutput()), false,recipe).setAsOutput());
         }
         else
         {
@@ -38,15 +38,15 @@ public class ShapelessDisplayAdapter implements RecipeDisplayAdapter<RecipeEntry
             for (int i = 0; i < Math.max(recipe.getInput().size(),4); i++)
             {
                 if(i >= recipe.getInput().size()){
-                    recipeSlots.add(new GuidebookSlot(i, 13 + 18 * (i % 2) + xOffset, 10 + 18 * ((i / 2)+recipeAmount*3) + yOffset, null, false,recipe));
+                    recipeSlots.add(new SlotGuidebook(i, 13 + 18 * (i % 2) + xOffset, 10 + 18 * ((i / 2)+recipeAmount*3) + yOffset, null, false,recipe));
                     continue;
                 }
                 RecipeSymbol stack = recipe.getInput().get(i);
-                recipeSlots.add(new GuidebookSlot(i, 13 + 18 * (i % 2) + xOffset, 10 + 18 * ((i / 2)+recipeAmount*3) + yOffset, stack, false,recipe));
+                recipeSlots.add(new SlotGuidebook(i, 13 + 18 * (i % 2) + xOffset, 10 + 18 * ((i / 2)+recipeAmount*3) + yOffset, stack, false,recipe));
             }
 
             int centerY = (recipeSlots.get(recipeSlots.size()-1).y + recipeSlots.get(recipeSlots.size()-3).y) / 2;
-            recipeSlots.add(new GuidebookSlot(slotsAmount - 1, 81 + xOffset, centerY, new RecipeSymbol(recipe.getOutput()), false,recipe).setAsOutput());
+            recipeSlots.add(new SlotGuidebook(slotsAmount - 1, 81 + xOffset, centerY, new RecipeSymbol(recipe.getOutput()), false,recipe).setAsOutput());
         }
         return recipeSlots;
     }
diff --git a/src/main/java/net/minecraft/client/gui/guidebook/crafting/displays/ToolDisplayAdapter.java b/src/main/java/net/minecraft/client/gui/guidebook/crafting/displays/DisplayAdapterTool.java
similarity index 75%
rename from src/main/java/net/minecraft/client/gui/guidebook/crafting/displays/ToolDisplayAdapter.java
rename to src/main/java/net/minecraft/client/gui/guidebook/crafting/displays/DisplayAdapterTool.java
index a52b1bf75..99e4931e4 100644
--- a/src/main/java/net/minecraft/client/gui/guidebook/crafting/displays/ToolDisplayAdapter.java
+++ b/src/main/java/net/minecraft/client/gui/guidebook/crafting/displays/DisplayAdapterTool.java
@@ -1,6 +1,6 @@
 package net.minecraft.client.gui.guidebook.crafting.displays;
 
-import net.minecraft.client.gui.guidebook.GuidebookSlot;
+import net.minecraft.client.gui.guidebook.SlotGuidebook;
 import net.minecraft.core.data.registry.recipe.RecipeEntryBase;
 import net.minecraft.core.data.registry.recipe.RecipeSymbol;
 import net.minecraft.core.data.registry.recipe.entry.RecipeEntryCraftingWithTool;
@@ -10,33 +10,33 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Random;
 
-public class ToolDisplayAdapter implements RecipeDisplayAdapter<RecipeEntryCraftingWithTool>{
+public class DisplayAdapterTool implements RecipeDisplayAdapter<RecipeEntryCraftingWithTool>{
     @Override
-    public List<GuidebookSlot> getSlots(RecipeEntryCraftingWithTool recipe, int recipeAmount, int xOffset, int yOffset) {
-        List<GuidebookSlot> recipeSlots = new ArrayList<>();
+    public List<SlotGuidebook> getSlots(RecipeEntryCraftingWithTool recipe, int recipeAmount, int xOffset, int yOffset) {
+        List<SlotGuidebook> recipeSlots = new ArrayList<>();
 
         RecipeSymbol[] symbols = {recipe.inputSymbol, recipe.toolToUse, null, null, new RecipeSymbol(recipe.output)};
 
         for (int i = 0; i < 4; i++) {
-            GuidebookSlot slot;
+            SlotGuidebook slot;
             int x = 13 + 18 * (i % 2) + xOffset;
             int y = 10 + 18 * ((i / 2) + recipeAmount * 3) + yOffset;
             if (symbols[i] == recipe.toolToUse) {
-                slot = new ToolGuidebookSlot(i, x, y, symbols[i], false, recipe);
+                slot = new SlotGuidebookTool(i, x, y, symbols[i], false, recipe);
             } else {
-                slot = new GuidebookSlot(i, x, y, symbols[i], false, recipe);
+                slot = new SlotGuidebook(i, x, y, symbols[i], false, recipe);
             }
             recipeSlots.add(slot);
         }
 
         int centerY = (recipeSlots.get(recipeSlots.size()-1).y + recipeSlots.get(recipeSlots.size()-3).y) / 2;
-        recipeSlots.add(new GuidebookSlot(symbols.length - 1, 81 + xOffset, centerY, symbols[4], false,recipe).setAsOutput());
+        recipeSlots.add(new SlotGuidebook(symbols.length - 1, 81 + xOffset, centerY, symbols[4], false,recipe).setAsOutput());
         return recipeSlots;
     }
 
-    public static class ToolGuidebookSlot extends GuidebookSlot {
+    public static class SlotGuidebookTool extends SlotGuidebook {
 
-        public ToolGuidebookSlot(int id, int x, int y, RecipeSymbol symbol, boolean discovered, RecipeEntryBase<?, ?, ?> recipe) {
+        public SlotGuidebookTool(int id, int x, int y, RecipeSymbol symbol, boolean discovered, RecipeEntryBase<?, ?, ?> recipe) {
             super(id, x, y, symbol, discovered, recipe);
         }
 
diff --git a/src/main/java/net/minecraft/client/gui/guidebook/crafting/displays/UndyeDisplayAdapter.java b/src/main/java/net/minecraft/client/gui/guidebook/crafting/displays/DisplayAdapterUndye.java
similarity index 72%
rename from src/main/java/net/minecraft/client/gui/guidebook/crafting/displays/UndyeDisplayAdapter.java
rename to src/main/java/net/minecraft/client/gui/guidebook/crafting/displays/DisplayAdapterUndye.java
index 8cf1d64a5..1b63b45e9 100644
--- a/src/main/java/net/minecraft/client/gui/guidebook/crafting/displays/UndyeDisplayAdapter.java
+++ b/src/main/java/net/minecraft/client/gui/guidebook/crafting/displays/DisplayAdapterUndye.java
@@ -1,6 +1,6 @@
 package net.minecraft.client.gui.guidebook.crafting.displays;
 
-import net.minecraft.client.gui.guidebook.GuidebookSlot;
+import net.minecraft.client.gui.guidebook.SlotGuidebook;
 import net.minecraft.core.block.Blocks;
 import net.minecraft.core.data.registry.recipe.RecipeSymbol;
 import net.minecraft.core.data.registry.recipe.entry.RecipeEntryUndyeing;
@@ -9,24 +9,24 @@ import net.minecraft.core.item.ItemStack;
 import java.util.ArrayList;
 import java.util.List;
 
-public class UndyeDisplayAdapter implements RecipeDisplayAdapter<RecipeEntryUndyeing>{
+public class DisplayAdapterUndye implements RecipeDisplayAdapter<RecipeEntryUndyeing>{
     @Override
-    public List<GuidebookSlot> getSlots(RecipeEntryUndyeing recipe, int recipeAmount, int xOffset, int yOffset) {
-        List<GuidebookSlot> recipeSlots = new ArrayList<>();
+    public List<SlotGuidebook> getSlots(RecipeEntryUndyeing recipe, int recipeAmount, int xOffset, int yOffset) {
+        List<SlotGuidebook> recipeSlots = new ArrayList<>();
 
         int slotsAmount = 10;
         for (int i = 0; i < slotsAmount - 1; i++)
         {
             if (i == 4) {
-                recipeSlots.add(new GuidebookSlot(i, 1 + 18 * (i % 3) + xOffset, 1 + 18 * ((i / 3)+recipeAmount*3) + yOffset, new RecipeSymbol(Blocks.SPONGE_WET.getDefaultStack()), false,recipe));
+                recipeSlots.add(new SlotGuidebook(i, 1 + 18 * (i % 3) + xOffset, 1 + 18 * ((i / 3)+recipeAmount*3) + yOffset, new RecipeSymbol(Blocks.SPONGE_WET.getDefaultStack()), false,recipe));
             } else {
                 RecipeSymbol stack = recipe.inputSymbol;
-                recipeSlots.add(new GuidebookSlot(i, 1 + 18 * (i % 3) + xOffset, 1 + 18 * ((i / 3)+recipeAmount*3) + yOffset, stack, false,recipe));
+                recipeSlots.add(new SlotGuidebook(i, 1 + 18 * (i % 3) + xOffset, 1 + 18 * ((i / 3)+recipeAmount*3) + yOffset, stack, false,recipe));
             }
         }
 
         int centerY = (recipeSlots.get(recipeSlots.size()-1).y + recipeSlots.get(recipeSlots.size()-8).y) / 2;
-        recipeSlots.add(new GuidebookSlot(slotsAmount - 1, 81 + xOffset, centerY, new RecipeSymbol(new ItemStack(recipe.output.getItem(), 8, recipe.output.getMetadata())), false,recipe).setAsOutput());
+        recipeSlots.add(new SlotGuidebook(slotsAmount - 1, 81 + xOffset, centerY, new RecipeSymbol(new ItemStack(recipe.output.getItem(), 8, recipe.output.getMetadata())), false,recipe).setAsOutput());
 
 
         return recipeSlots;
diff --git a/src/main/java/net/minecraft/client/gui/guidebook/crafting/displays/RecipeDisplayAdapter.java b/src/main/java/net/minecraft/client/gui/guidebook/crafting/displays/RecipeDisplayAdapter.java
index fe2c09c79..b80023086 100644
--- a/src/main/java/net/minecraft/client/gui/guidebook/crafting/displays/RecipeDisplayAdapter.java
+++ b/src/main/java/net/minecraft/client/gui/guidebook/crafting/displays/RecipeDisplayAdapter.java
@@ -1,10 +1,10 @@
 package net.minecraft.client.gui.guidebook.crafting.displays;
 
-import net.minecraft.client.gui.guidebook.GuidebookSlot;
+import net.minecraft.client.gui.guidebook.SlotGuidebook;
 import net.minecraft.core.data.registry.recipe.entry.RecipeEntryCrafting;
 
 import java.util.List;
 
 public interface RecipeDisplayAdapter<T extends RecipeEntryCrafting<?, ?>> {
-    List<GuidebookSlot> getSlots(T recipe, int recipeAmount, int xOffset, int yOffset);
+    List<SlotGuidebook> getSlots(T recipe, int recipeAmount, int xOffset, int yOffset);
 }
diff --git a/src/main/java/net/minecraft/client/gui/guidebook/crafting/displays/ScrapDisplayAdapter.java b/src/main/java/net/minecraft/client/gui/guidebook/crafting/displays/displayAdapterScrap.java
similarity index 82%
rename from src/main/java/net/minecraft/client/gui/guidebook/crafting/displays/ScrapDisplayAdapter.java
rename to src/main/java/net/minecraft/client/gui/guidebook/crafting/displays/displayAdapterScrap.java
index 8d5dd04c7..80f65181a 100644
--- a/src/main/java/net/minecraft/client/gui/guidebook/crafting/displays/ScrapDisplayAdapter.java
+++ b/src/main/java/net/minecraft/client/gui/guidebook/crafting/displays/displayAdapterScrap.java
@@ -1,6 +1,6 @@
 package net.minecraft.client.gui.guidebook.crafting.displays;
 
-import net.minecraft.client.gui.guidebook.GuidebookSlot;
+import net.minecraft.client.gui.guidebook.SlotGuidebook;
 import net.minecraft.core.data.registry.recipe.RecipeEntryBase;
 import net.minecraft.core.data.registry.recipe.RecipeSymbol;
 import net.minecraft.core.data.registry.recipe.entry.RecipeEntryScrap;
@@ -10,34 +10,34 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Random;
 
-public class ScrapDisplayAdapter implements RecipeDisplayAdapter<RecipeEntryScrap>{
+public class displayAdapterScrap implements RecipeDisplayAdapter<RecipeEntryScrap>{
     @Override
-    public List<GuidebookSlot> getSlots(RecipeEntryScrap recipe, int recipeAmount, int xOffset, int yOffset) {
-        List<GuidebookSlot> recipeSlots = new ArrayList<>();
+    public List<SlotGuidebook> getSlots(RecipeEntryScrap recipe, int recipeAmount, int xOffset, int yOffset) {
+        List<SlotGuidebook> recipeSlots = new ArrayList<>();
 
         ItemStack[] sharedItemBuffer = new ItemStack[1]; // Cursed shared reference
         RecipeSymbol[] symbols = {new RecipeSymbol(recipe.itemToScrap.getDefaultStack()), null, null, null, new RecipeSymbol(recipe.scrapYieldStack)};
 
         for (int i = 0; i < 4; i++) {
-            GuidebookSlot slot;
+            SlotGuidebook slot;
             int x = 13 + 18 * (i % 2) + xOffset;
             int y = 10 + 18 * ((i / 2) + recipeAmount * 3) + yOffset;
             if (i == 0) {
-                slot = new ToScrapGuidebookSlot(i, x, y, symbols[i], false, recipe, sharedItemBuffer);
+                slot = new SlotGuidebookToScrap(i, x, y, symbols[i], false, recipe, sharedItemBuffer);
             } else {
-                slot = new GuidebookSlot(i, x, y, symbols[i], false, recipe);
+                slot = new SlotGuidebook(i, x, y, symbols[i], false, recipe);
             }
             recipeSlots.add(slot);
         }
 
         int centerY = (recipeSlots.get(recipeSlots.size()-1).y + recipeSlots.get(recipeSlots.size()-3).y) / 2;
-        recipeSlots.add(new ScrapYieldGuidebookSlot(symbols.length - 1, 81 + xOffset, centerY, symbols[4], false,recipe, sharedItemBuffer).setAsOutput());
+        recipeSlots.add(new SlotGuidebookScrapYield(symbols.length - 1, 81 + xOffset, centerY, symbols[4], false,recipe, sharedItemBuffer).setAsOutput());
         return recipeSlots;
     }
 
-    public static class ToScrapGuidebookSlot extends GuidebookSlot {
+    public static class SlotGuidebookToScrap extends SlotGuidebook {
         private final ItemStack[] itemBuffer;
-        public ToScrapGuidebookSlot(int id, int x, int y, RecipeSymbol symbol, boolean discovered, RecipeEntryBase<?, ?, ?> recipe, ItemStack[] itemBuffer) {
+        public SlotGuidebookToScrap(int id, int x, int y, RecipeSymbol symbol, boolean discovered, RecipeEntryBase<?, ?, ?> recipe, ItemStack[] itemBuffer) {
             super(id, x, y, symbol, discovered, recipe);
             this.itemBuffer = itemBuffer;
         }
@@ -60,10 +60,10 @@ public class ScrapDisplayAdapter implements RecipeDisplayAdapter<RecipeEntryScra
         }
     }
 
-    public static class ScrapYieldGuidebookSlot extends GuidebookSlot {
+    public static class SlotGuidebookScrapYield extends SlotGuidebook {
         private final ItemStack[] itemBuffer;
         private final RecipeEntryScrap recipe;
-        public ScrapYieldGuidebookSlot(int id, int x, int y, RecipeSymbol symbol, boolean discovered, RecipeEntryScrap recipe, ItemStack[] itemBuffer) {
+        public SlotGuidebookScrapYield(int id, int x, int y, RecipeSymbol symbol, boolean discovered, RecipeEntryScrap recipe, ItemStack[] itemBuffer) {
             super(id, x, y, symbol, discovered, recipe);
             this.itemBuffer = itemBuffer;
             this.recipe = recipe;
diff --git a/src/main/java/net/minecraft/client/gui/guidebook/index/IndexPage.java b/src/main/java/net/minecraft/client/gui/guidebook/index/GuidebookPageIndex.java
similarity index 81%
rename from src/main/java/net/minecraft/client/gui/guidebook/index/IndexPage.java
rename to src/main/java/net/minecraft/client/gui/guidebook/index/GuidebookPageIndex.java
index bb25150a4..fd799c999 100644
--- a/src/main/java/net/minecraft/client/gui/guidebook/index/IndexPage.java
+++ b/src/main/java/net/minecraft/client/gui/guidebook/index/GuidebookPageIndex.java
@@ -1,9 +1,9 @@
 package net.minecraft.client.gui.guidebook.index;
 
-import net.minecraft.client.gui.guidebook.GuidebookScreen;
+import net.minecraft.client.gui.guidebook.GuidebookPageManager;
+import net.minecraft.client.gui.guidebook.ScreenGuidebook;
 import net.minecraft.client.gui.guidebook.GuidebookPage;
 import net.minecraft.client.gui.guidebook.GuidebookSection;
-import net.minecraft.client.gui.guidebook.PageManager;
 import net.minecraft.client.render.Font;
 import net.minecraft.client.render.TextureManager;
 import net.minecraft.core.lang.I18n;
@@ -11,14 +11,14 @@ import org.lwjgl.opengl.GL11;
 
 import java.util.List;
 
-public class IndexPage
+public class GuidebookPageIndex
     extends GuidebookPage {
     public static final int LINES_PER_PAGE = 14;
     private final List<Object> lines;
     private final int startIndex;
     private final int totalPages;
 
-    public IndexPage(GuidebookSection section, List<Object> lines, int startIndex) {
+    public GuidebookPageIndex(GuidebookSection section, List<Object> lines, int startIndex) {
         super(section);
 
         this.lines = lines;
@@ -66,7 +66,7 @@ public class IndexPage
     @Override
     public void onMouseDown(int x, int y, int mouseX, int mouseY, int button) {
         super.onMouseDown(x, y, mouseX, mouseY, button);
-        PageManager pageManager = GuidebookScreen.getPageManager();
+        GuidebookPageManager guidebookPageManager = ScreenGuidebook.getPageManager();
 
         int yOffset = 10;
         for (int i = startIndex; i < startIndex + LINES_PER_PAGE && i < lines.size(); i++) {
@@ -76,15 +76,15 @@ public class IndexPage
                 if (i * 2 >= lines.size()) continue;
                 Object line = lines.get(i * 2);
                 if (line instanceof GuidebookSection) {
-                    PageManager.searchQuery = null;
-                    pageManager.updatePages();
-                    pageManager.setCurrentPage(pageManager.getSectionIndex((GuidebookSection) line), true);
+                    GuidebookPageManager.searchQuery = null;
+                    guidebookPageManager.updatePages();
+                    guidebookPageManager.setCurrentPage(guidebookPageManager.getSectionIndex((GuidebookSection) line), true);
 
                     return;
                 } else if (line instanceof GuidebookSection.Index) {
-                    PageManager.searchQuery = null;
-                    pageManager.updatePages();
-                    pageManager.setCurrentPage(pageManager.getPageIndex(((GuidebookSection.Index) line).getPage()), true);
+                    GuidebookPageManager.searchQuery = null;
+                    guidebookPageManager.updatePages();
+                    guidebookPageManager.setCurrentPage(guidebookPageManager.getPageIndex(((GuidebookSection.Index) line).getPage()), true);
                     return;
                 }
             }
diff --git a/src/main/java/net/minecraft/client/gui/guidebook/index/IndexSection.java b/src/main/java/net/minecraft/client/gui/guidebook/index/GuidebookSectionIndex.java
similarity index 86%
rename from src/main/java/net/minecraft/client/gui/guidebook/index/IndexSection.java
rename to src/main/java/net/minecraft/client/gui/guidebook/index/GuidebookSectionIndex.java
index f65914977..51f662571 100644
--- a/src/main/java/net/minecraft/client/gui/guidebook/index/IndexSection.java
+++ b/src/main/java/net/minecraft/client/gui/guidebook/index/GuidebookSectionIndex.java
@@ -3,19 +3,18 @@ package net.minecraft.client.gui.guidebook.index;
 import net.minecraft.client.gui.guidebook.GuidebookPage;
 import net.minecraft.client.gui.guidebook.GuidebookSection;
 import net.minecraft.client.gui.guidebook.GuidebookSections;
-import net.minecraft.core.item.Item;
 import net.minecraft.core.item.Items;
 import net.minecraft.core.item.ItemStack;
 
 import java.util.ArrayList;
 import java.util.List;
 
-public class IndexSection
+public class GuidebookSectionIndex
     extends GuidebookSection {
     private ArrayList<GuidebookPage> allPages = null;
     private ArrayList<GuidebookPage> indexPages = null;
 
-    public IndexSection() {
+    public GuidebookSectionIndex() {
         super("guidebook.section.index", new ItemStack(Items.TOOL_COMPASS), 0x0094FF, 0xC29B1C);
     }
 
@@ -44,7 +43,7 @@ public class IndexSection
                 totalLines++;
             }
         }
-        int totalPages = totalLines / IndexPage.LINES_PER_PAGE + 1;
+        int totalPages = totalLines / GuidebookPageIndex.LINES_PER_PAGE + 1;
 
         lines.add(0, 1 - totalPages);
         lines.add(0, GuidebookSections.INDEX);
@@ -67,10 +66,10 @@ public class IndexSection
         indexPages = new ArrayList<>();
         List<Object> lines = getLines();
         int totalLines = lines.size() / 2;
-        int totalPages = totalLines / IndexPage.LINES_PER_PAGE + 1;
+        int totalPages = totalLines / GuidebookPageIndex.LINES_PER_PAGE + 1;
 
         for (int i = 0; i < totalPages; i++) {
-            indexPages.add(new IndexPage(this, lines, i * IndexPage.LINES_PER_PAGE));
+            indexPages.add(new GuidebookPageIndex(this, lines, i * GuidebookPageIndex.LINES_PER_PAGE));
         }
 
     }
diff --git a/src/main/java/net/minecraft/client/gui/guidebook/mobs/MobPage.java b/src/main/java/net/minecraft/client/gui/guidebook/mobs/GuidebookPageMob.java
similarity index 93%
rename from src/main/java/net/minecraft/client/gui/guidebook/mobs/MobPage.java
rename to src/main/java/net/minecraft/client/gui/guidebook/mobs/GuidebookPageMob.java
index 15edb4988..e823a6423 100644
--- a/src/main/java/net/minecraft/client/gui/guidebook/mobs/MobPage.java
+++ b/src/main/java/net/minecraft/client/gui/guidebook/mobs/GuidebookPageMob.java
@@ -14,11 +14,11 @@ import net.minecraft.core.data.registry.recipe.RecipeSymbol;
 import net.minecraft.core.entity.Entity;
 import net.minecraft.core.entity.EntityDispatcher;
 import net.minecraft.core.entity.Mob;
-import net.minecraft.core.entity.animal.FireflyClusterMob;
+import net.minecraft.core.entity.animal.MobFireflyCluster;
 import net.minecraft.core.lang.I18n;
 import net.minecraft.core.player.gamemode.Gamemode;
 import net.minecraft.core.player.inventory.slot.Slot;
-import net.minecraft.client.gui.guidebook.GuidebookSlot;
+import net.minecraft.client.gui.guidebook.SlotGuidebook;
 import net.minecraft.core.world.World;
 import org.lwjgl.input.Keyboard;
 import org.lwjgl.opengl.GL11;
@@ -27,14 +27,14 @@ import org.slf4j.Logger;
 
 import java.util.*;
 
-public class MobPage
+public class GuidebookPageMob
     extends GuidebookPage {
     private static final Logger LOGGER = LogUtils.getLogger();
     private final Class<? extends Entity> mobClass;
     private final MobInfoRegistry.MobInfo mobInfo;
     private final Mob example;
-    private List<GuidebookSlot> slots;
-    private Map<MobInfoRegistry.MobDrop, GuidebookSlot> dropSlotMap;
+    private List<SlotGuidebook> slots;
+    private Map<MobInfoRegistry.MobDrop, SlotGuidebook> dropSlotMap;
     private static final Minecraft mc = Minecraft.getMinecraft(GuidebookPage.class);
     private static final ItemElement itemElement = new ItemElement(mc);
     private static final TooltipElement tooltipElement = new TooltipElement(mc);
@@ -42,7 +42,7 @@ public class MobPage
 
 
 
-    public MobPage(GuidebookSection section, Class<? extends Entity> mobClass, MobInfoRegistry.MobInfo mobInfo) {
+    public GuidebookPageMob(GuidebookSection section, Class<? extends Entity> mobClass, MobInfoRegistry.MobInfo mobInfo) {
         super(section);
 
         this.mobClass = mobClass;
@@ -61,7 +61,7 @@ public class MobPage
             dropSlotMap = new HashMap<>();
             for (int i = 0; i < mobInfo.getDrops().length; i++) {
                 MobInfoRegistry.MobDrop drop = mobInfo.getDrops()[i];
-                GuidebookSlot slot = new GuidebookSlot(i, 0, 0, new RecipeSymbol(drop.getStack()), false, null);
+                SlotGuidebook slot = new SlotGuidebook(i, 0, 0, new RecipeSymbol(drop.getStack()), false, null);
                 slots.add(slot);
                 dropSlotMap.put(drop, slot);
             }
@@ -181,7 +181,7 @@ public class MobPage
                     drawStringNoShadow(fr, i18n.translateKey("guidebook.section.mob.drops"), x + 8, yOffset, 0x000000);
                     yOffset += 12;
                     for (int i = 0; i < mobInfo.getDrops().length; i++) {
-                        GuidebookSlot slot = slots.get(i);
+                        SlotGuidebook slot = slots.get(i);
                         slot.x = 7 + (i % 7) * 21;
                         slot.y = (yOffset - y) + (i / 7) * 20;
                         MobInfoRegistry.MobDrop drop = mobInfo.getDrops()[i];
@@ -222,10 +222,10 @@ public class MobPage
 //                    int newSkinVariant = (example.getSkinVariant() + 1) % (highestSkinVariant + 1);
 //                    example.setSkinVariant(newSkinVariant);
 //                }
-                if (example instanceof FireflyClusterMob){
-                    FireflyClusterMob.FireflyColor color = FireflyClusterMob.FireflyColor.fireFlyColors.get(
-                            ((FireflyClusterMob) example).getColor().getId() + 1 % FireflyClusterMob.FireflyColor.fireFlyColors.size());
-                    ((FireflyClusterMob) example).setColor(color == null ? FireflyClusterMob.FireflyColor.GREEN : color);
+                if (example instanceof MobFireflyCluster){
+                    MobFireflyCluster.FireflyColor color = MobFireflyCluster.FireflyColor.fireFlyColors.get(
+                            ((MobFireflyCluster) example).getColor().getId() + 1 % MobFireflyCluster.FireflyColor.fireFlyColors.size());
+                    ((MobFireflyCluster) example).setColor(color == null ? MobFireflyCluster.FireflyColor.GREEN : color);
                 }
                 String livingSound = example.getLivingSound();
                 if (livingSound != null) {
@@ -283,8 +283,8 @@ public class MobPage
     protected void renderOverlay(TextureManager re, Font fr, int x, int y, int mouseX, int mouseY, float partialTicks) {
         super.renderOverlay(re, fr, x, y, mouseX, mouseY, partialTicks);
         if (slots == null) return;
-        GuidebookSlot mouseOverSlot = null;
-        for (GuidebookSlot slot : slots) {
+        SlotGuidebook mouseOverSlot = null;
+        for (SlotGuidebook slot : slots) {
             if(getIsMouseOverSlot(slot,x,y,mouseX,mouseY)) mouseOverSlot = slot;
             GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
             if (mouseOverSlot != null && mouseOverSlot.hasItem())
diff --git a/src/main/java/net/minecraft/client/gui/guidebook/mobs/MobSection.java b/src/main/java/net/minecraft/client/gui/guidebook/mobs/GuidebookSectionMob.java
similarity index 92%
rename from src/main/java/net/minecraft/client/gui/guidebook/mobs/MobSection.java
rename to src/main/java/net/minecraft/client/gui/guidebook/mobs/GuidebookSectionMob.java
index 88fed6e73..4d0680a64 100644
--- a/src/main/java/net/minecraft/client/gui/guidebook/mobs/MobSection.java
+++ b/src/main/java/net/minecraft/client/gui/guidebook/mobs/GuidebookSectionMob.java
@@ -8,7 +8,6 @@ import net.minecraft.core.data.registry.recipe.SearchQuery;
 import net.minecraft.core.achievement.stat.StatList;
 import net.minecraft.core.entity.Entity;
 import net.minecraft.core.entity.EntityDispatcher;
-import net.minecraft.core.item.Item;
 import net.minecraft.core.item.Items;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.lang.I18n;
@@ -19,17 +18,17 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Objects;
 
-public class MobSection
+public class GuidebookSectionMob
     extends SearchableGuidebookSection {
     private final List<GuidebookPage> pages = new ArrayList<>();
     private final List<GuidebookSection.Index> indices = new ArrayList<>();
     private Pair<String,List<GuidebookPage>> filteredPages = null;
-    public MobSection() {
+    public GuidebookSectionMob() {
         super("guidebook.section.mob", new ItemStack(Items.BONE), 0x66962B, 0xC29B1C);
 
         for (Class<? extends Entity> e : MobInfoRegistry.getMobClassList()) {
             MobInfoRegistry.MobInfo mobInfo = MobInfoRegistry.getMobInfo(e);
-            MobPage page = new MobPage(this, e, mobInfo);
+            GuidebookPageMob page = new GuidebookPageMob(this, e, mobInfo);
             pages.add(page);
             indices.add(new Index(mobInfo, page));
         }
@@ -61,11 +60,11 @@ public class MobSection
                     }
                 }
 
-                MobPage page = new MobPage(this, e, mobInfo);
+                GuidebookPageMob page = new GuidebookPageMob(this, e, mobInfo);
                 filtered.add(page);
             }
 //            if(filtered.isEmpty()){
-//                filtered.add(new MobPage(this,null, null));
+//                filtered.add(new GuidebookPageMob(this,null, null));
 //            }
             this.filteredPages = Pair.of(query.rawQuery, filtered);
             return filtered;
diff --git a/src/main/java/net/minecraft/client/gui/guidebook/mobs/MobInfoRegistry.java b/src/main/java/net/minecraft/client/gui/guidebook/mobs/MobInfoRegistry.java
index 1eda5e312..cc72b3683 100644
--- a/src/main/java/net/minecraft/client/gui/guidebook/mobs/MobInfoRegistry.java
+++ b/src/main/java/net/minecraft/client/gui/guidebook/mobs/MobInfoRegistry.java
@@ -6,7 +6,6 @@ import net.minecraft.core.block.Blocks;
 import net.minecraft.core.entity.Entity;
 import net.minecraft.core.entity.animal.*;
 import net.minecraft.core.entity.monster.*;
-import net.minecraft.core.item.Item;
 import net.minecraft.core.item.Items;
 import net.minecraft.core.item.ItemStack;
 
@@ -30,7 +29,7 @@ public abstract class MobInfoRegistry {
     }
 
     static {
-        register(PigMob.class,
+        register(MobPig.class,
             "guidebook.section.mob.pig.name",
             "guidebook.section.mob.pig.desc",
             10,
@@ -39,7 +38,7 @@ public abstract class MobInfoRegistry {
                 new MobDrop(new ItemStack(Items.FOOD_PORKCHOP_RAW), 1.0F, 1, 2)
             }
         );
-        register(SheepMob.class,
+        register(MobSheep.class,
             "guidebook.section.mob.sheep.name",
             "guidebook.section.mob.sheep.desc",
             10,
@@ -48,7 +47,7 @@ public abstract class MobInfoRegistry {
                 new MobDrop(new ItemStack(Blocks.WOOL), 1.0F, 1, 1)
             }
         );
-        register(CowMob.class,
+        register(MobCow.class,
             "guidebook.section.mob.cow.name",
             "guidebook.section.mob.cow.desc",
             10,
@@ -57,7 +56,7 @@ public abstract class MobInfoRegistry {
                 new MobDrop(new ItemStack(Items.LEATHER), 1.0F, 1, 5)
             }
         );
-        register(ChickenMob.class,
+        register(MobChicken.class,
             "guidebook.section.mob.chicken.name",
             "guidebook.section.mob.chicken.desc",
             4,
@@ -66,7 +65,7 @@ public abstract class MobInfoRegistry {
                 new MobDrop(new ItemStack(Items.FEATHER_CHICKEN), 0.66f, 1, 2)
             }
         );
-        register(SquidMob.class,
+        register(MobSquid.class,
             "guidebook.section.mob.squid.name",
             "guidebook.section.mob.squid.desc",
             10,
@@ -75,21 +74,21 @@ public abstract class MobInfoRegistry {
                 new MobDrop(new ItemStack(Items.DYE, 1, 0), 1.0F, 1, 3)
             }
         );
-        register(WolfMob.class,
+        register(MobWolf.class,
             "guidebook.section.mob.wolf.name",
             "guidebook.section.mob.wolf.desc",
             8,
             500,
             null
         );
-        register(FireflyClusterMob.class,
+        register(MobFireflyCluster.class,
             "guidebook.section.mob.firefly_cluster.name",
             "guidebook.section.mob.firefly_cluster.desc",
             -1,
             -1,
             null
         );
-        register(ZombieMob.class,
+        register(MobZombie.class,
             "guidebook.section.mob.zombie.name",
             "guidebook.section.mob.zombie.desc",
             20,
@@ -98,7 +97,7 @@ public abstract class MobInfoRegistry {
                 new MobDrop(new ItemStack(Items.CLOTH), 0.66f, 1, 2)
             }
         );
-        register(ZombieArmoredMob.class,
+        register(MobZombieArmored.class,
             "guidebook.section.mob.armored_zombie.name",
             "guidebook.section.mob.armored_zombie.desc",
             40,
@@ -108,7 +107,7 @@ public abstract class MobInfoRegistry {
                 new MobDrop(new ItemStack(Items.CHAINLINK), 0.8f, 1, 4)
             }
         );
-        register(SnowmanMob.class,
+        register(MobSnowman.class,
             "guidebook.section.mob.snowman.name",
             "guidebook.section.mob.snowman.desc",
             20,
@@ -117,7 +116,7 @@ public abstract class MobInfoRegistry {
                 new MobDrop(new ItemStack(Items.AMMO_SNOWBALL), 0.66f, 1, 2)
             }
         );
-        register(CreeperMob.class,
+        register(MobCreeper.class,
             "guidebook.section.mob.creeper.name",
             "guidebook.section.mob.creeper.desc",
             20,
@@ -126,7 +125,7 @@ public abstract class MobInfoRegistry {
                 new MobDrop(new ItemStack(Items.SULPHUR), 0.66f, 1, 2)
             }
         );
-        register(SkeletonMob.class,
+        register(MobSkeleton.class,
             "guidebook.section.mob.skeleton.name",
             "guidebook.section.mob.skeleton.desc",
             20,
@@ -136,7 +135,7 @@ public abstract class MobInfoRegistry {
                 new MobDrop(new ItemStack(Items.AMMO_ARROW), 0.66f, 1, 2)
             }
         );
-        register(SpiderMob.class,
+        register(MobSpider.class,
             "guidebook.section.mob.spider.name",
             "guidebook.section.mob.spider.desc",
             20,
@@ -145,7 +144,7 @@ public abstract class MobInfoRegistry {
                 new MobDrop(new ItemStack(Items.STRING), 0.66f, 1, 2)
             }
         );
-        register(SlimeMob.class,
+        register(MobSlime.class,
             "guidebook.section.mob.slime.name",
             "guidebook.section.mob.slime.desc",
             -1,
@@ -154,7 +153,7 @@ public abstract class MobInfoRegistry {
                 new MobDrop(new ItemStack(Items.SLIMEBALL), 0.66f, 1, 2)
             }
         );
-        register(GhastMob.class,
+        register(MobGhast.class,
             "guidebook.section.mob.ghast.name",
             "guidebook.section.mob.ghast.desc",
             20,
@@ -163,7 +162,7 @@ public abstract class MobInfoRegistry {
                 new MobDrop(new ItemStack(Items.SULPHUR), 0.66f, 1, 2)
             }
         );
-        register(ZombiePigMob.class,
+        register(MobZombiePig.class,
             "guidebook.section.mob.zombie_pigman.name",
             "guidebook.section.mob.zombie_pigman.desc",
             20,
diff --git a/src/main/java/net/minecraft/client/gui/guidebook/search/SearchPage.java b/src/main/java/net/minecraft/client/gui/guidebook/search/GuidebookPageSearch.java
similarity index 81%
rename from src/main/java/net/minecraft/client/gui/guidebook/search/SearchPage.java
rename to src/main/java/net/minecraft/client/gui/guidebook/search/GuidebookPageSearch.java
index 1a9dd0195..4b3389e5a 100644
--- a/src/main/java/net/minecraft/client/gui/guidebook/search/SearchPage.java
+++ b/src/main/java/net/minecraft/client/gui/guidebook/search/GuidebookPageSearch.java
@@ -8,15 +8,14 @@ import net.minecraft.client.render.Font;
 import net.minecraft.client.render.TextureManager;
 import net.minecraft.core.data.registry.recipe.SearchQuery;
 import net.minecraft.core.lang.I18n;
-import net.minecraft.core.net.command.TextFormatting;
 
-public class SearchPage extends GuidebookPage {
+public class GuidebookPageSearch extends GuidebookPage {
 
-    public static final TextFieldElement searchField = new TextFieldElement(null, Minecraft.getMinecraft(SearchPage.class).font,0,0,120,20,"","Search...");
+    public static final TextFieldElement searchField = new TextFieldElement(null, Minecraft.getMinecraft(GuidebookPageSearch.class).font,0,0,120,20,"","Search...");
     public final ButtonElement searchClearButton = new ButtonElement(0,0,0,20,20,"X");
-    private final Minecraft mc = Minecraft.getMinecraft(SearchPage.class);
+    private final Minecraft mc = Minecraft.getMinecraft(GuidebookPageSearch.class);
 
-    public SearchPage(GuidebookSection section) {
+    public GuidebookPageSearch(GuidebookSection section) {
         super(section);
     }
 
@@ -30,7 +29,7 @@ public class SearchPage extends GuidebookPage {
         searchClearButton.drawButton(mc,mouseX,mouseY);
 
         int results = 0;
-        for (GuidebookPage page : GuidebookScreen.getPageManager().getPages()) {
+        for (GuidebookPage page : ScreenGuidebook.getPageManager().getPages()) {
             if (page instanceof RecipePage) {
                 results += ((RecipePage<?>) page).recipes.size();
             }
@@ -73,13 +72,13 @@ public class SearchPage extends GuidebookPage {
         super.onMouseDown(x, y, mouseX, mouseY, button);
         searchField.mouseClicked(mouseX,mouseY,button);
         if(searchField.isFocused){
-            PageManager.searchQuery = SearchQuery.resolve(searchField.getText());
-            GuidebookScreen.getPageManager().updatePages();
+            GuidebookPageManager.searchQuery = SearchQuery.resolve(searchField.getText());
+            ScreenGuidebook.getPageManager().updatePages();
         }
         if(searchClearButton.mouseClicked(mc,mouseX,mouseY)){
             searchField.setText("");
-            PageManager.searchQuery = SearchQuery.resolve(searchField.getText());
-            GuidebookScreen.getPageManager().updatePages();
+            GuidebookPageManager.searchQuery = SearchQuery.resolve(searchField.getText());
+            ScreenGuidebook.getPageManager().updatePages();
         }
     }
 
@@ -87,8 +86,8 @@ public class SearchPage extends GuidebookPage {
     public boolean keyTyped(char c, int key, int x, int y, int mouseX, int mouseY) {
         if(searchField.isFocused) {
             searchField.textboxKeyTyped(c, key);
-            PageManager.searchQuery = SearchQuery.resolve(searchField.getText());
-            GuidebookScreen.getPageManager().updatePages();
+            GuidebookPageManager.searchQuery = SearchQuery.resolve(searchField.getText());
+            ScreenGuidebook.getPageManager().updatePages();
             return true;
         }
         return false;
diff --git a/src/main/java/net/minecraft/client/gui/guidebook/search/SearchSection.java b/src/main/java/net/minecraft/client/gui/guidebook/search/GuidebookSectionSearch.java
similarity index 83%
rename from src/main/java/net/minecraft/client/gui/guidebook/search/SearchSection.java
rename to src/main/java/net/minecraft/client/gui/guidebook/search/GuidebookSectionSearch.java
index 78ec495d9..0c9d9d14e 100644
--- a/src/main/java/net/minecraft/client/gui/guidebook/search/SearchSection.java
+++ b/src/main/java/net/minecraft/client/gui/guidebook/search/GuidebookSectionSearch.java
@@ -2,20 +2,19 @@ package net.minecraft.client.gui.guidebook.search;
 
 import net.minecraft.client.gui.guidebook.GuidebookPage;
 import net.minecraft.client.gui.guidebook.GuidebookSection;
-import net.minecraft.core.block.Block;
 import net.minecraft.core.block.Blocks;
 import net.minecraft.core.item.ItemStack;
 
 import java.util.ArrayList;
 import java.util.List;
 
-public class SearchSection
+public class GuidebookSectionSearch
     extends GuidebookSection {
     private final List<GuidebookPage> pages = new ArrayList<>();
 
-    public SearchSection() {
+    public GuidebookSectionSearch() {
         super("guidebook.section.search", new ItemStack(Blocks.GLASS), 0x808080,0xFFFFFF);
-        pages.add(new SearchPage(this));
+        pages.add(new GuidebookPageSearch(this));
     }
 
     @Override
diff --git a/src/main/java/net/minecraft/client/gui/guidebook/smelting/BlastSmeltingSection.java b/src/main/java/net/minecraft/client/gui/guidebook/smelting/GuidebookSectionBlastSmelting.java
similarity index 77%
rename from src/main/java/net/minecraft/client/gui/guidebook/smelting/BlastSmeltingSection.java
rename to src/main/java/net/minecraft/client/gui/guidebook/smelting/GuidebookSectionBlastSmelting.java
index 81122257f..00329c65c 100644
--- a/src/main/java/net/minecraft/client/gui/guidebook/smelting/BlastSmeltingSection.java
+++ b/src/main/java/net/minecraft/client/gui/guidebook/smelting/GuidebookSectionBlastSmelting.java
@@ -2,7 +2,7 @@ package net.minecraft.client.gui.guidebook.smelting;
 
 import net.minecraft.client.gui.guidebook.GuidebookPage;
 import net.minecraft.client.gui.guidebook.SearchableGuidebookSection;
-import net.minecraft.client.gui.guidebook.crafting.CraftingPage;
+import net.minecraft.client.gui.guidebook.crafting.RecipePageCrafting;
 import net.minecraft.core.data.registry.recipe.SearchQuery;
 import net.minecraft.core.data.registry.recipe.entry.RecipeEntryBlastFurnace;
 import net.minecraft.core.data.registry.Registries;
@@ -14,12 +14,12 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Objects;
 
-public class BlastSmeltingSection
+public class GuidebookSectionBlastSmelting
     extends SearchableGuidebookSection {
     private final List<GuidebookPage> pages = new ArrayList<>();
     private Pair<String,List<GuidebookPage>> filteredPages = null;
 
-    public BlastSmeltingSection(String translationKey, ItemStack tabIcon, int bgColor, int fgColor) {
+    public GuidebookSectionBlastSmelting(String translationKey, ItemStack tabIcon, int bgColor, int fgColor) {
         super(translationKey, tabIcon, bgColor, fgColor);
         reloadRecipes();
     }
@@ -29,11 +29,11 @@ public class BlastSmeltingSection
         List<RecipeEntryBlastFurnace> allRecipes = new ArrayList<>(Registries.RECIPES.getAllBlastFurnaceRecipes());
         allRecipes.removeIf(Objects::isNull);
         int totalRecipes = allRecipes.size();
-        int totalPages = MathHelper.ceilInt(totalRecipes, SmeltingPage.RECIPES_PER_PAGE);
+        int totalPages = MathHelper.ceilInt(totalRecipes, RecipePageSmelting.RECIPES_PER_PAGE);
         for (int i = 0; i < totalPages; i++) {
-            int j = i*SmeltingPage.RECIPES_PER_PAGE;
-            ArrayList<RecipeEntryBlastFurnace> recipes = new ArrayList<>(allRecipes.subList(Math.min(j, totalRecipes),Math.min(j+SmeltingPage.RECIPES_PER_PAGE, totalRecipes)));
-            pages.add(new BlastSmeltingPage(this,recipes));
+            int j = i* RecipePageSmelting.RECIPES_PER_PAGE;
+            ArrayList<RecipeEntryBlastFurnace> recipes = new ArrayList<>(allRecipes.subList(Math.min(j, totalRecipes),Math.min(j+ RecipePageSmelting.RECIPES_PER_PAGE, totalRecipes)));
+            pages.add(new RecipePageBlastSmelting(this,recipes));
         }
     }
 
@@ -50,12 +50,12 @@ public class BlastSmeltingSection
             }
             ArrayList<GuidebookPage> filteredPages = new ArrayList<>();
             int filteredRecipeSize = filteredRecipes.size();
-            int filteredPageCount = MathHelper.ceilInt(filteredRecipeSize, CraftingPage.RECIPES_PER_PAGE);
+            int filteredPageCount = MathHelper.ceilInt(filteredRecipeSize, RecipePageCrafting.RECIPES_PER_PAGE);
             for (int i = 0; i < filteredPageCount; i++) {
-                int j = i * BlastSmeltingPage.RECIPES_PER_PAGE;
-                ArrayList<RecipeEntryBlastFurnace> recipes = new ArrayList<>(filteredRecipes.subList(Math.min(j, filteredRecipeSize), Math.min(j + BlastSmeltingPage.RECIPES_PER_PAGE, filteredRecipeSize)));
+                int j = i * RecipePageBlastSmelting.RECIPES_PER_PAGE;
+                ArrayList<RecipeEntryBlastFurnace> recipes = new ArrayList<>(filteredRecipes.subList(Math.min(j, filteredRecipeSize), Math.min(j + RecipePageBlastSmelting.RECIPES_PER_PAGE, filteredRecipeSize)));
                 if (!recipes.isEmpty()) {
-                    filteredPages.add(new BlastSmeltingPage(this, recipes));
+                    filteredPages.add(new RecipePageBlastSmelting(this, recipes));
                 }
             }
             this.filteredPages = Pair.of(query.rawQuery, filteredPages);
diff --git a/src/main/java/net/minecraft/client/gui/guidebook/smelting/SmeltingSection.java b/src/main/java/net/minecraft/client/gui/guidebook/smelting/GuidebookSectionSmelting.java
similarity index 76%
rename from src/main/java/net/minecraft/client/gui/guidebook/smelting/SmeltingSection.java
rename to src/main/java/net/minecraft/client/gui/guidebook/smelting/GuidebookSectionSmelting.java
index 0cfd331e0..2a714225b 100644
--- a/src/main/java/net/minecraft/client/gui/guidebook/smelting/SmeltingSection.java
+++ b/src/main/java/net/minecraft/client/gui/guidebook/smelting/GuidebookSectionSmelting.java
@@ -2,7 +2,7 @@ package net.minecraft.client.gui.guidebook.smelting;
 
 import net.minecraft.client.gui.guidebook.GuidebookPage;
 import net.minecraft.client.gui.guidebook.SearchableGuidebookSection;
-import net.minecraft.client.gui.guidebook.crafting.CraftingPage;
+import net.minecraft.client.gui.guidebook.crafting.RecipePageCrafting;
 import net.minecraft.core.data.registry.recipe.SearchQuery;
 import net.minecraft.core.data.registry.recipe.entry.RecipeEntryFurnace;
 import net.minecraft.core.data.registry.Registries;
@@ -14,12 +14,12 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Objects;
 
-public class SmeltingSection
+public class GuidebookSectionSmelting
     extends SearchableGuidebookSection {
     private final List<GuidebookPage> pages = new ArrayList<>();
     private Pair<String,List<GuidebookPage>> filteredPages = null;
 
-    public SmeltingSection(String translationKey, ItemStack tabIcon, int bgColor, int fgColor) {
+    public GuidebookSectionSmelting(String translationKey, ItemStack tabIcon, int bgColor, int fgColor) {
         super(translationKey, tabIcon, bgColor, fgColor);
         reloadRecipes();
     }
@@ -37,12 +37,12 @@ public class SmeltingSection
             }
             ArrayList<GuidebookPage> filteredPages = new ArrayList<>();
             int filteredRecipeSize = filteredRecipes.size();
-            int filteredPageCount = MathHelper.ceilInt(filteredRecipeSize, CraftingPage.RECIPES_PER_PAGE);
+            int filteredPageCount = MathHelper.ceilInt(filteredRecipeSize, RecipePageCrafting.RECIPES_PER_PAGE);
             for (int i = 0; i < filteredPageCount; i++) {
-                int j = i * SmeltingPage.RECIPES_PER_PAGE;
-                ArrayList<RecipeEntryFurnace> recipes = new ArrayList<>(filteredRecipes.subList(Math.min(j, filteredRecipeSize), Math.min(j + SmeltingPage.RECIPES_PER_PAGE, filteredRecipeSize)));
+                int j = i * RecipePageSmelting.RECIPES_PER_PAGE;
+                ArrayList<RecipeEntryFurnace> recipes = new ArrayList<>(filteredRecipes.subList(Math.min(j, filteredRecipeSize), Math.min(j + RecipePageSmelting.RECIPES_PER_PAGE, filteredRecipeSize)));
                 if (recipes.size() > 0) {
-                    filteredPages.add(new SmeltingPage(this, recipes));
+                    filteredPages.add(new RecipePageSmelting(this, recipes));
                 }
             }
             this.filteredPages = Pair.of(query.rawQuery, filteredPages);
@@ -57,11 +57,11 @@ public class SmeltingSection
         List<RecipeEntryFurnace> allRecipes = new ArrayList<>(Registries.RECIPES.getAllFurnaceRecipes());
         allRecipes.removeIf(Objects::isNull);
         int totalRecipes = allRecipes.size();
-        int totalPages = MathHelper.ceilInt(totalRecipes, SmeltingPage.RECIPES_PER_PAGE);
+        int totalPages = MathHelper.ceilInt(totalRecipes, RecipePageSmelting.RECIPES_PER_PAGE);
         for (int i = 0; i < totalPages; i++) {
-            int j = i*SmeltingPage.RECIPES_PER_PAGE;
-            ArrayList<RecipeEntryFurnace> recipes = new ArrayList<>(allRecipes.subList(Math.min(j, totalRecipes),Math.min(j+SmeltingPage.RECIPES_PER_PAGE,totalRecipes)));
-            pages.add(new SmeltingPage(this,recipes));
+            int j = i* RecipePageSmelting.RECIPES_PER_PAGE;
+            ArrayList<RecipeEntryFurnace> recipes = new ArrayList<>(allRecipes.subList(Math.min(j, totalRecipes),Math.min(j+ RecipePageSmelting.RECIPES_PER_PAGE,totalRecipes)));
+            pages.add(new RecipePageSmelting(this,recipes));
         }
     }
 
diff --git a/src/main/java/net/minecraft/client/gui/guidebook/smelting/BlastSmeltingPage.java b/src/main/java/net/minecraft/client/gui/guidebook/smelting/RecipePageBlastSmelting.java
similarity index 75%
rename from src/main/java/net/minecraft/client/gui/guidebook/smelting/BlastSmeltingPage.java
rename to src/main/java/net/minecraft/client/gui/guidebook/smelting/RecipePageBlastSmelting.java
index e96a029d4..457ad2004 100644
--- a/src/main/java/net/minecraft/client/gui/guidebook/smelting/BlastSmeltingPage.java
+++ b/src/main/java/net/minecraft/client/gui/guidebook/smelting/RecipePageBlastSmelting.java
@@ -3,13 +3,13 @@ package net.minecraft.client.gui.guidebook.smelting;
 import net.minecraft.client.Minecraft;
 import net.minecraft.client.gui.ItemElement;
 import net.minecraft.client.gui.TooltipElement;
-import net.minecraft.client.gui.guidebook.GuidebookScreen;
+import net.minecraft.client.gui.guidebook.GuidebookPageManager;
+import net.minecraft.client.gui.guidebook.ScreenGuidebook;
 import net.minecraft.client.gui.guidebook.GuidebookPage;
 import net.minecraft.client.gui.guidebook.GuidebookSection;
 import net.minecraft.client.gui.guidebook.GuidebookSections;
-import net.minecraft.client.gui.guidebook.PageManager;
 import net.minecraft.client.gui.guidebook.RecipePage;
-import net.minecraft.client.gui.guidebook.search.SearchPage;
+import net.minecraft.client.gui.guidebook.search.GuidebookPageSearch;
 import net.minecraft.client.render.Font;
 import net.minecraft.client.render.TextureManager;
 import net.minecraft.core.achievement.Achievements;
@@ -19,7 +19,7 @@ import net.minecraft.core.data.registry.recipe.entry.RecipeEntryBlastFurnace;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.lang.I18n;
 import net.minecraft.core.player.inventory.slot.Slot;
-import net.minecraft.client.gui.guidebook.GuidebookSlot;
+import net.minecraft.client.gui.guidebook.SlotGuidebook;
 import org.lwjgl.input.Keyboard;
 import org.lwjgl.opengl.GL11;
 
@@ -28,17 +28,17 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-public class BlastSmeltingPage
+public class RecipePageBlastSmelting
     extends RecipePage<RecipeEntryBlastFurnace> {
     public static final int RECIPES_PER_PAGE = 6;
-    public List<GuidebookSlot> slots;
-    public Map<RecipeEntryBlastFurnace,List<GuidebookSlot>> map;
+    public List<SlotGuidebook> slots;
+    public Map<RecipeEntryBlastFurnace,List<SlotGuidebook>> map;
     private final TooltipElement tooltipElement;
     private final ItemElement itemElement;
     private static final Minecraft mc = Minecraft.getMinecraft(GuidebookPage.class);
     private static Player player;
     private static long ticks = 0;
-    public BlastSmeltingPage(GuidebookSection section, ArrayList<RecipeEntryBlastFurnace> recipes) {
+    public RecipePageBlastSmelting(GuidebookSection section, ArrayList<RecipeEntryBlastFurnace> recipes) {
         super(section);
         this.recipes = recipes;
         this.slots = new ArrayList<>();
@@ -49,9 +49,9 @@ public class BlastSmeltingPage
         itemElement = new ItemElement(mc);
 
         for (RecipeEntryBlastFurnace recipe : recipes) {
-            List<GuidebookSlot> recipeSlots = new ArrayList<>();
-            recipeSlots.add(new GuidebookSlot(0, (width/2)-32, 32*(map.size()+1)-16, recipe.getInput(), false,recipe));
-            recipeSlots.add(new GuidebookSlot(1, (width/2)+24, 32*(map.size()+1)-16, new RecipeSymbol(recipe.getOutput()), false,recipe));
+            List<SlotGuidebook> recipeSlots = new ArrayList<>();
+            recipeSlots.add(new SlotGuidebook(0, (width/2)-32, 32*(map.size()+1)-16, recipe.getInput(), false,recipe));
+            recipeSlots.add(new SlotGuidebook(1, (width/2)+24, 32*(map.size()+1)-16, new RecipeSymbol(recipe.getOutput()), false,recipe));
             map.put(recipe,recipeSlots);
             slots.addAll(recipeSlots);
         }
@@ -60,7 +60,7 @@ public class BlastSmeltingPage
     @Override
     public void onTick() {
         ticks++;
-        for (GuidebookSlot slot : slots) {
+        for (SlotGuidebook slot : slots) {
             if(ticks > 20) {
                 slot.showRandomItem();
                 if(slots.get(slots.size()-1) == slot){
@@ -75,8 +75,8 @@ public class BlastSmeltingPage
         if(recipes.isEmpty()){
             drawStringCenteredNoShadow(fr, I18n.getInstance().translateKey("guidebook.section.search.error.no_recipes") ,x+width/2,y+height/2,0xFF808080);
         }
-        GuidebookSlot mouseOverSlot = null;
-        for (GuidebookSlot slot : slots) {
+        SlotGuidebook mouseOverSlot = null;
+        for (SlotGuidebook slot : slots) {
             drawSlot(x+slot.x -1,y+slot.y -1,0xFFFFFFFF);
             if(getIsMouseOverSlot(slot,x,y,mouseX,mouseY)) mouseOverSlot = slot;
             itemElement.render(slot.getItem(),x+slot.x,y+slot.y,mouseOverSlot == slot,slot);
@@ -92,32 +92,32 @@ public class BlastSmeltingPage
     public boolean keyTyped(char c, int key, int x, int y, int mouseX, int mouseY) {
         super.keyTyped(c, key, x, y, mouseX, mouseY);
         if(mc.gameSettings.keyShowRecipe.isKeyboardKey(key)){
-            GuidebookSlot hoveringSlot= null;
-            for (GuidebookSlot slot : slots) {
+            SlotGuidebook hoveringSlot= null;
+            for (SlotGuidebook slot : slots) {
                 if(getIsMouseOverSlot(slot,x,y,mouseX,mouseY)) hoveringSlot = slot;
             }
             if(hoveringSlot != null){
                 if(hoveringSlot.hasItem()){
                     String query = "r:"+hoveringSlot.getItem().getDisplayName()+"!";
-                    PageManager.searchQuery = SearchQuery.resolve(query);
-                    SearchPage.searchField.setText(query);
-                    GuidebookScreen.getPageManager().updatePages();
-                    GuidebookScreen.getPageManager().setCurrentPage(GuidebookScreen.getPageManager().getSectionIndex(GuidebookSections.CRAFTING), true);
+                    GuidebookPageManager.searchQuery = SearchQuery.resolve(query);
+                    GuidebookPageSearch.searchField.setText(query);
+                    ScreenGuidebook.getPageManager().updatePages();
+                    ScreenGuidebook.getPageManager().setCurrentPage(ScreenGuidebook.getPageManager().getSectionIndex(GuidebookSections.CRAFTING), true);
                     return true;
                 }
             }
         } else if (mc.gameSettings.keyShowUsage.isKeyboardKey(key)) {
-            GuidebookSlot hoveringSlot= null;
-            for (GuidebookSlot slot : slots) {
+            SlotGuidebook hoveringSlot= null;
+            for (SlotGuidebook slot : slots) {
                 if(getIsMouseOverSlot(slot,x,y,mouseX,mouseY)) hoveringSlot = slot;
             }
             if(hoveringSlot != null) {
                 if (hoveringSlot.hasItem()) {
                     String query = "u:" + hoveringSlot.getItem().getDisplayName() + "!";
-                    PageManager.searchQuery = SearchQuery.resolve(query);
-                    SearchPage.searchField.setText(query);
-                    GuidebookScreen.getPageManager().updatePages();
-                    GuidebookScreen.getPageManager().setCurrentPage(GuidebookScreen.getPageManager().getSectionIndex(GuidebookSections.CRAFTING), true);
+                    GuidebookPageManager.searchQuery = SearchQuery.resolve(query);
+                    GuidebookPageSearch.searchField.setText(query);
+                    ScreenGuidebook.getPageManager().updatePages();
+                    ScreenGuidebook.getPageManager().setCurrentPage(ScreenGuidebook.getPageManager().getSectionIndex(GuidebookSections.CRAFTING), true);
                     return true;
                 }
             }
@@ -137,7 +137,7 @@ public class BlastSmeltingPage
         re.bindTexture(re.loadTexture("/assets/minecraft/textures/gui/container/guidebook/guidebook.png"));
         for (int i = 1; i <= recipes.size(); i++) {
             RecipeEntryBlastFurnace recipe = recipes.get(i-1);
-            List<GuidebookSlot> list = map.get(recipe);
+            List<SlotGuidebook> list = map.get(recipe);
             drawTexturedModalRect(x + list.get(list.size()-1).x - 32, y +  list.get(list.size()-1).y, 234, 0, 22, 15);
         }
     }
@@ -145,8 +145,8 @@ public class BlastSmeltingPage
     @Override
     protected void renderOverlay(TextureManager re, Font fr, int x, int y, int mouseX, int mouseY, float partialTicks) {
         super.renderOverlay(re, fr, x, y, mouseX, mouseY, partialTicks);
-        GuidebookSlot mouseOverSlot = null;
-        for (GuidebookSlot slot : slots) {
+        SlotGuidebook mouseOverSlot = null;
+        for (SlotGuidebook slot : slots) {
             if(getIsMouseOverSlot(slot,x,y,mouseX,mouseY)) mouseOverSlot = slot;
             GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
             if (mouseOverSlot != null && mouseOverSlot.hasItem())
diff --git a/src/main/java/net/minecraft/client/gui/guidebook/smelting/SmeltingPage.java b/src/main/java/net/minecraft/client/gui/guidebook/smelting/RecipePageSmelting.java
similarity index 75%
rename from src/main/java/net/minecraft/client/gui/guidebook/smelting/SmeltingPage.java
rename to src/main/java/net/minecraft/client/gui/guidebook/smelting/RecipePageSmelting.java
index b5d971905..589bc8551 100644
--- a/src/main/java/net/minecraft/client/gui/guidebook/smelting/SmeltingPage.java
+++ b/src/main/java/net/minecraft/client/gui/guidebook/smelting/RecipePageSmelting.java
@@ -3,13 +3,13 @@ package net.minecraft.client.gui.guidebook.smelting;
 import net.minecraft.client.Minecraft;
 import net.minecraft.client.gui.ItemElement;
 import net.minecraft.client.gui.TooltipElement;
-import net.minecraft.client.gui.guidebook.GuidebookScreen;
+import net.minecraft.client.gui.guidebook.GuidebookPageManager;
+import net.minecraft.client.gui.guidebook.ScreenGuidebook;
 import net.minecraft.client.gui.guidebook.GuidebookPage;
 import net.minecraft.client.gui.guidebook.GuidebookSection;
 import net.minecraft.client.gui.guidebook.GuidebookSections;
-import net.minecraft.client.gui.guidebook.PageManager;
 import net.minecraft.client.gui.guidebook.RecipePage;
-import net.minecraft.client.gui.guidebook.search.SearchPage;
+import net.minecraft.client.gui.guidebook.search.GuidebookPageSearch;
 import net.minecraft.client.render.Font;
 import net.minecraft.client.render.TextureManager;
 import net.minecraft.core.achievement.Achievements;
@@ -19,7 +19,7 @@ import net.minecraft.core.data.registry.recipe.entry.RecipeEntryFurnace;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.lang.I18n;
 import net.minecraft.core.player.inventory.slot.Slot;
-import net.minecraft.client.gui.guidebook.GuidebookSlot;
+import net.minecraft.client.gui.guidebook.SlotGuidebook;
 import org.lwjgl.input.Keyboard;
 import org.lwjgl.opengl.GL11;
 
@@ -28,17 +28,17 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-public class SmeltingPage
+public class RecipePageSmelting
     extends RecipePage<RecipeEntryFurnace> {
     public static final int RECIPES_PER_PAGE = 6;
-    public List<GuidebookSlot> slots;
-    public Map<RecipeEntryFurnace,List<GuidebookSlot>> map;
+    public List<SlotGuidebook> slots;
+    public Map<RecipeEntryFurnace,List<SlotGuidebook>> map;
     private final TooltipElement tooltipElement;
     private final ItemElement itemElement;
     private static final Minecraft mc = Minecraft.getMinecraft(GuidebookPage.class);
     private static Player player;
     private static long ticks = 0;
-    public SmeltingPage(GuidebookSection section, ArrayList<RecipeEntryFurnace> recipes) {
+    public RecipePageSmelting(GuidebookSection section, ArrayList<RecipeEntryFurnace> recipes) {
         super(section);
         this.recipes = recipes;
         this.slots = new ArrayList<>();
@@ -49,9 +49,9 @@ public class SmeltingPage
         itemElement = new ItemElement(mc);
 
         for (RecipeEntryFurnace recipe : recipes) {
-            List<GuidebookSlot> recipeSlots = new ArrayList<>();
-            recipeSlots.add(new GuidebookSlot(0, (width/2)-32, 32*(map.size()+1)-16, recipe.getInput(), false,recipe));
-            recipeSlots.add(new GuidebookSlot(1, (width/2)+24, 32*(map.size()+1)-16, new RecipeSymbol(recipe.getOutput()), false,recipe));
+            List<SlotGuidebook> recipeSlots = new ArrayList<>();
+            recipeSlots.add(new SlotGuidebook(0, (width/2)-32, 32*(map.size()+1)-16, recipe.getInput(), false,recipe));
+            recipeSlots.add(new SlotGuidebook(1, (width/2)+24, 32*(map.size()+1)-16, new RecipeSymbol(recipe.getOutput()), false,recipe));
             map.put(recipe,recipeSlots);
             slots.addAll(recipeSlots);
         }
@@ -60,7 +60,7 @@ public class SmeltingPage
     @Override
     public void onTick() {
         ticks++;
-        for (GuidebookSlot slot : slots) {
+        for (SlotGuidebook slot : slots) {
             if(ticks > 20) {
                 slot.showRandomItem();
                 if(slots.get(slots.size()-1) == slot){
@@ -75,8 +75,8 @@ public class SmeltingPage
         if(recipes.isEmpty()){
             drawStringCenteredNoShadow(fr, I18n.getInstance().translateKey("guidebook.section.search.error.no_recipes") ,x+width/2,y+height/2,0xFF808080);
         }
-        GuidebookSlot mouseOverSlot = null;
-        for (GuidebookSlot slot : slots) {
+        SlotGuidebook mouseOverSlot = null;
+        for (SlotGuidebook slot : slots) {
             drawSlot(x+slot.x -1,y+slot.y -1,0xFFFFFFFF);
             if(getIsMouseOverSlot(slot,x,y,mouseX,mouseY)) mouseOverSlot = slot;
             itemElement.render(slot.getItem(),x+slot.x,y+slot.y,mouseOverSlot == slot,slot);
@@ -92,32 +92,32 @@ public class SmeltingPage
     public boolean keyTyped(char c, int key, int x, int y, int mouseX, int mouseY) {
         super.keyTyped(c, key, x, y, mouseX, mouseY);
         if(mc.gameSettings.keyShowRecipe.isKeyboardKey(key)){
-            GuidebookSlot hoveringSlot= null;
-            for (GuidebookSlot slot : slots) {
+            SlotGuidebook hoveringSlot= null;
+            for (SlotGuidebook slot : slots) {
                 if(getIsMouseOverSlot(slot,x,y,mouseX,mouseY)) hoveringSlot = slot;
             }
             if(hoveringSlot != null){
                 if(hoveringSlot.hasItem()){
                     String query = "r:"+hoveringSlot.getItem().getDisplayName()+"!";
-                    PageManager.searchQuery = SearchQuery.resolve(query);
-                    SearchPage.searchField.setText(query);
-                    GuidebookScreen.getPageManager().updatePages();
-                    GuidebookScreen.getPageManager().setCurrentPage(GuidebookScreen.getPageManager().getSectionIndex(GuidebookSections.CRAFTING), true);
+                    GuidebookPageManager.searchQuery = SearchQuery.resolve(query);
+                    GuidebookPageSearch.searchField.setText(query);
+                    ScreenGuidebook.getPageManager().updatePages();
+                    ScreenGuidebook.getPageManager().setCurrentPage(ScreenGuidebook.getPageManager().getSectionIndex(GuidebookSections.CRAFTING), true);
                     return true;
                 }
             }
         } else if (mc.gameSettings.keyShowUsage.isKeyboardKey(key)) {
-            GuidebookSlot hoveringSlot= null;
-            for (GuidebookSlot slot : slots) {
+            SlotGuidebook hoveringSlot= null;
+            for (SlotGuidebook slot : slots) {
                 if(getIsMouseOverSlot(slot,x,y,mouseX,mouseY)) hoveringSlot = slot;
             }
             if(hoveringSlot != null) {
                 if (hoveringSlot.hasItem()) {
                     String query = "u:" + hoveringSlot.getItem().getDisplayName() + "!";
-                    PageManager.searchQuery = SearchQuery.resolve(query);
-                    SearchPage.searchField.setText(query);
-                    GuidebookScreen.getPageManager().updatePages();
-                    GuidebookScreen.getPageManager().setCurrentPage(GuidebookScreen.getPageManager().getSectionIndex(GuidebookSections.CRAFTING), true);
+                    GuidebookPageManager.searchQuery = SearchQuery.resolve(query);
+                    GuidebookPageSearch.searchField.setText(query);
+                    ScreenGuidebook.getPageManager().updatePages();
+                    ScreenGuidebook.getPageManager().setCurrentPage(ScreenGuidebook.getPageManager().getSectionIndex(GuidebookSections.CRAFTING), true);
                     return true;
                 }
             }
@@ -137,7 +137,7 @@ public class SmeltingPage
         re.bindTexture(re.loadTexture("/assets/minecraft/textures/gui/container/guidebook/guidebook.png"));
         for (int i = 1; i <= recipes.size(); i++) {
             RecipeEntryFurnace recipe = recipes.get(i-1);
-            List<GuidebookSlot> list = map.get(recipe);
+            List<SlotGuidebook> list = map.get(recipe);
             drawTexturedModalRect(x + list.get(list.size()-1).x - 32, y +  list.get(list.size()-1).y, 234, 0, 22, 15);
         }
     }
@@ -145,8 +145,8 @@ public class SmeltingPage
     @Override
     protected void renderOverlay(TextureManager re, Font fr, int x, int y, int mouseX, int mouseY, float partialTicks) {
         super.renderOverlay(re, fr, x, y, mouseX, mouseY, partialTicks);
-        GuidebookSlot mouseOverSlot = null;
-        for (GuidebookSlot slot : slots) {
+        SlotGuidebook mouseOverSlot = null;
+        for (SlotGuidebook slot : slots) {
             if(getIsMouseOverSlot(slot,x,y,mouseX,mouseY)) mouseOverSlot = slot;
             GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
             if (mouseOverSlot != null && mouseOverSlot.hasItem())
diff --git a/src/main/java/net/minecraft/client/gui/guidebook/trommeling/TrommelSection.java b/src/main/java/net/minecraft/client/gui/guidebook/trommeling/GuidebookSectionTrommel.java
similarity index 76%
rename from src/main/java/net/minecraft/client/gui/guidebook/trommeling/TrommelSection.java
rename to src/main/java/net/minecraft/client/gui/guidebook/trommeling/GuidebookSectionTrommel.java
index 8b4f7f31a..f60bdfa02 100644
--- a/src/main/java/net/minecraft/client/gui/guidebook/trommeling/TrommelSection.java
+++ b/src/main/java/net/minecraft/client/gui/guidebook/trommeling/GuidebookSectionTrommel.java
@@ -2,7 +2,7 @@ package net.minecraft.client.gui.guidebook.trommeling;
 
 import net.minecraft.client.gui.guidebook.GuidebookPage;
 import net.minecraft.client.gui.guidebook.SearchableGuidebookSection;
-import net.minecraft.client.gui.guidebook.crafting.CraftingPage;
+import net.minecraft.client.gui.guidebook.crafting.RecipePageCrafting;
 import net.minecraft.core.data.registry.recipe.SearchQuery;
 import net.minecraft.core.data.registry.recipe.entry.RecipeEntryTrommel;
 import net.minecraft.core.data.registry.Registries;
@@ -14,12 +14,12 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Objects;
 
-public class TrommelSection
+public class GuidebookSectionTrommel
     extends SearchableGuidebookSection {
     private final List<GuidebookPage> pages = new ArrayList<>();
     private Pair<String,List<GuidebookPage>> filteredPages = null;
 
-    public TrommelSection(String translationKey, ItemStack tabIcon, int bgColor, int fgColor) {
+    public GuidebookSectionTrommel(String translationKey, ItemStack tabIcon, int bgColor, int fgColor) {
         super(translationKey, tabIcon, bgColor, fgColor);
         reloadRecipes();
     }
@@ -36,12 +36,12 @@ public class TrommelSection
             }
             ArrayList<GuidebookPage> filteredPages = new ArrayList<>();
             int filteredRecipeSize = filteredRecipes.size();
-            int filteredPageCount = MathHelper.ceilInt(filteredRecipeSize, CraftingPage.RECIPES_PER_PAGE);
+            int filteredPageCount = MathHelper.ceilInt(filteredRecipeSize, RecipePageCrafting.RECIPES_PER_PAGE);
             for (int i = 0; i < filteredPageCount; i++) {
-                int j = i * TrommelPage.RECIPES_PER_PAGE;
-                ArrayList<RecipeEntryTrommel> recipes = new ArrayList<>(filteredRecipes.subList(j, Math.min(Math.min(j, filteredRecipeSize) + TrommelPage.RECIPES_PER_PAGE, filteredRecipeSize)));
+                int j = i * RecipePageTrommel.RECIPES_PER_PAGE;
+                ArrayList<RecipeEntryTrommel> recipes = new ArrayList<>(filteredRecipes.subList(j, Math.min(Math.min(j, filteredRecipeSize) + RecipePageTrommel.RECIPES_PER_PAGE, filteredRecipeSize)));
                 if (recipes.size() > 0) {
-                    filteredPages.add(new TrommelPage(this, recipes));
+                    filteredPages.add(new RecipePageTrommel(this, recipes));
                 }
             }
             this.filteredPages = Pair.of(query.rawQuery, filteredPages);
@@ -55,11 +55,11 @@ public class TrommelSection
         pages.clear();
         List<RecipeEntryTrommel> allRecipes = new ArrayList<>(Registries.RECIPES.getAllTrommelRecipes());
         int totalRecipes = allRecipes.size();
-        int totalPages = MathHelper.ceilInt(totalRecipes, TrommelPage.RECIPES_PER_PAGE);
+        int totalPages = MathHelper.ceilInt(totalRecipes, RecipePageTrommel.RECIPES_PER_PAGE);
         for (int i = 0; i < totalPages; i++) {
-            int j = i* TrommelPage.RECIPES_PER_PAGE;
-            ArrayList<RecipeEntryTrommel> recipes = new ArrayList<>(allRecipes.subList(Math.min(j, totalRecipes),Math.min(j+ TrommelPage.RECIPES_PER_PAGE, totalRecipes)));
-            pages.add(new TrommelPage(this,recipes));
+            int j = i* RecipePageTrommel.RECIPES_PER_PAGE;
+            ArrayList<RecipeEntryTrommel> recipes = new ArrayList<>(allRecipes.subList(Math.min(j, totalRecipes),Math.min(j+ RecipePageTrommel.RECIPES_PER_PAGE, totalRecipes)));
+            pages.add(new RecipePageTrommel(this,recipes));
         }
     }
 
diff --git a/src/main/java/net/minecraft/client/gui/guidebook/trommeling/TrommelPage.java b/src/main/java/net/minecraft/client/gui/guidebook/trommeling/RecipePageTrommel.java
similarity index 80%
rename from src/main/java/net/minecraft/client/gui/guidebook/trommeling/TrommelPage.java
rename to src/main/java/net/minecraft/client/gui/guidebook/trommeling/RecipePageTrommel.java
index cc59a242f..d84e43c28 100644
--- a/src/main/java/net/minecraft/client/gui/guidebook/trommeling/TrommelPage.java
+++ b/src/main/java/net/minecraft/client/gui/guidebook/trommeling/RecipePageTrommel.java
@@ -3,13 +3,13 @@ package net.minecraft.client.gui.guidebook.trommeling;
 import net.minecraft.client.Minecraft;
 import net.minecraft.client.gui.ItemElement;
 import net.minecraft.client.gui.TooltipElement;
-import net.minecraft.client.gui.guidebook.GuidebookScreen;
+import net.minecraft.client.gui.guidebook.GuidebookPageManager;
+import net.minecraft.client.gui.guidebook.ScreenGuidebook;
 import net.minecraft.client.gui.guidebook.GuidebookPage;
 import net.minecraft.client.gui.guidebook.GuidebookSection;
 import net.minecraft.client.gui.guidebook.GuidebookSections;
-import net.minecraft.client.gui.guidebook.PageManager;
 import net.minecraft.client.gui.guidebook.RecipePage;
-import net.minecraft.client.gui.guidebook.search.SearchPage;
+import net.minecraft.client.gui.guidebook.search.GuidebookPageSearch;
 import net.minecraft.client.render.Font;
 import net.minecraft.client.render.TextureManager;
 import net.minecraft.core.WeightedRandomBag;
@@ -22,7 +22,7 @@ import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.lang.I18n;
 import net.minecraft.core.player.inventory.slot.Slot;
-import net.minecraft.client.gui.guidebook.GuidebookSlot;
+import net.minecraft.client.gui.guidebook.SlotGuidebook;
 import org.lwjgl.input.Keyboard;
 import org.lwjgl.opengl.GL11;
 
@@ -31,11 +31,11 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-public class TrommelPage
+public class RecipePageTrommel
     extends RecipePage<RecipeEntryTrommel> {
     public static final int RECIPES_PER_PAGE = 3;
-    public List<GuidebookSlot> slots;
-    public Map<RecipeEntryTrommel,List<GuidebookSlot>> map;
+    public List<SlotGuidebook> slots;
+    public Map<RecipeEntryTrommel,List<SlotGuidebook>> map;
     private final TooltipElement tooltipElement;
     private final ItemElement itemElement;
     private static final Minecraft mc = Minecraft.getMinecraft(GuidebookPage.class);
@@ -43,7 +43,7 @@ public class TrommelPage
     private static long ticks = 0;
     private static long ticks2 = 0;
 
-    public TrommelPage(GuidebookSection section, List<RecipeEntryTrommel> recipes) {
+    public RecipePageTrommel(GuidebookSection section, List<RecipeEntryTrommel> recipes) {
         super(section);
         this.recipes = recipes;
         this.slots = new ArrayList<>();
@@ -55,21 +55,21 @@ public class TrommelPage
         int recipeAmount = 0;
         int yOffset = 8;
         for (RecipeEntryTrommel recipe : recipes) {
-            List<GuidebookSlot> recipeSlots = new ArrayList<>();
+            List<SlotGuidebook> recipeSlots = new ArrayList<>();
             int slotsAmount = 10;
 
             for (int i = 0; i < slotsAmount - 1; i++)
             {
                 if(recipe.getOutput().getEntries().size() > i){
                     ItemStack stack = recipe.getOutput().getEntries().get(i).getItemStack();
-                    recipeSlots.add(new GuidebookSlot(i, 81 + 20 * (i % 3), 1 + 20 * ((i / 3)+recipeAmount*3) + yOffset, new RecipeSymbol(stack), false,recipe).setAsOutput());
+                    recipeSlots.add(new SlotGuidebook(i, 81 + 20 * (i % 3), 1 + 20 * ((i / 3)+recipeAmount*3) + yOffset, new RecipeSymbol(stack), false,recipe).setAsOutput());
                 } else {
-                    recipeSlots.add(new GuidebookSlot(i, 81 + 20 * (i % 3), 1 + 20 * ((i / 3)+recipeAmount*3) + yOffset, null, false,recipe).setAsOutput());
+                    recipeSlots.add(new SlotGuidebook(i, 81 + 20 * (i % 3), 1 + 20 * ((i / 3)+recipeAmount*3) + yOffset, null, false,recipe).setAsOutput());
                 }
             }
 
             int centerY = (recipeSlots.get(recipeSlots.size()-1).y + recipeSlots.get(recipeSlots.size()-8).y) / 2;
-            recipeSlots.add(new GuidebookSlot(slotsAmount - 1, 19, centerY,recipe.getInput(), false,recipe));
+            recipeSlots.add(new SlotGuidebook(slotsAmount - 1, 19, centerY,recipe.getInput(), false,recipe));
 
             map.put(recipe,recipeSlots);
             slots.addAll(recipeSlots);
@@ -82,7 +82,7 @@ public class TrommelPage
     @Override
     public void onTick() {
         ticks++;
-        for (GuidebookSlot slot : slots) {
+        for (SlotGuidebook slot : slots) {
             if(ticks > 20) {
                 slot.showRandomItem();
                 if(slots.get(slots.size()-1) == slot){
@@ -94,7 +94,7 @@ public class TrommelPage
         ticks2++;
         if(ticks2 > 25) {
             ticks2 = 0;
-            for (GuidebookSlot slot : slots) {
+            for (SlotGuidebook slot : slots) {
                 if (slot.recipe instanceof RecipeEntryTrommel) {
                     RecipeSymbol input = (RecipeSymbol) slot.recipe.getInput();
                     if (!input.matches(slot.getItem())) {
@@ -124,8 +124,8 @@ public class TrommelPage
         if(recipes.isEmpty()){
             drawStringCenteredNoShadow(fr, I18n.getInstance().translateKey("guidebook.section.search.error.no_recipes") ,x+width/2,y+height/2,0xFF808080);
         }
-        GuidebookSlot mouseOverSlot = null;
-        for (GuidebookSlot slot : slots) {
+        SlotGuidebook mouseOverSlot = null;
+        for (SlotGuidebook slot : slots) {
             drawSlot(x+slot.x -1,y+slot.y -1,0xFFFFFFFF);
             if(getIsMouseOverSlot(slot,x,y,mouseX,mouseY)) mouseOverSlot = slot;
             itemElement.render(slot.getItem(),x+slot.x,y+slot.y,mouseOverSlot == slot,slot);
@@ -141,32 +141,32 @@ public class TrommelPage
     public boolean keyTyped(char c, int key, int x, int y, int mouseX, int mouseY) {
         super.keyTyped(c, key, x, y, mouseX, mouseY);
         if(mc.gameSettings.keyShowRecipe.isKeyboardKey(key)){
-            GuidebookSlot hoveringSlot= null;
-            for (GuidebookSlot slot : slots) {
+            SlotGuidebook hoveringSlot= null;
+            for (SlotGuidebook slot : slots) {
                 if(getIsMouseOverSlot(slot,x,y,mouseX,mouseY)) hoveringSlot = slot;
             }
             if(hoveringSlot != null){
                 if(hoveringSlot.hasItem()){
                     String query = "r:"+hoveringSlot.getItem().getDisplayName()+"!";
-                    PageManager.searchQuery = SearchQuery.resolve(query);
-                    SearchPage.searchField.setText(query);
-                    GuidebookScreen.getPageManager().updatePages();
-                    GuidebookScreen.getPageManager().setCurrentPage(GuidebookScreen.getPageManager().getSectionIndex(GuidebookSections.CRAFTING), true);
+                    GuidebookPageManager.searchQuery = SearchQuery.resolve(query);
+                    GuidebookPageSearch.searchField.setText(query);
+                    ScreenGuidebook.getPageManager().updatePages();
+                    ScreenGuidebook.getPageManager().setCurrentPage(ScreenGuidebook.getPageManager().getSectionIndex(GuidebookSections.CRAFTING), true);
                     return true;
                 }
             }
         } else if (mc.gameSettings.keyShowUsage.isKeyboardKey(key)) {
-            GuidebookSlot hoveringSlot= null;
-            for (GuidebookSlot slot : slots) {
+            SlotGuidebook hoveringSlot= null;
+            for (SlotGuidebook slot : slots) {
                 if(getIsMouseOverSlot(slot,x,y,mouseX,mouseY)) hoveringSlot = slot;
             }
             if(hoveringSlot != null) {
                 if (hoveringSlot.hasItem()) {
                     String query = "u:" + hoveringSlot.getItem().getDisplayName() + "!";
-                    PageManager.searchQuery = SearchQuery.resolve(query);
-                    SearchPage.searchField.setText(query);
-                    GuidebookScreen.getPageManager().updatePages();
-                    GuidebookScreen.getPageManager().setCurrentPage(GuidebookScreen.getPageManager().getSectionIndex(GuidebookSections.CRAFTING), true);
+                    GuidebookPageManager.searchQuery = SearchQuery.resolve(query);
+                    GuidebookPageSearch.searchField.setText(query);
+                    ScreenGuidebook.getPageManager().updatePages();
+                    ScreenGuidebook.getPageManager().setCurrentPage(ScreenGuidebook.getPageManager().getSectionIndex(GuidebookSections.CRAFTING), true);
                     return true;
                 }
             }
@@ -186,7 +186,7 @@ public class TrommelPage
         re.bindTexture(re.loadTexture("/assets/minecraft/textures/gui/container/guidebook/guidebook.png"));
         for (int i = 1; i <= recipes.size(); i++) {
             RecipeEntryTrommel recipe = recipes.get(i-1);
-            List<GuidebookSlot> list = map.get(recipe);
+            List<SlotGuidebook> list = map.get(recipe);
             drawTexturedModalRect(x + list.get(list.size()-1).x + 25, y +  list.get(list.size()-1).y, 234, 0, 22, 15);
         }
     }
@@ -194,8 +194,8 @@ public class TrommelPage
     @Override
     protected void renderOverlay(TextureManager re, Font fr, int x, int y, int mouseX, int mouseY, float partialTicks) {
         super.renderOverlay(re, fr, x, y, mouseX, mouseY, partialTicks);
-        GuidebookSlot mouseOverSlot = null;
-        for (GuidebookSlot slot : slots) {
+        SlotGuidebook mouseOverSlot = null;
+        for (SlotGuidebook slot : slots) {
             if(getIsMouseOverSlot(slot,x,y,mouseX,mouseY)) mouseOverSlot = slot;
             GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
             if (mouseOverSlot != null && mouseOverSlot.hasItem())
diff --git a/src/main/java/net/minecraft/client/gui/hud/IngameHud.java b/src/main/java/net/minecraft/client/gui/hud/HudIngame.java
similarity index 98%
rename from src/main/java/net/minecraft/client/gui/hud/IngameHud.java
rename to src/main/java/net/minecraft/client/gui/hud/HudIngame.java
index 6c6ab960a..bb33b137b 100644
--- a/src/main/java/net/minecraft/client/gui/hud/IngameHud.java
+++ b/src/main/java/net/minecraft/client/gui/hud/HudIngame.java
@@ -10,13 +10,13 @@ import java.util.List;
 import java.util.Map;
 
 import com.mojang.logging.LogUtils;
-import net.minecraft.client.entity.player.MultiplayerLocalPlayer;
-import net.minecraft.client.gui.chat.ChatScreen;
+import net.minecraft.client.entity.player.PlayerLocalMultiplayer;
+import net.minecraft.client.gui.chat.ScreenChat;
 import net.minecraft.client.gui.Gui;
 import net.minecraft.client.gui.HeldItemTooltipElement;
-import net.minecraft.client.gui.PhotoModeScreen;
+import net.minecraft.client.gui.ScreenPhotoMode;
 import net.minecraft.client.render.block.model.BlockModelDispatcher;
-import net.minecraft.core.block.PortalBlock;
+import net.minecraft.core.block.BlockPortal;
 import net.minecraft.core.enums.ChatVisibility;
 import net.minecraft.core.item.IArmorItem;
 import net.minecraft.core.util.helper.Direction;
@@ -28,7 +28,7 @@ import net.minecraft.client.gui.hud.component.HudComponents;
 import net.minecraft.client.render.Font;
 import net.minecraft.client.render.Lighting;
 import net.minecraft.client.render.dynamictexture.DynamicTexture;
-import net.minecraft.client.render.entity.ItemEntityRenderer;
+import net.minecraft.client.render.entity.EntityRendererItem;
 import net.minecraft.client.render.item.model.ItemModelDispatcher;
 import net.minecraft.client.render.terrain.RenderList;
 import net.minecraft.client.render.terrain.RenderRegion;
@@ -57,13 +57,13 @@ import net.minecraft.core.world.weather.Weather;
 import net.minecraft.core.world.wind.WindProvider;
 import org.slf4j.Logger;
 
-public class IngameHud extends Gui
+public class HudIngame extends Gui
 {
     public static final float DEBUG_SCALE = 0.75f;
     private static final Logger LOGGER = LogUtils.getLogger();
     public static final Direction[] directions = new Direction[]{Direction.NORTH, Direction.EAST, Direction.SOUTH, Direction.WEST};
 
-    public static ItemEntityRenderer itemRenderer = new ItemEntityRenderer();
+    public static EntityRendererItem itemRenderer = new EntityRendererItem();
     private final List<ChatLine> chatMessageList = new ArrayList<>();
     protected Minecraft mc;
     public int updateCounter = 0;
@@ -77,7 +77,7 @@ public class IngameHud extends Gui
 
     public final HeldItemTooltipElement heldItemTooltipElement;
 
-    public IngameHud(Minecraft minecraft)
+    public HudIngame(Minecraft minecraft)
     {
         this.mc = minecraft;
         this.font = mc.font;
@@ -86,7 +86,7 @@ public class IngameHud extends Gui
 
     public void renderGameOverlay(float partialTicks, boolean flag, int mouseX, int mouseY)
     {
-        if (mc.currentScreen instanceof PhotoModeScreen) return;
+        if (mc.currentScreen instanceof ScreenPhotoMode) return;
 
         I18n stringtranslate = I18n.getInstance();
         int width = mc.resolution.getScaledWidthScreenCoords();
@@ -699,9 +699,9 @@ public class IngameHud extends Gui
         }
         if (!mc.gameSettings.showPlayerList.value) return;
 
-        if (!(mc.thePlayer instanceof MultiplayerLocalPlayer)) return;
+        if (!(mc.thePlayer instanceof PlayerLocalMultiplayer)) return;
 
-        MultiplayerLocalPlayer player = (MultiplayerLocalPlayer) mc.thePlayer;
+        PlayerLocalMultiplayer player = (PlayerLocalMultiplayer) mc.thePlayer;
         HashMap<String, String> players = player.sendQueue.playerList;
 
 //		List<PlayerProfile> players = new ArrayList<>();
@@ -806,7 +806,7 @@ public class IngameHud extends Gui
         if (mc.gameSettings.chatVisibility.value == ChatVisibility.NEVER_SHOW) return;
         int messagesToShow = 10;
         boolean ignoreFadeout = false;
-        if (mc.currentScreen instanceof ChatScreen)
+        if (mc.currentScreen instanceof ScreenChat)
         {
             int acceptableSize = height - 48 - 48;
             messagesToShow = acceptableSize / 9;
@@ -944,7 +944,7 @@ public class IngameHud extends Gui
         GL11.glDepthMask(false);
         GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
         GL11.glColor4f(1.0F, 1.0F, 1.0F, intensity);
-        IconCoordinate portal = BlockModelDispatcher.getInstance().getDispatch(Block.getBlock(mc.thePlayer.portalID)).getBlockTextureFromSideAndMetadata(Side.NORTH, mc.thePlayer.portalColor.blockMeta << 4 | PortalBlock.MASK_COLOR_SET);
+        IconCoordinate portal = BlockModelDispatcher.getInstance().getDispatch(Block.getBlock(mc.thePlayer.portalID)).getBlockTextureFromSideAndMetadata(Side.NORTH, mc.thePlayer.portalColor.blockMeta << 4 | BlockPortal.MASK_COLOR_SET);
         portal.parentAtlas.bind();
         float f1 = (float) portal.getIconUMin();
         float f2 = (float) portal.getIconVMin();
diff --git a/src/main/java/net/minecraft/client/gui/hud/DoomIngameHud.java b/src/main/java/net/minecraft/client/gui/hud/HudIngameDoom.java
similarity index 97%
rename from src/main/java/net/minecraft/client/gui/hud/DoomIngameHud.java
rename to src/main/java/net/minecraft/client/gui/hud/HudIngameDoom.java
index b294dcc49..38b191ee7 100644
--- a/src/main/java/net/minecraft/client/gui/hud/DoomIngameHud.java
+++ b/src/main/java/net/minecraft/client/gui/hud/HudIngameDoom.java
@@ -1,20 +1,19 @@
 package net.minecraft.client.gui.hud;
 
 import net.minecraft.client.Minecraft;
-import net.minecraft.client.gui.PhotoModeScreen;
+import net.minecraft.client.gui.ScreenPhotoMode;
 import net.minecraft.client.render.texture.stitcher.TextureRegistry;
 import net.minecraft.core.block.Blocks;
 import net.minecraft.core.item.IArmorItem;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.net.command.TextFormatting;
-import net.minecraft.core.util.helper.MathHelper;
 import org.lwjgl.opengl.GL11;
 
 import java.util.ArrayList;
 import java.util.List;
 
-public class DoomIngameHud
-    extends IngameHud
+public class HudIngameDoom
+    extends HudIngame
 {
     private static final int[] NUMBER_WIDTHS = {
             9, 7, 9, 9, 11, 9, 9, 9, 9, 9
@@ -23,14 +22,14 @@ public class DoomIngameHud
             0, 9, 16, 25, 34, 45, 54, 63, 72, 81
     };
 
-    public DoomIngameHud(Minecraft minecraft) {
+    public HudIngameDoom(Minecraft minecraft) {
         super(minecraft);
     }
 
     @Override
     public void renderGameOverlay(float partialTicks, boolean flag, int mouseX, int mouseY)
     {
-        if (mc.currentScreen instanceof PhotoModeScreen) return;
+        if (mc.currentScreen instanceof ScreenPhotoMode) return;
 
         int width = mc.resolution.getScaledWidthScreenCoords();
         int height = mc.resolution.getScaledHeightScreenCoords();
diff --git a/src/main/java/net/minecraft/client/gui/hud/component/SubtitleComponent.java b/src/main/java/net/minecraft/client/gui/hud/component/HubComponentSubtitles.java
similarity index 94%
rename from src/main/java/net/minecraft/client/gui/hud/component/SubtitleComponent.java
rename to src/main/java/net/minecraft/client/gui/hud/component/HubComponentSubtitles.java
index c85a939f9..ae7c390f9 100644
--- a/src/main/java/net/minecraft/client/gui/hud/component/SubtitleComponent.java
+++ b/src/main/java/net/minecraft/client/gui/hud/component/HubComponentSubtitles.java
@@ -2,7 +2,7 @@ package net.minecraft.client.gui.hud.component;
 
 import net.minecraft.client.Minecraft;
 import net.minecraft.client.gui.Gui;
-import net.minecraft.client.gui.hud.IngameHud;
+import net.minecraft.client.gui.hud.HudIngame;
 import net.minecraft.client.gui.hud.component.layout.Layout;
 import net.minecraft.client.gui.subtitles.SubtitleTracker;
 import net.minecraft.client.sound.SoundRepository;
@@ -16,8 +16,8 @@ import static org.lwjgl.opengl.GL11.GL_BLEND;
 import static org.lwjgl.opengl.GL11.GL_ONE_MINUS_SRC_ALPHA;
 import static org.lwjgl.opengl.GL11.GL_SRC_ALPHA;
 
-public class SubtitleComponent extends MovableHudComponent{
-    public SubtitleComponent(String key, int xSize, int ySize, Layout layout) {
+public class HubComponentSubtitles extends HudComponentMovable {
+    public HubComponentSubtitles(String key, int xSize, int ySize, Layout layout) {
         super(key, xSize, ySize, layout);
     }
 
@@ -27,7 +27,7 @@ public class SubtitleComponent extends MovableHudComponent{
     }
 
     @Override
-    public void render(Minecraft mc, IngameHud hud, int xSizeScreen, int ySizeScreen, float partialTick) {
+    public void render(Minecraft mc, HudIngame hud, int xSizeScreen, int ySizeScreen, float partialTick) {
         drawChat(mc, hud, new ArrayList<>(mc.subtitleTracker.entryMap.values()), xSizeScreen, ySizeScreen, partialTick);
     }
 
diff --git a/src/main/java/net/minecraft/client/gui/hud/component/HudComponent.java b/src/main/java/net/minecraft/client/gui/hud/component/HudComponent.java
index e461591ee..d7c10821e 100644
--- a/src/main/java/net/minecraft/client/gui/hud/component/HudComponent.java
+++ b/src/main/java/net/minecraft/client/gui/hud/component/HudComponent.java
@@ -2,11 +2,11 @@ package net.minecraft.client.gui.hud.component;
 
 import net.minecraft.client.Minecraft;
 import net.minecraft.client.gui.Gui;
-import net.minecraft.client.gui.HudDesignerScreen;
-import net.minecraft.client.gui.hud.IngameHud;
-import net.minecraft.client.gui.hud.component.layout.AbsoluteLayout;
+import net.minecraft.client.gui.ScreenHudDesigner;
+import net.minecraft.client.gui.hud.HudIngame;
+import net.minecraft.client.gui.hud.component.layout.LayoutAbsolute;
 import net.minecraft.client.gui.hud.component.layout.Layout;
-import net.minecraft.client.gui.hud.component.layout.SnapLayout;
+import net.minecraft.client.gui.hud.component.layout.LayoutSnap;
 
 public abstract class HudComponent {
     private final String key;
@@ -29,12 +29,12 @@ public abstract class HudComponent {
     }
 
     public int getXSize(Minecraft mc) {
-        if (!(mc.currentScreen instanceof HudDesignerScreen) && !isVisible(mc)) return 0;
+        if (!(mc.currentScreen instanceof ScreenHudDesigner) && !isVisible(mc)) return 0;
         return xSize;
     }
 
     public int getYSize(Minecraft mc) {
-        if (!(mc.currentScreen instanceof HudDesignerScreen) && !isVisible(mc)) return 0;
+        if (!(mc.currentScreen instanceof ScreenHudDesigner) && !isVisible(mc)) return 0;
         return ySize;
     }
 
@@ -50,15 +50,15 @@ public abstract class HudComponent {
         return layout;
     }
 
-    public abstract void render(Minecraft mc, IngameHud hud, int xSizeScreen, int ySizeScreen, float partialTick);
+    public abstract void render(Minecraft mc, HudIngame hud, int xSizeScreen, int ySizeScreen, float partialTick);
 
     public abstract void renderPreview(Minecraft mc, Gui gui, Layout layout, int xSizeScreen, int ySizeScreen);
 
     public final String toSettingsString() {
         String layoutString;
-        if (layout instanceof AbsoluteLayout) {
+        if (layout instanceof LayoutAbsolute) {
             layoutString = "abs";
-        } else if (layout instanceof SnapLayout) {
+        } else if (layout instanceof LayoutSnap) {
             layoutString = "snap";
         } else {
             throw new RuntimeException("Unknown layout type: " + layout.getClass().getName());
@@ -73,9 +73,9 @@ public abstract class HudComponent {
         String layoutString = parts[1].substring(0, parts[1].indexOf('['));
         String layoutSettings = parts[1].substring(parts[1].indexOf('[') + 1, parts[1].length() - 1);
         if (layoutString.equals("abs")) {
-            layout = new AbsoluteLayout(0, 0, ComponentAnchor.TOP_LEFT);
+            layout = new LayoutAbsolute(0, 0, ComponentAnchor.TOP_LEFT);
         } else if (layoutString.equals("snap")) {
-            layout = new SnapLayout(null, ComponentAnchor.TOP_LEFT, ComponentAnchor.TOP_LEFT);
+            layout = new LayoutSnap(null, ComponentAnchor.TOP_LEFT, ComponentAnchor.TOP_LEFT);
         } else {
             throw new RuntimeException("Unknown layout type: " + layoutString);
         }
diff --git a/src/main/java/net/minecraft/client/gui/hud/component/ArmorBarComponent.java b/src/main/java/net/minecraft/client/gui/hud/component/HudComponentArmorBar.java
similarity index 92%
rename from src/main/java/net/minecraft/client/gui/hud/component/ArmorBarComponent.java
rename to src/main/java/net/minecraft/client/gui/hud/component/HudComponentArmorBar.java
index ec4a3fe79..bc0e9d198 100644
--- a/src/main/java/net/minecraft/client/gui/hud/component/ArmorBarComponent.java
+++ b/src/main/java/net/minecraft/client/gui/hud/component/HudComponentArmorBar.java
@@ -2,18 +2,18 @@ package net.minecraft.client.gui.hud.component;
 
 import net.minecraft.client.Minecraft;
 import net.minecraft.client.gui.Gui;
-import net.minecraft.client.gui.hud.IngameHud;
+import net.minecraft.client.gui.hud.HudIngame;
 import net.minecraft.client.gui.hud.component.layout.Layout;
 import net.minecraft.client.render.texture.stitcher.IconCoordinate;
 import net.minecraft.client.render.texture.stitcher.TextureRegistry;
 import org.lwjgl.opengl.GL11;
 
-public class ArmorBarComponent
-    extends MovableHudComponent {
+public class HudComponentArmorBar
+    extends HudComponentMovable {
     private final IconCoordinate armor_empty;
     private final IconCoordinate armor_half;
     private final IconCoordinate armor_full;
-    public ArmorBarComponent(String key, Layout layout) {
+    public HudComponentArmorBar(String key, Layout layout) {
         super(key, 81, 10, layout);
         armor_empty = TextureRegistry.getTexture("minecraft:gui/hud/armor_empty");
         armor_half = TextureRegistry.getTexture("minecraft:gui/hud/armor_half");
@@ -26,7 +26,7 @@ public class ArmorBarComponent
     }
 
     @Override
-    public void render(Minecraft mc, IngameHud hud, int xSizeScreen, int ySizeScreen, float partialTick) {
+    public void render(Minecraft mc, HudIngame hud, int xSizeScreen, int ySizeScreen, float partialTick) {
         int x = this.getLayout().getComponentX(mc, this, xSizeScreen);
         int y = this.getLayout().getComponentY(mc, this, ySizeScreen);
 
diff --git a/src/main/java/net/minecraft/client/gui/hud/component/CrosshairComponent.java b/src/main/java/net/minecraft/client/gui/hud/component/HudComponentCrosshair.java
similarity index 88%
rename from src/main/java/net/minecraft/client/gui/hud/component/CrosshairComponent.java
rename to src/main/java/net/minecraft/client/gui/hud/component/HudComponentCrosshair.java
index f3fd3d68a..58fa0ec12 100644
--- a/src/main/java/net/minecraft/client/gui/hud/component/CrosshairComponent.java
+++ b/src/main/java/net/minecraft/client/gui/hud/component/HudComponentCrosshair.java
@@ -2,14 +2,14 @@ package net.minecraft.client.gui.hud.component;
 
 import net.minecraft.client.Minecraft;
 import net.minecraft.client.gui.Gui;
-import net.minecraft.client.gui.hud.IngameHud;
+import net.minecraft.client.gui.hud.HudIngame;
 import net.minecraft.client.gui.hud.component.layout.Layout;
 import net.minecraft.client.render.texture.stitcher.TextureRegistry;
 import org.lwjgl.opengl.GL11;
 
-public class CrosshairComponent
+public class HudComponentCrosshair
     extends HudComponent {
-    public CrosshairComponent(String key, Layout layout) {
+    public HudComponentCrosshair(String key, Layout layout) {
         super(key, 15, 15, layout);
     }
 
@@ -19,7 +19,7 @@ public class CrosshairComponent
     }
 
     @Override
-    public void render(Minecraft mc, IngameHud hud, int xSizeScreen, int ySizeScreen, float partialTick) {
+    public void render(Minecraft mc, HudIngame hud, int xSizeScreen, int ySizeScreen, float partialTick) {
         int x = this.getLayout().getComponentX(mc, this, xSizeScreen);
         int y = this.getLayout().getComponentY(mc, this, ySizeScreen);
 
diff --git a/src/main/java/net/minecraft/client/gui/hud/component/FireBarComponent.java b/src/main/java/net/minecraft/client/gui/hud/component/HudComponentFireBar.java
similarity index 88%
rename from src/main/java/net/minecraft/client/gui/hud/component/FireBarComponent.java
rename to src/main/java/net/minecraft/client/gui/hud/component/HudComponentFireBar.java
index 2969466bf..0bcc236f2 100644
--- a/src/main/java/net/minecraft/client/gui/hud/component/FireBarComponent.java
+++ b/src/main/java/net/minecraft/client/gui/hud/component/HudComponentFireBar.java
@@ -2,14 +2,14 @@ package net.minecraft.client.gui.hud.component;
 
 import net.minecraft.client.Minecraft;
 import net.minecraft.client.gui.Gui;
-import net.minecraft.client.gui.hud.IngameHud;
+import net.minecraft.client.gui.hud.HudIngame;
 import net.minecraft.client.gui.hud.component.layout.Layout;
 import net.minecraft.client.render.texture.stitcher.TextureRegistry;
 import org.lwjgl.opengl.GL11;
 
-public class FireBarComponent
-    extends MovableHudComponent {
-    public FireBarComponent(String key, Layout layout) {
+public class HudComponentFireBar
+    extends HudComponentMovable {
+    public HudComponentFireBar(String key, Layout layout) {
         super(key, 81, 10, layout);
     }
 
@@ -19,7 +19,7 @@ public class FireBarComponent
     }
 
     @Override
-    public void render(Minecraft mc, IngameHud hud, int xSizeScreen, int ySizeScreen, float partialTick) {
+    public void render(Minecraft mc, HudIngame hud, int xSizeScreen, int ySizeScreen, float partialTick) {
         int x = this.getLayout().getComponentX(mc, this, xSizeScreen);
         int y = this.getLayout().getComponentY(mc, this, ySizeScreen);
 
diff --git a/src/main/java/net/minecraft/client/gui/hud/component/HealthBarComponent.java b/src/main/java/net/minecraft/client/gui/hud/component/HudComponentHealthBar.java
similarity index 89%
rename from src/main/java/net/minecraft/client/gui/hud/component/HealthBarComponent.java
rename to src/main/java/net/minecraft/client/gui/hud/component/HudComponentHealthBar.java
index 0933e1d16..cf78683eb 100644
--- a/src/main/java/net/minecraft/client/gui/hud/component/HealthBarComponent.java
+++ b/src/main/java/net/minecraft/client/gui/hud/component/HudComponentHealthBar.java
@@ -2,21 +2,21 @@ package net.minecraft.client.gui.hud.component;
 
 import net.minecraft.client.Minecraft;
 import net.minecraft.client.gui.Gui;
-import net.minecraft.client.gui.hud.IngameHud;
+import net.minecraft.client.gui.hud.HudIngame;
 import net.minecraft.client.gui.hud.component.layout.Layout;
 import net.minecraft.client.render.texture.stitcher.TextureRegistry;
-import net.minecraft.core.item.IceCreamBucketItem;
-import net.minecraft.core.item.FoodItem;
+import net.minecraft.core.item.ItemBucketIceCream;
+import net.minecraft.core.item.ItemFood;
 import net.minecraft.core.player.gamemode.Gamemode;
 import org.lwjgl.opengl.GL11;
 
 import java.util.Random;
 
-public class HealthBarComponent
-    extends MovableHudComponent {
+public class HudComponentHealthBar
+    extends HudComponentMovable {
     private final Random random = new Random();
 
-    public HealthBarComponent(String key, Layout layout) {
+    public HudComponentHealthBar(String key, Layout layout) {
         super(key, 81, 10, layout);
     }
 
@@ -26,7 +26,7 @@ public class HealthBarComponent
     }
 
     @Override
-    public void render(Minecraft mc, IngameHud hud, int xSizeScreen, int ySizeScreen, float partialTick) {
+    public void render(Minecraft mc, HudIngame hud, int xSizeScreen, int ySizeScreen, float partialTick) {
         int x = this.getLayout().getComponentX(mc, this, xSizeScreen);
         int y = this.getLayout().getComponentY(mc, this, ySizeScreen);
 
@@ -81,16 +81,16 @@ public class HealthBarComponent
                 // Half heart icon
                 hud.drawGuiIcon(xHeart, yHeart, 9, 9, TextureRegistry.getTexture("minecraft:gui/hud/heart/" + (isHardcore ? "hardcore_" : "") + "half"));
             }
-            if (mc.thePlayer.inventory.getCurrentItem() != null && (mc.thePlayer.inventory.getCurrentItem().getItem() instanceof FoodItem || mc.thePlayer.inventory.getCurrentItem().getItem() instanceof IceCreamBucketItem) && mc.gameSettings.foodHealthRegenOverlay.value)
+            if (mc.thePlayer.inventory.getCurrentItem() != null && (mc.thePlayer.inventory.getCurrentItem().getItem() instanceof ItemFood || mc.thePlayer.inventory.getCurrentItem().getItem() instanceof ItemBucketIceCream) && mc.gameSettings.foodHealthRegenOverlay.value)
             {
                 int healing = 0;
-                if (mc.thePlayer.inventory.getCurrentItem().getItem() instanceof FoodItem)
+                if (mc.thePlayer.inventory.getCurrentItem().getItem() instanceof ItemFood)
                 {
-                    healing = ((FoodItem) mc.thePlayer.inventory.getCurrentItem().getItem()).getHealAmount();
+                    healing = ((ItemFood) mc.thePlayer.inventory.getCurrentItem().getItem()).getHealAmount();
                 }
                 else
                 {
-                    healing = ((IceCreamBucketItem) mc.thePlayer.inventory.getCurrentItem().getItem()).getHealAmount();
+                    healing = ((ItemBucketIceCream) mc.thePlayer.inventory.getCurrentItem().getItem()).getHealAmount();
                 }
 
                 if (i * 2 + 1 >= health)
diff --git a/src/main/java/net/minecraft/client/gui/hud/component/HotbarComponent.java b/src/main/java/net/minecraft/client/gui/hud/component/HudComponentHotbar.java
similarity index 95%
rename from src/main/java/net/minecraft/client/gui/hud/component/HotbarComponent.java
rename to src/main/java/net/minecraft/client/gui/hud/component/HudComponentHotbar.java
index 1d01f23ce..76ff3117a 100644
--- a/src/main/java/net/minecraft/client/gui/hud/component/HotbarComponent.java
+++ b/src/main/java/net/minecraft/client/gui/hud/component/HudComponentHotbar.java
@@ -2,7 +2,7 @@ package net.minecraft.client.gui.hud.component;
 
 import net.minecraft.client.Minecraft;
 import net.minecraft.client.gui.Gui;
-import net.minecraft.client.gui.hud.IngameHud;
+import net.minecraft.client.gui.hud.HudIngame;
 import net.minecraft.client.gui.hud.component.layout.Layout;
 import net.minecraft.client.render.Lighting;
 import net.minecraft.client.render.Scissor;
@@ -13,12 +13,12 @@ import net.minecraft.client.render.texture.stitcher.IconCoordinate;
 import net.minecraft.client.render.texture.stitcher.TextureRegistry;
 import net.minecraft.core.block.Blocks;
 import net.minecraft.core.item.ItemStack;
-import net.minecraft.core.player.inventory.container.Inventory;
+import net.minecraft.core.player.inventory.container.ContainerInventory;
 import org.lwjgl.opengl.GL11;
 import org.lwjgl.opengl.GL12;
 
-public class HotbarComponent
-    extends MovableHudComponent {
+public class HudComponentHotbar
+    extends HudComponentMovable {
     private static final ItemStack[] PREVIEW_ITEMS = new ItemStack[] {
         new ItemStack(Blocks.STONE),
         new ItemStack(Blocks.COBBLE_STONE),
@@ -31,7 +31,7 @@ public class HotbarComponent
         new ItemStack(Blocks.SLAB_STONE_POLISHED)
     };
 
-    public HotbarComponent(String key, Layout layout) {
+    public HudComponentHotbar(String key, Layout layout) {
         super(key, 187, 22, layout);
     }
 
@@ -52,11 +52,11 @@ public class HotbarComponent
     }
 
     @Override
-    public void render(Minecraft mc, IngameHud hud, int xSizeScreen, int ySizeScreen, float partialTick) {
+    public void render(Minecraft mc, HudIngame hud, int xSizeScreen, int ySizeScreen, float partialTick) {
         int x = this.getLayout().getComponentX(mc, this, xSizeScreen);
         int y = this.getLayout().getComponentY(mc, this, ySizeScreen);
 
-        Inventory inv = mc.thePlayer.inventory;
+        ContainerInventory inv = mc.thePlayer.inventory;
 
         // Setup hotbar texture
         GL11.glColor4f(1.0f, 1.0f, 1.0f, 1.0f); // Reset color
diff --git a/src/main/java/net/minecraft/client/gui/hud/component/MovableHudComponent.java b/src/main/java/net/minecraft/client/gui/hud/component/HudComponentMovable.java
similarity index 72%
rename from src/main/java/net/minecraft/client/gui/hud/component/MovableHudComponent.java
rename to src/main/java/net/minecraft/client/gui/hud/component/HudComponentMovable.java
index f22ce9bfa..56b6fcf29 100644
--- a/src/main/java/net/minecraft/client/gui/hud/component/MovableHudComponent.java
+++ b/src/main/java/net/minecraft/client/gui/hud/component/HudComponentMovable.java
@@ -2,9 +2,9 @@ package net.minecraft.client.gui.hud.component;
 
 import net.minecraft.client.gui.hud.component.layout.Layout;
 
-public abstract class MovableHudComponent
+public abstract class HudComponentMovable
     extends HudComponent {
-    public MovableHudComponent(String key, int xSize, int ySize, Layout layout) {
+    public HudComponentMovable(String key, int xSize, int ySize, Layout layout) {
         super(key, xSize, ySize, layout);
     }
 
diff --git a/src/main/java/net/minecraft/client/gui/hud/component/OxygenBarComponent.java b/src/main/java/net/minecraft/client/gui/hud/component/HudComponentOxygenBar.java
similarity index 91%
rename from src/main/java/net/minecraft/client/gui/hud/component/OxygenBarComponent.java
rename to src/main/java/net/minecraft/client/gui/hud/component/HudComponentOxygenBar.java
index cdd55a32f..e100af5b8 100644
--- a/src/main/java/net/minecraft/client/gui/hud/component/OxygenBarComponent.java
+++ b/src/main/java/net/minecraft/client/gui/hud/component/HudComponentOxygenBar.java
@@ -2,18 +2,18 @@ package net.minecraft.client.gui.hud.component;
 
 import net.minecraft.client.Minecraft;
 import net.minecraft.client.gui.Gui;
-import net.minecraft.client.gui.hud.IngameHud;
+import net.minecraft.client.gui.hud.HudIngame;
 import net.minecraft.client.gui.hud.component.layout.Layout;
 import net.minecraft.client.render.texture.stitcher.IconCoordinate;
 import net.minecraft.client.render.texture.stitcher.TextureRegistry;
 import net.minecraft.core.block.material.Material;
 import org.lwjgl.opengl.GL11;
 
-public class OxygenBarComponent
-    extends MovableHudComponent {
+public class HudComponentOxygenBar
+    extends HudComponentMovable {
     private final IconCoordinate air;
     private final IconCoordinate air_pop;
-    public OxygenBarComponent(String key, Layout layout) {
+    public HudComponentOxygenBar(String key, Layout layout) {
         super(key, 81, 10, layout);
         air = TextureRegistry.getTexture("minecraft:gui/hud/air");
         air_pop = TextureRegistry.getTexture("minecraft:gui/hud/air_pop");
@@ -25,7 +25,7 @@ public class OxygenBarComponent
     }
 
     @Override
-    public void render(Minecraft mc, IngameHud hud, int xSizeScreen, int ySizeScreen, float partialTick) {
+    public void render(Minecraft mc, HudIngame hud, int xSizeScreen, int ySizeScreen, float partialTick) {
         int x = this.getLayout().getComponentX(mc, this, xSizeScreen);
         int y = this.getLayout().getComponentY(mc, this, ySizeScreen);
 
diff --git a/src/main/java/net/minecraft/client/gui/hud/component/RotationLockComponent.java b/src/main/java/net/minecraft/client/gui/hud/component/HudComponentRotationLock.java
similarity index 93%
rename from src/main/java/net/minecraft/client/gui/hud/component/RotationLockComponent.java
rename to src/main/java/net/minecraft/client/gui/hud/component/HudComponentRotationLock.java
index e82b1dcbf..654d26164 100644
--- a/src/main/java/net/minecraft/client/gui/hud/component/RotationLockComponent.java
+++ b/src/main/java/net/minecraft/client/gui/hud/component/HudComponentRotationLock.java
@@ -2,16 +2,16 @@ package net.minecraft.client.gui.hud.component;
 
 import net.minecraft.client.Minecraft;
 import net.minecraft.client.gui.Gui;
-import net.minecraft.client.gui.hud.IngameHud;
+import net.minecraft.client.gui.hud.HudIngame;
 import net.minecraft.client.gui.hud.component.layout.Layout;
 import net.minecraft.client.render.texture.stitcher.TextureRegistry;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.util.helper.Direction;
 import org.lwjgl.opengl.GL11;
 
-public class RotationLockComponent
-    extends MovableHudComponent {
-    public RotationLockComponent(String key, Layout layout) {
+public class HudComponentRotationLock
+    extends HudComponentMovable {
+    public HudComponentRotationLock(String key, Layout layout) {
         super(key, 24, 16, layout);
     }
 
@@ -21,7 +21,7 @@ public class RotationLockComponent
     }
 
     @Override
-    public void render(Minecraft mc, IngameHud hud, int xSizeScreen, int ySizeScreen, float partialTick) {
+    public void render(Minecraft mc, HudIngame hud, int xSizeScreen, int ySizeScreen, float partialTick) {
         // Setup rendering
         GL11.glColor4f(1.0f, 1.0f, 1.0f, 1.0f); // Reset color
         GL11.glDisable(GL11.GL_BLEND);
diff --git a/src/main/java/net/minecraft/client/gui/hud/component/HudComponents.java b/src/main/java/net/minecraft/client/gui/hud/component/HudComponents.java
index 71ec8c3c2..4ae51fb46 100644
--- a/src/main/java/net/minecraft/client/gui/hud/component/HudComponents.java
+++ b/src/main/java/net/minecraft/client/gui/hud/component/HudComponents.java
@@ -1,8 +1,8 @@
 package net.minecraft.client.gui.hud.component;
 
 import com.mojang.logging.LogUtils;
-import net.minecraft.client.gui.hud.component.layout.AbsoluteLayout;
-import net.minecraft.client.gui.hud.component.layout.SnapLayout;
+import net.minecraft.client.gui.hud.component.layout.LayoutAbsolute;
+import net.minecraft.client.gui.hud.component.layout.LayoutSnap;
 import org.slf4j.Logger;
 
 import java.util.ArrayList;
@@ -58,12 +58,12 @@ public class HudComponents {
         }
     }
 
-    public static final HudComponent HOTBAR = register(new HotbarComponent("hotbar", new AbsoluteLayout(0.5f, 1.0f, ComponentAnchor.BOTTOM_CENTER)));
-    public static final HudComponent CROSSHAIR = register(new CrosshairComponent("crosshair", new AbsoluteLayout(0.5f, 0.5f, ComponentAnchor.CENTER)));
-    public static final HudComponent HEALTH_BAR = register(new HealthBarComponent("health_bar", new SnapLayout(HOTBAR, ComponentAnchor.TOP_LEFT, ComponentAnchor.BOTTOM_LEFT)));
-    public static final HudComponent ARMOR_BAR = register(new ArmorBarComponent("armor_bar", new SnapLayout(HOTBAR, ComponentAnchor.TOP_RIGHT, ComponentAnchor.BOTTOM_RIGHT)));
-    public static final HudComponent OXYGEN_BAR = register(new OxygenBarComponent("oxygen_bar", new SnapLayout(HEALTH_BAR, ComponentAnchor.TOP_LEFT, ComponentAnchor.BOTTOM_LEFT)));
-    public static final HudComponent FIRE_BAR = register(new FireBarComponent("fire_bar", new SnapLayout(OXYGEN_BAR, ComponentAnchor.TOP_LEFT, ComponentAnchor.BOTTOM_LEFT)));
-    public static final HudComponent ROTATION_LOCK = register(new RotationLockComponent("rotation_lock", new SnapLayout(CROSSHAIR, ComponentAnchor.CENTER_RIGHT, ComponentAnchor.CENTER_LEFT)));
-    public static final HudComponent SUBTITLES = register(new SubtitleComponent("subtitles_box", 100, 50, new AbsoluteLayout(1.0f, 0.75f, ComponentAnchor.BOTTOM_RIGHT)));
+    public static final HudComponent HOTBAR = register(new HudComponentHotbar("hotbar", new LayoutAbsolute(0.5f, 1.0f, ComponentAnchor.BOTTOM_CENTER)));
+    public static final HudComponent CROSSHAIR = register(new HudComponentCrosshair("crosshair", new LayoutAbsolute(0.5f, 0.5f, ComponentAnchor.CENTER)));
+    public static final HudComponent HEALTH_BAR = register(new HudComponentHealthBar("health_bar", new LayoutSnap(HOTBAR, ComponentAnchor.TOP_LEFT, ComponentAnchor.BOTTOM_LEFT)));
+    public static final HudComponent ARMOR_BAR = register(new HudComponentArmorBar("armor_bar", new LayoutSnap(HOTBAR, ComponentAnchor.TOP_RIGHT, ComponentAnchor.BOTTOM_RIGHT)));
+    public static final HudComponent OXYGEN_BAR = register(new HudComponentOxygenBar("oxygen_bar", new LayoutSnap(HEALTH_BAR, ComponentAnchor.TOP_LEFT, ComponentAnchor.BOTTOM_LEFT)));
+    public static final HudComponent FIRE_BAR = register(new HudComponentFireBar("fire_bar", new LayoutSnap(OXYGEN_BAR, ComponentAnchor.TOP_LEFT, ComponentAnchor.BOTTOM_LEFT)));
+    public static final HudComponent ROTATION_LOCK = register(new HudComponentRotationLock("rotation_lock", new LayoutSnap(CROSSHAIR, ComponentAnchor.CENTER_RIGHT, ComponentAnchor.CENTER_LEFT)));
+    public static final HudComponent SUBTITLES = register(new HubComponentSubtitles("subtitles_box", 100, 50, new LayoutAbsolute(1.0f, 0.75f, ComponentAnchor.BOTTOM_RIGHT)));
 }
diff --git a/src/main/java/net/minecraft/client/gui/hud/component/layout/AbsoluteLayout.java b/src/main/java/net/minecraft/client/gui/hud/component/layout/LayoutAbsolute.java
similarity index 92%
rename from src/main/java/net/minecraft/client/gui/hud/component/layout/AbsoluteLayout.java
rename to src/main/java/net/minecraft/client/gui/hud/component/layout/LayoutAbsolute.java
index 07e10764a..5eb8a3caa 100644
--- a/src/main/java/net/minecraft/client/gui/hud/component/layout/AbsoluteLayout.java
+++ b/src/main/java/net/minecraft/client/gui/hud/component/layout/LayoutAbsolute.java
@@ -4,13 +4,13 @@ import net.minecraft.client.Minecraft;
 import net.minecraft.client.gui.hud.component.ComponentAnchor;
 import net.minecraft.client.gui.hud.component.HudComponent;
 
-public class AbsoluteLayout
+public class LayoutAbsolute
     extends Layout {
     private float xPosition;
     private float yPosition;
     private ComponentAnchor anchor;
 
-    public AbsoluteLayout(float xPosition, float yPosition, ComponentAnchor anchor) {
+    public LayoutAbsolute(float xPosition, float yPosition, ComponentAnchor anchor) {
         this.xPosition = xPosition;
         this.yPosition = yPosition;
         this.anchor = anchor;
@@ -54,7 +54,7 @@ public class AbsoluteLayout
 
     @Override
     public Layout copy() {
-        return new AbsoluteLayout(xPosition, yPosition, anchor);
+        return new LayoutAbsolute(xPosition, yPosition, anchor);
     }
 
     @Override
diff --git a/src/main/java/net/minecraft/client/gui/hud/component/layout/SnapLayout.java b/src/main/java/net/minecraft/client/gui/hud/component/layout/LayoutSnap.java
similarity index 94%
rename from src/main/java/net/minecraft/client/gui/hud/component/layout/SnapLayout.java
rename to src/main/java/net/minecraft/client/gui/hud/component/layout/LayoutSnap.java
index 0f1cc5f93..40b7b996e 100644
--- a/src/main/java/net/minecraft/client/gui/hud/component/layout/SnapLayout.java
+++ b/src/main/java/net/minecraft/client/gui/hud/component/layout/LayoutSnap.java
@@ -5,13 +5,13 @@ import net.minecraft.client.gui.hud.component.ComponentAnchor;
 import net.minecraft.client.gui.hud.component.HudComponent;
 import net.minecraft.client.gui.hud.component.HudComponents;
 
-public class SnapLayout
+public class LayoutSnap
     extends Layout {
     private HudComponent parent;
     private ComponentAnchor parentAnchor;
     private ComponentAnchor anchor;
 
-    public SnapLayout(HudComponent parent, ComponentAnchor parentAnchor, ComponentAnchor anchor) {
+    public LayoutSnap(HudComponent parent, ComponentAnchor parentAnchor, ComponentAnchor anchor) {
         this.parent = parent;
         this.parentAnchor = parentAnchor;
         this.anchor = anchor;
@@ -61,7 +61,7 @@ public class SnapLayout
 
     @Override
     public Layout copy() {
-        return new SnapLayout(parent, parentAnchor, anchor);
+        return new LayoutSnap(parent, parentAnchor, anchor);
     }
 
     @Override
diff --git a/src/main/java/net/minecraft/client/gui/modelviewer/ModelViewerScreen.java b/src/main/java/net/minecraft/client/gui/modelviewer/ScreenModelViewer.java
similarity index 96%
rename from src/main/java/net/minecraft/client/gui/modelviewer/ModelViewerScreen.java
rename to src/main/java/net/minecraft/client/gui/modelviewer/ScreenModelViewer.java
index fa26cf0c9..0f529e099 100644
--- a/src/main/java/net/minecraft/client/gui/modelviewer/ModelViewerScreen.java
+++ b/src/main/java/net/minecraft/client/gui/modelviewer/ScreenModelViewer.java
@@ -4,11 +4,11 @@ import com.b100.utils.ImageUtils;
 import com.mojang.logging.LogUtils;
 import net.minecraft.client.Minecraft;
 import net.minecraft.client.gui.ButtonElement;
-import net.minecraft.client.gui.PhotoModeScreen;
-import net.minecraft.client.gui.modelviewer.categories.BlockCategory;
-import net.minecraft.client.gui.modelviewer.categories.EntityCategory;
+import net.minecraft.client.gui.ScreenPhotoMode;
+import net.minecraft.client.gui.modelviewer.categories.ViewerCategoryBlock;
+import net.minecraft.client.gui.modelviewer.categories.ViewerCategoryEntity;
 import net.minecraft.client.gui.modelviewer.categories.ModelViewerCategory;
-import net.minecraft.client.gui.modelviewer.categories.ParticleCategory;
+import net.minecraft.client.gui.modelviewer.categories.ViewerCategoryParticle;
 import net.minecraft.client.gui.modelviewer.elements.ListenerButtonElement;
 import net.minecraft.client.gui.modelviewer.elements.ListenerSliderElement;
 import net.minecraft.client.gui.modelviewer.elements.ListenerTextFieldElement;
@@ -23,7 +23,7 @@ import net.minecraft.client.render.tessellator.Tessellator;
 import net.minecraft.client.render.texture.Texture;
 import net.minecraft.client.util.helper.Textures;
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.item.Item;
 import net.minecraft.core.lang.I18n;
 import net.minecraft.core.util.helper.Buffer;
@@ -51,7 +51,7 @@ import static org.lwjgl.opengl.GL11.glGetError;
 import static org.lwjgl.opengl.GL11.glGetTexImage;
 import static org.lwjgl.opengl.GL11.glGetTexLevelParameteri;
 
-public class ModelViewerScreen extends PhotoModeScreen implements ListenerTextFieldElement.ITextChangeListener {
+public class ScreenModelViewer extends ScreenPhotoMode implements ListenerTextFieldElement.ITextChangeListener {
     private static final Logger LOGGER = LogUtils.getLogger();
     private ListenerButtonElement buttonRotateLeft;
     private ListenerButtonElement buttonRotateRight;
@@ -67,9 +67,9 @@ public class ModelViewerScreen extends PhotoModeScreen implements ListenerTextFi
     private ListenerButtonElement buttonCategory;
     private ListenerButtonElement buttonReloadTextures;
     private ListenerButtonElement buttonTickToggle;
-    private final ModelViewerCategory entityCategory = new EntityCategory(this);
-    private final ModelViewerCategory particleCategory = new ParticleCategory(this);
-    private final ModelViewerCategory blockCategory = new BlockCategory(this);
+    private final ModelViewerCategory entityCategory = new ViewerCategoryEntity(this);
+    private final ModelViewerCategory particleCategory = new ViewerCategoryParticle(this);
+    private final ModelViewerCategory blockCategory = new ViewerCategoryBlock(this);
     public final List<ModelViewerCategory> categories = new ArrayList<>();
     private ModelViewerCategory currentCategory;
     protected final int defaultRed = (int) (255 * 0.25f);
@@ -81,7 +81,7 @@ public class ModelViewerScreen extends PhotoModeScreen implements ListenerTextFi
 
     protected boolean tickProgress = true;
     protected boolean rotateToCamera = true;
-    public ModelViewerScreen(){
+    public ScreenModelViewer(){
         this.mc = Minecraft.getMinecraft(this);
         mc.thePlayer.absMoveTo(0.5, 64.5, 0.5, 180, 0);
         mc.thePlayer.noPhysics = true;
@@ -381,7 +381,7 @@ public class ModelViewerScreen extends PhotoModeScreen implements ListenerTextFi
 
         scroll(Mouse.getDWheel());
 
-        BlockEntityRenderDispatcher.instance.renderTileEntity(Tessellator.instance, new BlockEntity(), -0.5D, -0.75D, -0.5D, partialTick);
+        BlockEntityRenderDispatcher.instance.renderTileEntity(Tessellator.instance, new TileEntity(), -0.5D, -0.75D, -0.5D, partialTick);
 
         drawStringCentered(font, currentCategory.getCurrentDisplayInfo(I18n.getInstance()), width/2, 1, 0xffffff);
     }
diff --git a/src/main/java/net/minecraft/client/gui/modelviewer/categories/ModelViewerCategory.java b/src/main/java/net/minecraft/client/gui/modelviewer/categories/ModelViewerCategory.java
index 92c1f75fe..851e99e9f 100644
--- a/src/main/java/net/minecraft/client/gui/modelviewer/categories/ModelViewerCategory.java
+++ b/src/main/java/net/minecraft/client/gui/modelviewer/categories/ModelViewerCategory.java
@@ -2,15 +2,15 @@ package net.minecraft.client.gui.modelviewer.categories;
 
 import net.minecraft.client.Minecraft;
 import net.minecraft.client.gui.ButtonElement;
-import net.minecraft.client.gui.modelviewer.ModelViewerScreen;
+import net.minecraft.client.gui.modelviewer.ScreenModelViewer;
 import net.minecraft.core.lang.I18n;
 
 import java.util.List;
 
 public abstract class ModelViewerCategory {
-    protected final ModelViewerScreen modelViewer;
+    protected final ScreenModelViewer modelViewer;
     protected final Minecraft mc;
-    public ModelViewerCategory(ModelViewerScreen modelViewer){
+    public ModelViewerCategory(ScreenModelViewer modelViewer){
         this.modelViewer = modelViewer;
         this.mc = Minecraft.getMinecraft(this);
     }
diff --git a/src/main/java/net/minecraft/client/gui/modelviewer/categories/BlockCategory.java b/src/main/java/net/minecraft/client/gui/modelviewer/categories/ViewerCategoryBlock.java
similarity index 89%
rename from src/main/java/net/minecraft/client/gui/modelviewer/categories/BlockCategory.java
rename to src/main/java/net/minecraft/client/gui/modelviewer/categories/ViewerCategoryBlock.java
index f35573bcb..e25a8e13a 100644
--- a/src/main/java/net/minecraft/client/gui/modelviewer/categories/BlockCategory.java
+++ b/src/main/java/net/minecraft/client/gui/modelviewer/categories/ViewerCategoryBlock.java
@@ -1,16 +1,16 @@
 package net.minecraft.client.gui.modelviewer.categories;
 
 import net.minecraft.client.gui.ButtonElement;
-import net.minecraft.client.gui.modelviewer.ModelViewerScreen;
-import net.minecraft.client.gui.modelviewer.categories.entries.block.BasicBlockEntry;
+import net.minecraft.client.gui.modelviewer.ScreenModelViewer;
+import net.minecraft.client.gui.modelviewer.categories.entries.block.BlockEntryBasic;
 import net.minecraft.client.gui.modelviewer.categories.entries.block.BlockEntry;
-import net.minecraft.client.gui.modelviewer.categories.entries.block.JarEntry;
-import net.minecraft.client.gui.modelviewer.categories.entries.block.MobSpawnerEntry;
-import net.minecraft.client.gui.modelviewer.categories.entries.block.SignEntry;
+import net.minecraft.client.gui.modelviewer.categories.entries.block.BlockEntryJar;
+import net.minecraft.client.gui.modelviewer.categories.entries.block.BlockEntryMobSpawner;
+import net.minecraft.client.gui.modelviewer.categories.entries.block.BlockEntrySign;
 import net.minecraft.client.gui.modelviewer.elements.TextCycleElement;
 import net.minecraft.core.block.Block;
 import net.minecraft.core.block.Blocks;
-import net.minecraft.core.entity.ItemEntity;
+import net.minecraft.core.entity.EntityItem;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.lang.I18n;
@@ -20,23 +20,23 @@ import net.minecraft.core.world.chunk.DisplayChunk;
 import java.util.HashMap;
 import java.util.List;
 
-public class BlockCategory extends ModelViewerCategory {
+public class ViewerCategoryBlock extends ModelViewerCategory {
     public HashMap<Block, BlockEntry> entryHashMap = new HashMap<>();
     public TextCycleElement<Integer> blockIdTextField;
     public TextCycleElement<Integer> blockMetaTextField;
-    public BlockCategory(ModelViewerScreen modelViewer) {
+    public ViewerCategoryBlock(ScreenModelViewer modelViewer) {
         super(modelViewer);
         createEntries();
     }
     public void createEntries(){
         for (Block block : Block.blocksList){
             if (block == null) continue;
-            entryHashMap.put(block, new BasicBlockEntry(block));
+            entryHashMap.put(block, new BlockEntryBasic(block));
         }
-        entryHashMap.put(Blocks.SIGN_WALL_PLANKS_OAK, new SignEntry(Blocks.SIGN_WALL_PLANKS_OAK));
-        entryHashMap.put(Blocks.SIGN_POST_PLANKS_OAK, new SignEntry(Blocks.SIGN_POST_PLANKS_OAK));
-        entryHashMap.put(Blocks.MOBSPAWNER, new MobSpawnerEntry());
-        entryHashMap.put(Blocks.JAR_GLASS, new JarEntry());
+        entryHashMap.put(Blocks.SIGN_WALL_PLANKS_OAK, new BlockEntrySign(Blocks.SIGN_WALL_PLANKS_OAK));
+        entryHashMap.put(Blocks.SIGN_POST_PLANKS_OAK, new BlockEntrySign(Blocks.SIGN_POST_PLANKS_OAK));
+        entryHashMap.put(Blocks.MOBSPAWNER, new BlockEntryMobSpawner());
+        entryHashMap.put(Blocks.JAR_GLASS, new BlockEntryJar());
     }
 
     @Override
@@ -50,7 +50,7 @@ public class BlockCategory extends ModelViewerCategory {
         String name = "None";
         if (displayBlock != null){
             name = I18n.getInstance().translateNameKey(displayBlock.getKey());
-            ItemStack[] nameStack = displayBlock.getBreakResult(mc.theWorld, EnumDropCause.PICK_BLOCK, DisplayChunk.displayBlockPosX, DisplayChunk.displayBlockPosY, DisplayChunk.displayBlockPosZ, DisplayChunk.displayBlockMeta, DisplayChunk.displayBlockEntity);
+            ItemStack[] nameStack = displayBlock.getBreakResult(mc.theWorld, EnumDropCause.PICK_BLOCK, DisplayChunk.displayBlockPosX, DisplayChunk.displayBlockPosY, DisplayChunk.displayBlockPosZ, DisplayChunk.displayBlockMeta, DisplayChunk.displayTileEntity);
             if (nameStack != null && nameStack.length > 0){
                 name = nameStack[0].getDisplayName();
             }
@@ -72,7 +72,7 @@ public class BlockCategory extends ModelViewerCategory {
         blockIdTextField = new TextCycleElement<Integer>(modelViewer, mc.font, modelViewer.width - 120, lastButton.yPosition + 21, 120, 20, DisplayChunk.displayBlockId) {
             @Override
             public Integer cycleElement(Integer current, int offset) {
-                return ModelViewerScreen.cycleBlockId(current, offset);
+                return ScreenModelViewer.cycleBlockId(current, offset);
             }
 
             @Override
@@ -167,7 +167,7 @@ public class BlockCategory extends ModelViewerCategory {
             entry.onTick(mc.theWorld, DisplayChunk.displayBlockMeta);
         }
         // Delete any items blocks create when added/removed
-        mc.theWorld.loadedEntityList.removeIf(entity -> entity instanceof ItemEntity);
+        mc.theWorld.loadedEntityList.removeIf(entity -> entity instanceof EntityItem);
     }
     public void setDisplayBlock(int id, int meta){
         Block displayBlock = Block.blocksList[DisplayChunk.displayBlockId];
diff --git a/src/main/java/net/minecraft/client/gui/modelviewer/categories/EntityCategory.java b/src/main/java/net/minecraft/client/gui/modelviewer/categories/ViewerCategoryEntity.java
similarity index 84%
rename from src/main/java/net/minecraft/client/gui/modelviewer/categories/EntityCategory.java
rename to src/main/java/net/minecraft/client/gui/modelviewer/categories/ViewerCategoryEntity.java
index 92f79c0eb..14b7f768d 100644
--- a/src/main/java/net/minecraft/client/gui/modelviewer/categories/EntityCategory.java
+++ b/src/main/java/net/minecraft/client/gui/modelviewer/categories/ViewerCategoryEntity.java
@@ -1,28 +1,28 @@
 package net.minecraft.client.gui.modelviewer.categories;
 
 import net.minecraft.client.gui.ButtonElement;
-import net.minecraft.client.gui.modelviewer.ModelViewerScreen;
-import net.minecraft.client.gui.modelviewer.categories.entries.entity.DispatcherEntry;
-import net.minecraft.client.gui.modelviewer.categories.entries.entity.EntityArmoredZombieEntry;
-import net.minecraft.client.gui.modelviewer.categories.entries.entity.EntityBoatEntry;
-import net.minecraft.client.gui.modelviewer.categories.entries.entity.EntityCreeperEntry;
+import net.minecraft.client.gui.modelviewer.ScreenModelViewer;
+import net.minecraft.client.gui.modelviewer.categories.entries.entity.EntityEntryDispatcher;
+import net.minecraft.client.gui.modelviewer.categories.entries.entity.EntityEntryArmoredZombie;
+import net.minecraft.client.gui.modelviewer.categories.entries.entity.EntityEntryBoat;
+import net.minecraft.client.gui.modelviewer.categories.entries.entity.EntityEntryCreeper;
 import net.minecraft.client.gui.modelviewer.categories.entries.entity.EntityEntry;
-import net.minecraft.client.gui.modelviewer.categories.entries.entity.EntityFallingSandEntry;
-import net.minecraft.client.gui.modelviewer.categories.entries.entity.EntityFireflyEntry;
-import net.minecraft.client.gui.modelviewer.categories.entries.entity.EntityItemEntry;
-import net.minecraft.client.gui.modelviewer.categories.entries.entity.EntityMinecartEntry;
-import net.minecraft.client.gui.modelviewer.categories.entries.entity.EntityPaintingEntry;
-import net.minecraft.client.gui.modelviewer.categories.entries.entity.EntitySheepEntry;
-import net.minecraft.client.gui.modelviewer.categories.entries.entity.EntitySlimeEntry;
-import net.minecraft.client.gui.modelviewer.categories.entries.entity.EntityTNTEntry;
-import net.minecraft.client.gui.modelviewer.categories.entries.entity.EntityWolfEntry;
+import net.minecraft.client.gui.modelviewer.categories.entries.entity.EntityEntryFallingBlock;
+import net.minecraft.client.gui.modelviewer.categories.entries.entity.EntityEntryFirefly;
+import net.minecraft.client.gui.modelviewer.categories.entries.entity.EntityEntryItem;
+import net.minecraft.client.gui.modelviewer.categories.entries.entity.EntityEntryMinecart;
+import net.minecraft.client.gui.modelviewer.categories.entries.entity.EntityEntryPainting;
+import net.minecraft.client.gui.modelviewer.categories.entries.entity.EntityEntrySheep;
+import net.minecraft.client.gui.modelviewer.categories.entries.entity.EntityEntrySlime;
+import net.minecraft.client.gui.modelviewer.categories.entries.entity.EntityEntryTNT;
+import net.minecraft.client.gui.modelviewer.categories.entries.entity.EntityEntryWolf;
 import net.minecraft.client.gui.modelviewer.elements.ListenerTextFieldElement;
 import net.minecraft.client.gui.modelviewer.elements.TextCycleElement;
 import net.minecraft.core.entity.Entity;
 import net.minecraft.core.entity.EntityDispatcher;
 import net.minecraft.core.entity.Mob;
-import net.minecraft.core.entity.monster.HumanMob;
-import net.minecraft.core.entity.monster.ZombieMob;
+import net.minecraft.core.entity.monster.MobHuman;
+import net.minecraft.core.entity.monster.MobZombie;
 import net.minecraft.core.lang.I18n;
 import net.minecraft.core.util.helper.MathHelper;
 
@@ -30,35 +30,35 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 
-public class EntityCategory extends ModelViewerCategory{
+public class ViewerCategoryEntity extends ModelViewerCategory{
     public HashMap<Class<? extends Entity>, EntityEntry<?>> entryMap = new HashMap<>();
     public List<EntityEntry<?>> entryList = new ArrayList<>();
     public ListenerTextFieldElement entityName;
     public TextCycleElement<Integer> entityVariant;
     public EntityEntry<?> currentEntry = EntityEntry.blankEntry;
     public Entity displayEntity;
-    public EntityCategory(ModelViewerScreen modelViewer) {
+    public ViewerCategoryEntity(ScreenModelViewer modelViewer) {
         super(modelViewer);
         createEntries();
     }
     public void createEntries(){
         for (String s : EntityDispatcher.classToKeyMap.values()){
             try{
-                addEntry(new DispatcherEntry(s));
+                addEntry(new EntityEntryDispatcher(s));
             } catch (Exception ignore){}
         }
-        addEntry(new EntityItemEntry());
-        addEntry(new EntityFireflyEntry());
-        addEntry(new EntitySheepEntry());
-        addEntry(new EntityWolfEntry());
-        addEntry(new EntityCreeperEntry());
-        addEntry(new EntityArmoredZombieEntry());
-        addEntry(new EntitySlimeEntry());
-        addEntry(new EntityMinecartEntry());
-        addEntry(new EntityBoatEntry());
-        addEntry(new EntityFallingSandEntry());
-        addEntry(new EntityTNTEntry());
-        addEntry(new EntityPaintingEntry());
+        addEntry(new EntityEntryItem());
+        addEntry(new EntityEntryFirefly());
+        addEntry(new EntityEntrySheep());
+        addEntry(new EntityEntryWolf());
+        addEntry(new EntityEntryCreeper());
+        addEntry(new EntityEntryArmoredZombie());
+        addEntry(new EntityEntrySlime());
+        addEntry(new EntityEntryMinecart());
+        addEntry(new EntityEntryBoat());
+        addEntry(new EntityEntryFallingBlock());
+        addEntry(new EntityEntryTNT());
+        addEntry(new EntityEntryPainting());
     }
     public void addEntry(EntityEntry<?> entry){
         Entity entity = entry.getEntityInstance(mc, mc.theWorld);
@@ -151,7 +151,7 @@ public class EntityCategory extends ModelViewerCategory{
 
     @Override
     public void onOpen() {
-        currentEntry = entryMap.get(ZombieMob.class);
+        currentEntry = entryMap.get(MobZombie.class);
         currentEntry.onOpen();
         setDisplayEntity(currentEntry.getEntityInstance(mc, mc.theWorld));
     }
@@ -168,7 +168,7 @@ public class EntityCategory extends ModelViewerCategory{
             displayEntity.tickCount++;
             getEntry(displayEntity).onTick(displayEntity);
         }
-        if (!(displayEntity instanceof HumanMob) || System.currentTimeMillis() > modelViewer.timeLastKeyPressed + 1000){
+        if (!(displayEntity instanceof MobHuman) || System.currentTimeMillis() > modelViewer.timeLastKeyPressed + 1000){
             if (displayEntity != null && displayEntity instanceof Mob){
                 String oldNick = ((Mob) displayEntity).nickname;
                 if (!oldNick.equals(entityName.getText())){
diff --git a/src/main/java/net/minecraft/client/gui/modelviewer/categories/ParticleCategory.java b/src/main/java/net/minecraft/client/gui/modelviewer/categories/ViewerCategoryParticle.java
similarity index 84%
rename from src/main/java/net/minecraft/client/gui/modelviewer/categories/ParticleCategory.java
rename to src/main/java/net/minecraft/client/gui/modelviewer/categories/ViewerCategoryParticle.java
index 5d9d2fc1e..88b969c67 100644
--- a/src/main/java/net/minecraft/client/gui/modelviewer/categories/ParticleCategory.java
+++ b/src/main/java/net/minecraft/client/gui/modelviewer/categories/ViewerCategoryParticle.java
@@ -2,15 +2,15 @@ package net.minecraft.client.gui.modelviewer.categories;
 
 import net.minecraft.client.entity.particle.ParticleDispatcher;
 import net.minecraft.client.gui.ButtonElement;
-import net.minecraft.client.gui.modelviewer.ModelViewerScreen;
-import net.minecraft.client.gui.modelviewer.categories.entries.particle.BlockFXEntry;
-import net.minecraft.client.gui.modelviewer.categories.entries.particle.BubbleFXEntry;
-import net.minecraft.client.gui.modelviewer.categories.entries.particle.GenericFXEntry;
-import net.minecraft.client.gui.modelviewer.categories.entries.particle.ItemFXEntry;
-import net.minecraft.client.gui.modelviewer.categories.entries.particle.LeafFXEntry;
-import net.minecraft.client.gui.modelviewer.categories.entries.particle.NoteFXEntry;
+import net.minecraft.client.gui.modelviewer.ScreenModelViewer;
+import net.minecraft.client.gui.modelviewer.categories.entries.particle.ParticleEntryBlock;
+import net.minecraft.client.gui.modelviewer.categories.entries.particle.ParticleEntryBubble;
+import net.minecraft.client.gui.modelviewer.categories.entries.particle.ParticleEntryGeneric;
+import net.minecraft.client.gui.modelviewer.categories.entries.particle.ParticleEntryItem;
+import net.minecraft.client.gui.modelviewer.categories.entries.particle.ParticleEntryLeaf;
+import net.minecraft.client.gui.modelviewer.categories.entries.particle.ParticleEntryNote;
 import net.minecraft.client.gui.modelviewer.categories.entries.particle.ParticleEntry;
-import net.minecraft.client.gui.modelviewer.categories.entries.particle.RedDustFXEntry;
+import net.minecraft.client.gui.modelviewer.categories.entries.particle.ParticleEntryRedstone;
 import net.minecraft.client.gui.modelviewer.elements.ListenerSliderElement;
 import net.minecraft.core.lang.I18n;
 
@@ -20,13 +20,13 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-public class ParticleCategory extends ModelViewerCategory{
+public class ViewerCategoryParticle extends ModelViewerCategory{
     public Map<String, ParticleEntry> entryMap = new HashMap<>();
     public List<ParticleEntry> entriesList;
     public double spawnRadius = 0;
     public ParticleEntry currentEntry;
 
-    public ParticleCategory(ModelViewerScreen modelViewer) {
+    public ViewerCategoryParticle(ScreenModelViewer modelViewer) {
         super(modelViewer);
         initEntries();
         entriesList = new ArrayList<>(entryMap.values());
@@ -34,14 +34,14 @@ public class ParticleCategory extends ModelViewerCategory{
     }
     private void initEntries(){
         for (String s : ParticleDispatcher.getInstance().getParticleIds()){
-            entryMap.put(s, new GenericFXEntry(s));
+            entryMap.put(s, new ParticleEntryGeneric(s));
         }
-        entryMap.put("bubble", new BubbleFXEntry());
-        entryMap.put("note", new NoteFXEntry());
-        entryMap.put("reddust", new RedDustFXEntry());
-        entryMap.put("item", new ItemFXEntry());
-        entryMap.put("block", new BlockFXEntry());
-        entryMap.put("fallingleaf", new LeafFXEntry());
+        entryMap.put("bubble", new ParticleEntryBubble());
+        entryMap.put("note", new ParticleEntryNote());
+        entryMap.put("reddust", new ParticleEntryRedstone());
+        entryMap.put("item", new ParticleEntryItem());
+        entryMap.put("block", new ParticleEntryBlock());
+        entryMap.put("fallingleaf", new ParticleEntryLeaf());
     }
     private void setCurrentEntry(ParticleEntry entry){
         if (currentEntry != null){
diff --git a/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/block/BasicBlockEntry.java b/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/block/BlockEntryBasic.java
similarity index 88%
rename from src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/block/BasicBlockEntry.java
rename to src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/block/BlockEntryBasic.java
index a7244732d..e55c7746b 100644
--- a/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/block/BasicBlockEntry.java
+++ b/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/block/BlockEntryBasic.java
@@ -8,8 +8,8 @@ import net.minecraft.core.world.World;
 
 import java.util.List;
 
-public class BasicBlockEntry extends BlockEntry{
-    public BasicBlockEntry(Block block) {
+public class BlockEntryBasic extends BlockEntry{
+    public BlockEntryBasic(Block block) {
         super(block);
     }
 
diff --git a/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/block/JarEntry.java b/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/block/BlockEntryJar.java
similarity index 82%
rename from src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/block/JarEntry.java
rename to src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/block/BlockEntryJar.java
index 567fc8e79..b9e61263f 100644
--- a/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/block/JarEntry.java
+++ b/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/block/BlockEntryJar.java
@@ -3,11 +3,11 @@ package net.minecraft.client.gui.modelviewer.categories.entries.block;
 import net.minecraft.client.Minecraft;
 import net.minecraft.client.gui.ButtonElement;
 import net.minecraft.client.gui.Screen;
-import net.minecraft.client.gui.modelviewer.ModelViewerScreen;
+import net.minecraft.client.gui.modelviewer.ScreenModelViewer;
 import net.minecraft.client.gui.modelviewer.elements.TextCycleElement;
 import net.minecraft.core.block.Block;
 import net.minecraft.core.block.Blocks;
-import net.minecraft.core.block.entity.FlowerJarBlockEntity;
+import net.minecraft.core.block.entity.TileEntityFlowerJar;
 import net.minecraft.core.util.helper.MathHelper;
 import net.minecraft.core.world.World;
 import net.minecraft.core.world.chunk.DisplayChunk;
@@ -15,8 +15,8 @@ import net.minecraft.core.world.chunk.DisplayChunk;
 import java.util.ArrayList;
 import java.util.List;
 
-public class JarEntry extends BlockEntry{
-    public JarEntry() {
+public class BlockEntryJar extends BlockEntry{
+    public BlockEntryJar() {
         super(Blocks.JAR_GLASS);
     }
 
@@ -30,7 +30,7 @@ public class JarEntry extends BlockEntry{
         TextCycleElement<Integer> jarCycle = new TextCycleElement<Integer>(parentScreen, mc.font, - 120, 0, 120, 20, 0) {
             @Override
             public Integer cycleElement(Integer current, int offset) {
-                return ModelViewerScreen.cycleBlockId(current, offset);
+                return ScreenModelViewer.cycleBlockId(current, offset);
             }
 
             @Override
@@ -51,7 +51,7 @@ public class JarEntry extends BlockEntry{
         };
         jarCycle.textField.setPrefaceText("Jar: ");
         jarCycle.textField.setPlaceholder("Jar ID");
-        jarCycle.setOnValueChanged(() -> ((FlowerJarBlockEntity)DisplayChunk.displayBlockEntity).flowerInPot = jarCycle.getCurrentElement());
+        jarCycle.setOnValueChanged(() -> ((TileEntityFlowerJar)DisplayChunk.displayTileEntity).flowerInPot = jarCycle.getCurrentElement());
 
         return new ArrayList<ButtonElement>(){{add(jarCycle);}};
     }
diff --git a/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/block/MobSpawnerEntry.java b/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/block/BlockEntryMobSpawner.java
similarity index 84%
rename from src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/block/MobSpawnerEntry.java
rename to src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/block/BlockEntryMobSpawner.java
index fa872f3e8..a660f5543 100644
--- a/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/block/MobSpawnerEntry.java
+++ b/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/block/BlockEntryMobSpawner.java
@@ -5,7 +5,7 @@ import net.minecraft.client.gui.ButtonElement;
 import net.minecraft.client.gui.Screen;
 import net.minecraft.client.gui.modelviewer.elements.ListSelectorButtonElement;
 import net.minecraft.core.block.Blocks;
-import net.minecraft.core.block.entity.MobSpawnerBlockEntity;
+import net.minecraft.core.block.entity.TileEntityMobSpawner;
 import net.minecraft.core.entity.EntityDispatcher;
 import net.minecraft.core.lang.I18n;
 import net.minecraft.core.world.World;
@@ -14,14 +14,14 @@ import net.minecraft.core.world.chunk.DisplayChunk;
 import java.util.ArrayList;
 import java.util.List;
 
-public class MobSpawnerEntry extends BlockEntry{
-    public MobSpawnerEntry() {
+public class BlockEntryMobSpawner extends BlockEntry{
+    public BlockEntryMobSpawner() {
         super(Blocks.MOBSPAWNER);
     }
 
     @Override
     public void onTick(World world, int meta) {
-        MobSpawnerBlockEntity spawner = (MobSpawnerBlockEntity) DisplayChunk.displayBlockEntity;
+        TileEntityMobSpawner spawner = (TileEntityMobSpawner) DisplayChunk.displayTileEntity;
         spawner.yaw2 = spawner.yaw;
         double xPos = (double) spawner.x + spawner.worldObj.rand.nextFloat();
         double yPos = (double) spawner.y + spawner.worldObj.rand.nextFloat();
@@ -45,7 +45,7 @@ public class MobSpawnerEntry extends BlockEntry{
                 return element;
             }
         };
-        dispatcherIds.setOnValueChanged(() -> ((MobSpawnerBlockEntity)DisplayChunk.displayBlockEntity).setMobId(dispatcherIds.getCurrentElement()));
+        dispatcherIds.setOnValueChanged(() -> ((TileEntityMobSpawner)DisplayChunk.displayTileEntity).setMobId(dispatcherIds.getCurrentElement()));
         return new ArrayList<ButtonElement>(){{add(dispatcherIds);}};
     }
 
diff --git a/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/block/SignEntry.java b/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/block/BlockEntrySign.java
similarity index 86%
rename from src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/block/SignEntry.java
rename to src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/block/BlockEntrySign.java
index e8282894e..a5f5394d1 100644
--- a/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/block/SignEntry.java
+++ b/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/block/BlockEntrySign.java
@@ -5,15 +5,15 @@ import net.minecraft.client.gui.ButtonElement;
 import net.minecraft.client.gui.Screen;
 import net.minecraft.client.gui.modelviewer.elements.ListenerTextFieldElement;
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.entity.SignBlockEntity;
+import net.minecraft.core.block.entity.TileEntitySign;
 import net.minecraft.core.world.World;
 import net.minecraft.core.world.chunk.DisplayChunk;
 
 import java.util.ArrayList;
 import java.util.List;
 
-public class SignEntry extends BlockEntry{
-    public SignEntry(Block block) {
+public class BlockEntrySign extends BlockEntry{
+    public BlockEntrySign(Block block) {
         super(block);
     }
 
@@ -24,7 +24,7 @@ public class SignEntry extends BlockEntry{
 
     @Override
     public List<ButtonElement> getEntryButtons(Minecraft mc, Screen parentScreen, World world, int meta) {
-        SignBlockEntity sign = (SignBlockEntity)DisplayChunk.displayBlockEntity;
+        TileEntitySign sign = (TileEntitySign)DisplayChunk.displayTileEntity;
         ListenerTextFieldElement line1 = new ListenerTextFieldElement(parentScreen, mc.font, -120, 0,                       120, 20, "", "Line 1");
         ListenerTextFieldElement line2 = new ListenerTextFieldElement(parentScreen, mc.font, -120, line1.yPosition + 21,    120, 20, "", "Line 2");
         ListenerTextFieldElement line3 = new ListenerTextFieldElement(parentScreen, mc.font, -120, line2.yPosition + 21,    120, 20, "", "Line 3");
@@ -49,6 +49,6 @@ public class SignEntry extends BlockEntry{
 
     @Override
     public void onOpen(World world, int meta) {
-        DisplayChunk.setDisplayTileEntity(world, new SignBlockEntity());
+        DisplayChunk.setDisplayTileEntity(world, new TileEntitySign());
     }
 }
diff --git a/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityEntry.java b/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityEntry.java
index ed91ab52f..896f3581a 100644
--- a/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityEntry.java
+++ b/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityEntry.java
@@ -9,7 +9,7 @@ import net.minecraft.core.world.World;
 import java.util.List;
 
 public abstract class EntityEntry<T extends Entity>{
-    public static final EntityEntry<Entity> blankEntry = new BlankEntry();
+    public static final EntityEntry<Entity> blankEntry = new EntityEntryBlank();
     public EntityEntry(){}
     public abstract void onTick(T entity);
     public abstract List<ButtonElement> getEntryButtons(Minecraft mc, Screen parentScreen, T entity);
diff --git a/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityArmoredZombieEntry.java b/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityEntryArmoredZombie.java
similarity index 78%
rename from src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityArmoredZombieEntry.java
rename to src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityEntryArmoredZombie.java
index 1b5d031e0..a93dcceba 100644
--- a/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityArmoredZombieEntry.java
+++ b/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityEntryArmoredZombie.java
@@ -4,21 +4,21 @@ import net.minecraft.client.Minecraft;
 import net.minecraft.client.gui.ButtonElement;
 import net.minecraft.client.gui.Screen;
 import net.minecraft.client.gui.modelviewer.elements.ListenerButtonElement;
-import net.minecraft.core.entity.monster.ZombieArmoredMob;
+import net.minecraft.core.entity.monster.MobZombieArmored;
 import net.minecraft.core.lang.I18n;
 import net.minecraft.core.world.World;
 
 import java.util.ArrayList;
 import java.util.List;
 
-public class EntityArmoredZombieEntry extends EntityEntry<ZombieArmoredMob>{
+public class EntityEntryArmoredZombie extends EntityEntry<MobZombieArmored>{
     @Override
-    public void onTick(ZombieArmoredMob entity) {
+    public void onTick(MobZombieArmored entity) {
 
     }
 
     @Override
-    public List<ButtonElement> getEntryButtons(Minecraft mc, Screen parentScreen, ZombieArmoredMob armoredZombie) {
+    public List<ButtonElement> getEntryButtons(Minecraft mc, Screen parentScreen, MobZombieArmored armoredZombie) {
         List<ButtonElement> buttonList = new ArrayList<>();
         ListenerButtonElement swordButton = new ListenerButtonElement(-1, - 120, 0, 120, 20, I18n.getInstance().translateKeyAndFormat("model.category.entity.armored_zombie.button.sword", false));
         swordButton.setActionListener(() -> {
@@ -31,8 +31,8 @@ public class EntityArmoredZombieEntry extends EntityEntry<ZombieArmoredMob>{
     }
 
     @Override
-    public ZombieArmoredMob getEntityInstance(Minecraft mc, World world) {
-        ZombieArmoredMob armoredZombie = new ZombieArmoredMob(world);
+    public MobZombieArmored getEntityInstance(Minecraft mc, World world) {
+        MobZombieArmored armoredZombie = new MobZombieArmored(world);
         armoredZombie.setHoldingSword(false);
         return armoredZombie;
     }
diff --git a/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/BlankEntry.java b/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityEntryBlank.java
similarity index 92%
rename from src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/BlankEntry.java
rename to src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityEntryBlank.java
index 0067a45f5..273918123 100644
--- a/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/BlankEntry.java
+++ b/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityEntryBlank.java
@@ -8,7 +8,7 @@ import net.minecraft.core.world.World;
 
 import java.util.List;
 
-public class BlankEntry extends EntityEntry<Entity> {
+public class EntityEntryBlank extends EntityEntry<Entity> {
     @Override
     public void onTick(Entity entity) {
 
diff --git a/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityBoatEntry.java b/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityEntryBoat.java
similarity index 90%
rename from src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityBoatEntry.java
rename to src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityEntryBoat.java
index 882226a60..8f6299068 100644
--- a/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityBoatEntry.java
+++ b/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityEntryBoat.java
@@ -4,7 +4,7 @@ import net.minecraft.client.Minecraft;
 import net.minecraft.client.gui.ButtonElement;
 import net.minecraft.client.gui.Screen;
 import net.minecraft.client.gui.modelviewer.elements.ListenerButtonElement;
-import net.minecraft.core.block.entity.FlagBlockEntity;
+import net.minecraft.core.block.entity.TileEntityFlag;
 import net.minecraft.core.entity.vehicle.BoatEntity;
 import net.minecraft.core.lang.I18n;
 import net.minecraft.core.world.World;
@@ -12,7 +12,7 @@ import net.minecraft.core.world.World;
 import java.util.ArrayList;
 import java.util.List;
 
-public class EntityBoatEntry extends EntityEntry<BoatEntity>{
+public class EntityEntryBoat extends EntityEntry<BoatEntity>{
     @Override
     public void onTick(BoatEntity entity) {
 
@@ -24,7 +24,7 @@ public class EntityBoatEntry extends EntityEntry<BoatEntity>{
         flagButton.setActionListener(() -> {
             boolean flag;
             if (entity.tileEntityFlag == null){
-                entity.tileEntityFlag = new FlagBlockEntity();
+                entity.tileEntityFlag = new TileEntityFlag();
                 flag = true;
             } else {
                 entity.tileEntityFlag = null;
diff --git a/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityCreeperEntry.java b/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityEntryCreeper.java
similarity index 82%
rename from src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityCreeperEntry.java
rename to src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityEntryCreeper.java
index c6095b9e4..63a56902b 100644
--- a/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityCreeperEntry.java
+++ b/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityEntryCreeper.java
@@ -4,21 +4,21 @@ import net.minecraft.client.Minecraft;
 import net.minecraft.client.gui.ButtonElement;
 import net.minecraft.client.gui.Screen;
 import net.minecraft.client.gui.modelviewer.elements.ListenerButtonElement;
-import net.minecraft.core.entity.monster.CreeperMob;
+import net.minecraft.core.entity.monster.MobCreeper;
 import net.minecraft.core.lang.I18n;
 import net.minecraft.core.world.World;
 
 import java.util.ArrayList;
 import java.util.List;
 
-public class EntityCreeperEntry extends EntityEntry<CreeperMob>{
+public class EntityEntryCreeper extends EntityEntry<MobCreeper>{
     @Override
-    public void onTick(CreeperMob entity) {
+    public void onTick(MobCreeper entity) {
 
     }
 
     @Override
-    public List<ButtonElement> getEntryButtons(Minecraft mc, Screen parentScreen, CreeperMob creeper) {
+    public List<ButtonElement> getEntryButtons(Minecraft mc, Screen parentScreen, MobCreeper creeper) {
         List<ButtonElement> buttonList = new ArrayList<>();
         boolean isCharged = creeper.getPowered();
         ListenerButtonElement chargedToggle = new ListenerButtonElement(-1, - 120, 0, 120, 20, I18n.getInstance().translateKeyAndFormat("model.category.entity.creeper.button.charged", isCharged));
@@ -33,8 +33,8 @@ public class EntityCreeperEntry extends EntityEntry<CreeperMob>{
     }
 
     @Override
-    public CreeperMob getEntityInstance(Minecraft mc, World world) {
-        return new CreeperMob(world);
+    public MobCreeper getEntityInstance(Minecraft mc, World world) {
+        return new MobCreeper(world);
     }
 
     @Override
diff --git a/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/DispatcherEntry.java b/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityEntryDispatcher.java
similarity index 87%
rename from src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/DispatcherEntry.java
rename to src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityEntryDispatcher.java
index 420c7c293..fcb9ba12f 100644
--- a/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/DispatcherEntry.java
+++ b/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityEntryDispatcher.java
@@ -9,9 +9,9 @@ import net.minecraft.core.world.World;
 
 import java.util.List;
 
-public class DispatcherEntry extends EntityEntry<Entity> {
+public class EntityEntryDispatcher extends EntityEntry<Entity> {
     public final String id;
-    public DispatcherEntry(String dispatcherId){
+    public EntityEntryDispatcher(String dispatcherId){
         id = dispatcherId;
     }
     @Override
diff --git a/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityFallingSandEntry.java b/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityEntryFallingBlock.java
similarity index 78%
rename from src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityFallingSandEntry.java
rename to src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityEntryFallingBlock.java
index 076039760..a3882b080 100644
--- a/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityFallingSandEntry.java
+++ b/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityEntryFallingBlock.java
@@ -3,28 +3,28 @@ package net.minecraft.client.gui.modelviewer.categories.entries.entity;
 import net.minecraft.client.Minecraft;
 import net.minecraft.client.gui.ButtonElement;
 import net.minecraft.client.gui.Screen;
-import net.minecraft.client.gui.modelviewer.ModelViewerScreen;
+import net.minecraft.client.gui.modelviewer.ScreenModelViewer;
 import net.minecraft.client.gui.modelviewer.elements.TextCycleElement;
 import net.minecraft.core.block.Block;
 
-import net.minecraft.core.entity.FallingBlockEntity;
+import net.minecraft.core.entity.EntityFallingBlock;
 import net.minecraft.core.world.World;
 
 import java.util.ArrayList;
 import java.util.List;
 
-public class EntityFallingSandEntry extends EntityEntry<FallingBlockEntity>{
+public class EntityEntryFallingBlock extends EntityEntry<EntityFallingBlock>{
     @Override
-    public void onTick(FallingBlockEntity entity) {
+    public void onTick(EntityFallingBlock entity) {
 
     }
 
     @Override
-    public List<ButtonElement> getEntryButtons(Minecraft mc, Screen parentScreen, FallingBlockEntity sand) {
+    public List<ButtonElement> getEntryButtons(Minecraft mc, Screen parentScreen, EntityFallingBlock sand) {
         TextCycleElement<Integer> blockIdCycle = new TextCycleElement<Integer>(parentScreen, mc.font, - 120, 0, 120, 20, sand.carriedBlock.blockId) {
             @Override
             public Integer cycleElement(Integer current, int offset) {
-                return ModelViewerScreen.cycleBlockId(current, offset);
+                return ScreenModelViewer.cycleBlockId(current, offset);
             }
 
             @Override
@@ -48,8 +48,8 @@ public class EntityFallingSandEntry extends EntityEntry<FallingBlockEntity>{
     }
 
     @Override
-    public FallingBlockEntity getEntityInstance(Minecraft mc, World world) {
-        return new FallingBlockEntity(world);
+    public EntityFallingBlock getEntityInstance(Minecraft mc, World world) {
+        return new EntityFallingBlock(world);
     }
 
     @Override
diff --git a/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityFireflyEntry.java b/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityEntryFirefly.java
similarity index 78%
rename from src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityFireflyEntry.java
rename to src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityEntryFirefly.java
index 0206ac0e8..78824aa36 100644
--- a/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityFireflyEntry.java
+++ b/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityEntryFirefly.java
@@ -5,7 +5,7 @@ import net.minecraft.client.gui.ButtonElement;
 import net.minecraft.client.gui.Screen;
 import net.minecraft.client.gui.modelviewer.elements.ListSelectorButtonElement;
 import net.minecraft.client.gui.modelviewer.elements.ListenerSliderElement;
-import net.minecraft.core.entity.animal.FireflyClusterMob;
+import net.minecraft.core.entity.animal.MobFireflyCluster;
 import net.minecraft.core.lang.I18n;
 import net.minecraft.core.world.World;
 
@@ -13,9 +13,9 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Random;
 
-public class EntityFireflyEntry extends EntityEntry<FireflyClusterMob>{
+public class EntityEntryFirefly extends EntityEntry<MobFireflyCluster>{
     @Override
-    public void onTick(FireflyClusterMob fireflyCluster) {
+    public void onTick(MobFireflyCluster fireflyCluster) {
         Random random = fireflyCluster.world.rand;
         double dy = (random.nextFloat() * 2F - 1F) * (fireflyCluster.bbHeight);
         double dx = (random.nextFloat() * 2F - 1F) * (fireflyCluster.bbWidth);
@@ -27,7 +27,7 @@ public class EntityFireflyEntry extends EntityEntry<FireflyClusterMob>{
     }
 
     @Override
-    public List<ButtonElement> getEntryButtons(Minecraft mc, Screen parentScreen, FireflyClusterMob fireflyCluster) {
+    public List<ButtonElement> getEntryButtons(Minecraft mc, Screen parentScreen, MobFireflyCluster fireflyCluster) {
         List<ButtonElement> buttonList = new ArrayList<>();
         ListenerSliderElement slider = new ListenerSliderElement(-1, - 120, 0, 120, 20, I18n.getInstance().translateKeyAndFormat("model.category.entity.fireflycluster.slider.size", 0), 0f);
         slider.setOnValueChanged(() -> {
@@ -35,9 +35,9 @@ public class EntityFireflyEntry extends EntityEntry<FireflyClusterMob>{
             slider.displayString = I18n.getInstance().translateKeyAndFormat("model.category.entity.fireflycluster.slider.size", fireflyCluster.getClusterSize());
         });
 
-        ListSelectorButtonElement<FireflyClusterMob.FireflyColor> button = new ListSelectorButtonElement<FireflyClusterMob.FireflyColor>(-1, - 120, slider.yPosition + 21, 120, 20, I18n.getInstance().translateKey("model.category.entity.fireflycluster.button.cycle"), FireflyClusterMob.FireflyColor.fireFlyColors.values(), FireflyClusterMob.FireflyColor.GREEN) {
+        ListSelectorButtonElement<MobFireflyCluster.FireflyColor> button = new ListSelectorButtonElement<MobFireflyCluster.FireflyColor>(-1, - 120, slider.yPosition + 21, 120, 20, I18n.getInstance().translateKey("model.category.entity.fireflycluster.button.cycle"), MobFireflyCluster.FireflyColor.fireFlyColors.values(), MobFireflyCluster.FireflyColor.GREEN) {
             @Override
-            public String getNameFromElement(FireflyClusterMob.FireflyColor element) {
+            public String getNameFromElement(MobFireflyCluster.FireflyColor element) {
                 return element.getParticleName();
             }
         };
@@ -48,8 +48,8 @@ public class EntityFireflyEntry extends EntityEntry<FireflyClusterMob>{
     }
 
     @Override
-    public FireflyClusterMob getEntityInstance(Minecraft mc, World world) {
-        FireflyClusterMob cluster = new FireflyClusterMob(world);
+    public MobFireflyCluster getEntityInstance(Minecraft mc, World world) {
+        MobFireflyCluster cluster = new MobFireflyCluster(world);
         cluster.setClusterSize(0);
         return cluster;
     }
diff --git a/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityItemEntry.java b/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityEntryItem.java
similarity index 78%
rename from src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityItemEntry.java
rename to src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityEntryItem.java
index d13ea3380..2b7a55fde 100644
--- a/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityItemEntry.java
+++ b/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityEntryItem.java
@@ -3,11 +3,11 @@ package net.minecraft.client.gui.modelviewer.categories.entries.entity;
 import net.minecraft.client.Minecraft;
 import net.minecraft.client.gui.ButtonElement;
 import net.minecraft.client.gui.Screen;
-import net.minecraft.client.gui.modelviewer.ModelViewerScreen;
+import net.minecraft.client.gui.modelviewer.ScreenModelViewer;
 import net.minecraft.client.gui.modelviewer.elements.ListenerSliderElement;
 import net.minecraft.client.gui.modelviewer.elements.TextCycleElement;
 import net.minecraft.core.block.Blocks;
-import net.minecraft.core.entity.ItemEntity;
+import net.minecraft.core.entity.EntityItem;
 import net.minecraft.core.item.Item;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.lang.I18n;
@@ -17,20 +17,20 @@ import net.minecraft.core.world.World;
 import java.util.ArrayList;
 import java.util.List;
 
-public class EntityItemEntry extends EntityEntry<ItemEntity>{
+public class EntityEntryItem extends EntityEntry<EntityItem>{
     @Override
-    public void onTick(ItemEntity itemEntity) {
-        itemEntity.age++;
+    public void onTick(EntityItem entityItem) {
+        entityItem.age++;
     }
 
     @Override
-    public List<ButtonElement> getEntryButtons(Minecraft mc, Screen parentScreen, ItemEntity itemEntity) {
+    public List<ButtonElement> getEntryButtons(Minecraft mc, Screen parentScreen, EntityItem entityItem) {
         List<ButtonElement> buttonList = new ArrayList<>();
-        itemEntity.item = Blocks.STONE.getDefaultStack();
+        entityItem.item = Blocks.STONE.getDefaultStack();
         TextCycleElement<Integer> itemIdCycle = new TextCycleElement<Integer>(parentScreen, mc.font, - 120, 0, 120, 20, 1) {
             @Override
             public Integer cycleElement(Integer current, int offset) {
-                return ModelViewerScreen.cycleItemId(current, offset);
+                return ScreenModelViewer.cycleItemId(current, offset);
             }
 
             @Override
@@ -39,7 +39,7 @@ public class EntityItemEntry extends EntityEntry<ItemEntity>{
                     int id = Integer.parseInt(s);
                     return MathHelper.clamp(id, 0, Item.itemsList.length);
                 } catch (Exception ignored){}
-                return itemEntity.item.itemID;
+                return entityItem.item.itemID;
             }
 
             @Override
@@ -62,7 +62,7 @@ public class EntityItemEntry extends EntityEntry<ItemEntity>{
                     int id = Integer.parseInt(s);
                     return MathHelper.clamp(id, 0, 0x3FFF);
                 } catch (Exception ignored){}
-                return itemEntity.item.getMetadata();
+                return entityItem.item.getMetadata();
             }
 
             @Override
@@ -74,12 +74,12 @@ public class EntityItemEntry extends EntityEntry<ItemEntity>{
         metaCycle.textField.setPlaceholder("Meta");
         ListenerSliderElement sizeSlider = new ListenerSliderElement(-1, - 120, metaCycle.yPosition + 21,120, 20, I18n.getInstance().translateKeyAndFormat("model.category.entity.item.slider.size", 1), 1/64f);
 
-        itemIdCycle.setOnValueChanged(() -> itemEntity.item = new ItemStack(itemIdCycle.getCurrentElement(), (int) (sizeSlider.sliderValue * 64), metaCycle.getCurrentElement()));
-        metaCycle.setOnValueChanged(() -> itemEntity.item = new ItemStack(itemIdCycle.getCurrentElement(), (int) (sizeSlider.sliderValue * 64), metaCycle.getCurrentElement()));
+        itemIdCycle.setOnValueChanged(() -> entityItem.item = new ItemStack(itemIdCycle.getCurrentElement(), (int) (sizeSlider.sliderValue * 64), metaCycle.getCurrentElement()));
+        metaCycle.setOnValueChanged(() -> entityItem.item = new ItemStack(itemIdCycle.getCurrentElement(), (int) (sizeSlider.sliderValue * 64), metaCycle.getCurrentElement()));
 
         sizeSlider.setOnValueChanged(() -> {
-            itemEntity.item.stackSize = (int) (sizeSlider.sliderValue * 64);
-            sizeSlider.displayString = I18n.getInstance().translateKeyAndFormat("model.category.entity.item.slider.size", itemEntity.item.stackSize);
+            entityItem.item.stackSize = (int) (sizeSlider.sliderValue * 64);
+            sizeSlider.displayString = I18n.getInstance().translateKeyAndFormat("model.category.entity.item.slider.size", entityItem.item.stackSize);
         });
 
         buttonList.add(itemIdCycle);
@@ -89,8 +89,8 @@ public class EntityItemEntry extends EntityEntry<ItemEntity>{
     }
 
     @Override
-    public ItemEntity getEntityInstance(Minecraft mc, World world) {
-        return new ItemEntity(world);
+    public EntityItem getEntityInstance(Minecraft mc, World world) {
+        return new EntityItem(world);
     }
 
     @Override
diff --git a/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityMinecartEntry.java b/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityEntryMinecart.java
similarity index 95%
rename from src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityMinecartEntry.java
rename to src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityEntryMinecart.java
index 8668dc062..b5c644bc2 100644
--- a/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityMinecartEntry.java
+++ b/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityEntryMinecart.java
@@ -12,7 +12,7 @@ import org.lwjgl.input.Keyboard;
 import java.util.ArrayList;
 import java.util.List;
 
-public class EntityMinecartEntry extends EntityEntry<MinecartEntity>{
+public class EntityEntryMinecart extends EntityEntry<MinecartEntity>{
     @Override
     public void onTick(MinecartEntity entity) {
 
diff --git a/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityPaintingEntry.java b/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityEntryPainting.java
similarity index 76%
rename from src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityPaintingEntry.java
rename to src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityEntryPainting.java
index 94dc7c958..29a82e0bb 100644
--- a/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityPaintingEntry.java
+++ b/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityEntryPainting.java
@@ -4,21 +4,21 @@ import net.minecraft.client.Minecraft;
 import net.minecraft.client.gui.ButtonElement;
 import net.minecraft.client.gui.Screen;
 import net.minecraft.client.gui.modelviewer.elements.ListenerSliderElement;
-import net.minecraft.core.entity.PaintingEntity;
+import net.minecraft.core.entity.EntityPainting;
 import net.minecraft.core.enums.ArtType;
 import net.minecraft.core.world.World;
 
 import java.util.ArrayList;
 import java.util.List;
 
-public class EntityPaintingEntry extends EntityEntry<PaintingEntity>{
+public class EntityEntryPainting extends EntityEntry<EntityPainting>{
     @Override
-    public void onTick(PaintingEntity entity) {
+    public void onTick(EntityPainting entity) {
 
     }
 
     @Override
-    public List<ButtonElement> getEntryButtons(Minecraft mc, Screen parentScreen, PaintingEntity painting) {
+    public List<ButtonElement> getEntryButtons(Minecraft mc, Screen parentScreen, EntityPainting painting) {
         ListenerSliderElement slider = new ListenerSliderElement(-1, - 120, 0, 120, 20, painting.art.key, 0f);
         slider.setOnValueChanged(() -> {
             painting.art = ArtType.values.get((int) (slider.sliderValue * (ArtType.values.size() - 1)));
@@ -28,8 +28,8 @@ public class EntityPaintingEntry extends EntityEntry<PaintingEntity>{
     }
 
     @Override
-    public PaintingEntity getEntityInstance(Minecraft mc, World world) {
-        PaintingEntity painting = new PaintingEntity(world);
+    public EntityPainting getEntityInstance(Minecraft mc, World world) {
+        EntityPainting painting = new EntityPainting(world);
         painting.setDirection(2);
         return painting;
     }
diff --git a/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntitySheepEntry.java b/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityEntrySheep.java
similarity index 83%
rename from src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntitySheepEntry.java
rename to src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityEntrySheep.java
index af51cb4bf..fd87d4aff 100644
--- a/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntitySheepEntry.java
+++ b/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityEntrySheep.java
@@ -4,7 +4,7 @@ import net.minecraft.client.Minecraft;
 import net.minecraft.client.gui.ButtonElement;
 import net.minecraft.client.gui.Screen;
 import net.minecraft.client.gui.modelviewer.elements.ListenerSliderElement;
-import net.minecraft.core.entity.animal.SheepMob;
+import net.minecraft.core.entity.animal.MobSheep;
 import net.minecraft.core.lang.I18n;
 import net.minecraft.core.util.helper.DyeColor;
 import net.minecraft.core.world.World;
@@ -12,14 +12,14 @@ import net.minecraft.core.world.World;
 import java.util.ArrayList;
 import java.util.List;
 
-public class EntitySheepEntry extends EntityEntry<SheepMob>{
+public class EntityEntrySheep extends EntityEntry<MobSheep>{
     @Override
-    public void onTick(SheepMob entity) {
+    public void onTick(MobSheep entity) {
 
     }
 
     @Override
-    public List<ButtonElement> getEntryButtons(Minecraft mc, Screen parentScreen, SheepMob sheep) {
+    public List<ButtonElement> getEntryButtons(Minecraft mc, Screen parentScreen, MobSheep sheep) {
         List<ButtonElement> buttonList = new ArrayList<>();
         ListenerSliderElement slider = new ListenerSliderElement(-1, - 120, 0, 120, 20, I18n.getInstance().translateKeyAndFormat("model.category.entity.sheep.slider.color", "White"), 0f);
         slider.setOnValueChanged(() -> {
@@ -34,8 +34,8 @@ public class EntitySheepEntry extends EntityEntry<SheepMob>{
     }
 
     @Override
-    public SheepMob getEntityInstance(Minecraft mc, World world) {
-        SheepMob sheep = new SheepMob(world);
+    public MobSheep getEntityInstance(Minecraft mc, World world) {
+        MobSheep sheep = new MobSheep(world);
         sheep.setFleeceColor(DyeColor.WHITE);
         return sheep;
     }
diff --git a/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntitySlimeEntry.java b/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityEntrySlime.java
similarity index 80%
rename from src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntitySlimeEntry.java
rename to src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityEntrySlime.java
index 978362242..843de96ba 100644
--- a/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntitySlimeEntry.java
+++ b/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityEntrySlime.java
@@ -4,21 +4,21 @@ import net.minecraft.client.Minecraft;
 import net.minecraft.client.gui.ButtonElement;
 import net.minecraft.client.gui.Screen;
 import net.minecraft.client.gui.modelviewer.elements.ListenerSliderElement;
-import net.minecraft.core.entity.monster.SlimeMob;
+import net.minecraft.core.entity.monster.MobSlime;
 import net.minecraft.core.lang.I18n;
 import net.minecraft.core.world.World;
 
 import java.util.ArrayList;
 import java.util.List;
 
-public class EntitySlimeEntry extends EntityEntry<SlimeMob>{
+public class EntityEntrySlime extends EntityEntry<MobSlime>{
     @Override
-    public void onTick(SlimeMob entity) {
+    public void onTick(MobSlime entity) {
 
     }
 
     @Override
-    public List<ButtonElement> getEntryButtons(Minecraft mc, Screen parentScreen, SlimeMob entity) {
+    public List<ButtonElement> getEntryButtons(Minecraft mc, Screen parentScreen, MobSlime entity) {
         List<ButtonElement> buttonList = new ArrayList<>();
         ListenerSliderElement slider = new ListenerSliderElement(-1, - 120, 0, 120, 20, I18n.getInstance().translateKeyAndFormat("model.category.entity.slime.slider.size", 1), 0f);
         slider.setOnValueChanged(() -> {
@@ -30,8 +30,8 @@ public class EntitySlimeEntry extends EntityEntry<SlimeMob>{
     }
 
     @Override
-    public SlimeMob getEntityInstance(Minecraft mc, World world) {
-        return new SlimeMob(world);
+    public MobSlime getEntityInstance(Minecraft mc, World world) {
+        return new MobSlime(world);
     }
 
     @Override
diff --git a/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityTNTEntry.java b/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityEntryTNT.java
similarity index 78%
rename from src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityTNTEntry.java
rename to src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityEntryTNT.java
index 37dfdb1b1..a0e0e7039 100644
--- a/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityTNTEntry.java
+++ b/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityEntryTNT.java
@@ -4,21 +4,21 @@ import net.minecraft.client.Minecraft;
 import net.minecraft.client.gui.ButtonElement;
 import net.minecraft.client.gui.Screen;
 import net.minecraft.client.gui.modelviewer.elements.ListenerSliderElement;
-import net.minecraft.core.entity.TNTPrimedEntity;
+import net.minecraft.core.entity.EntityPrimedTNT;
 import net.minecraft.core.lang.I18n;
 import net.minecraft.core.world.World;
 
 import java.util.ArrayList;
 import java.util.List;
 
-public class EntityTNTEntry extends EntityEntry<TNTPrimedEntity>{
+public class EntityEntryTNT extends EntityEntry<EntityPrimedTNT>{
     @Override
-    public void onTick(TNTPrimedEntity entity) {
+    public void onTick(EntityPrimedTNT entity) {
 
     }
 
     @Override
-    public List<ButtonElement> getEntryButtons(Minecraft mc, Screen parentScreen, TNTPrimedEntity tnt) {
+    public List<ButtonElement> getEntryButtons(Minecraft mc, Screen parentScreen, EntityPrimedTNT tnt) {
         tnt.fuse = 80;
         ListenerSliderElement slider = new ListenerSliderElement(-1, - 120, 0, 120, 20, I18n.getInstance().translateKeyAndFormat("model.category.entity.tnt.slider.fuse", 80), 1f);
         slider.setOnValueChanged(() -> {
@@ -29,8 +29,8 @@ public class EntityTNTEntry extends EntityEntry<TNTPrimedEntity>{
     }
 
     @Override
-    public TNTPrimedEntity getEntityInstance(Minecraft mc, World world) {
-        return new TNTPrimedEntity(world);
+    public EntityPrimedTNT getEntityInstance(Minecraft mc, World world) {
+        return new EntityPrimedTNT(world);
     }
 
     @Override
diff --git a/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityWolfEntry.java b/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityEntryWolf.java
similarity index 93%
rename from src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityWolfEntry.java
rename to src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityEntryWolf.java
index 1bf36df72..a9b3379a2 100644
--- a/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityWolfEntry.java
+++ b/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/entity/EntityEntryWolf.java
@@ -3,11 +3,11 @@ package net.minecraft.client.gui.modelviewer.categories.entries.entity;
 import net.minecraft.client.Minecraft;
 import net.minecraft.client.gui.ButtonElement;
 import net.minecraft.client.gui.Screen;
-import net.minecraft.client.gui.modelviewer.ModelViewerScreen;
+import net.minecraft.client.gui.modelviewer.ScreenModelViewer;
 import net.minecraft.client.gui.modelviewer.elements.ListSelectorButtonElement;
 import net.minecraft.client.gui.modelviewer.elements.ListenerButtonElement;
 import net.minecraft.client.gui.modelviewer.elements.TextCycleElement;
-import net.minecraft.core.entity.animal.WolfMob;
+import net.minecraft.core.entity.animal.MobWolf;
 import net.minecraft.core.item.Item;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.item.material.ArmorMaterial;
@@ -18,19 +18,19 @@ import net.minecraft.core.world.World;
 import java.util.ArrayList;
 import java.util.List;
 
-public class EntityWolfEntry extends EntityEntry<WolfMob>{
-    private static final List<ArmorMaterial> armorMaterials = new ArrayList<>(WolfMob.ARMOR_MATERIALS.keySet());
+public class EntityEntryWolf extends EntityEntry<MobWolf>{
+    private static final List<ArmorMaterial> armorMaterials = new ArrayList<>(MobWolf.ARMOR_MATERIALS.keySet());
     static {
         armorMaterials.add(null);
     }
 
     @Override
-    public void onTick(WolfMob entity) {
+    public void onTick(MobWolf entity) {
 
     }
 
     @Override
-    public List<ButtonElement> getEntryButtons(Minecraft mc, Screen parentScreen, WolfMob entityWolf) {
+    public List<ButtonElement> getEntryButtons(Minecraft mc, Screen parentScreen, MobWolf entityWolf) {
         List<ButtonElement> buttonList = new ArrayList<>();
         boolean isTamed = entityWolf.isWolfTamed();
         ListenerButtonElement tamed = new ListenerButtonElement(-1, - 120, 0, 120, 20, I18n.getInstance().translateKeyAndFormat("model.category.entity.wolf.button.tamed", isTamed));
@@ -73,7 +73,7 @@ public class EntityWolfEntry extends EntityEntry<WolfMob>{
         TextCycleElement<Integer> itemIdCycle = new TextCycleElement<Integer>(parentScreen, mc.font, - 120, hasItem.yPosition + 21, 120, 20, 1) {
             @Override
             public Integer cycleElement(Integer current, int offset) {
-                return ModelViewerScreen.cycleItemId(current, offset);
+                return ScreenModelViewer.cycleItemId(current, offset);
             }
 
             @Override
@@ -151,8 +151,8 @@ public class EntityWolfEntry extends EntityEntry<WolfMob>{
     }
 
     @Override
-    public WolfMob getEntityInstance(Minecraft mc, World world) {
-        WolfMob wolf = new WolfMob(world);
+    public MobWolf getEntityInstance(Minecraft mc, World world) {
+        MobWolf wolf = new MobWolf(world);
         wolf.setWolfHeldItem(null);
         return wolf;
     }
diff --git a/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/particle/BlockFXEntry.java b/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/particle/ParticleEntryBlock.java
similarity index 89%
rename from src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/particle/BlockFXEntry.java
rename to src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/particle/ParticleEntryBlock.java
index d489910d2..93b81b16f 100644
--- a/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/particle/BlockFXEntry.java
+++ b/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/particle/ParticleEntryBlock.java
@@ -1,10 +1,10 @@
 package net.minecraft.client.gui.modelviewer.categories.entries.particle;
 
 import net.minecraft.client.Minecraft;
-import net.minecraft.client.entity.particle.TerrainParticle;
+import net.minecraft.client.entity.particle.ParticleBlockBreaking;
 import net.minecraft.client.gui.ButtonElement;
 import net.minecraft.client.gui.Screen;
-import net.minecraft.client.gui.modelviewer.ModelViewerScreen;
+import net.minecraft.client.gui.modelviewer.ScreenModelViewer;
 import net.minecraft.client.gui.modelviewer.elements.ListSelectorButtonElement;
 import net.minecraft.client.gui.modelviewer.elements.TextCycleElement;
 import net.minecraft.core.block.Block;
@@ -17,12 +17,12 @@ import net.minecraft.core.world.World;
 import java.util.Arrays;
 import java.util.List;
 
-public class BlockFXEntry extends GenericFXEntry{
+public class ParticleEntryBlock extends ParticleEntryGeneric {
     protected int blockId;
     protected int meta;
     private Side side = Side.BOTTOM;
 
-    public BlockFXEntry() {
+    public ParticleEntryBlock() {
         super("block");
     }
 
@@ -32,7 +32,7 @@ public class BlockFXEntry extends GenericFXEntry{
         TextCycleElement<Integer> blockIdCycle = new TextCycleElement<Integer>(parentScreen, mc.font, - 120, buttonList.get(buttonList.size()-1).getY() + 21, 120, 20, blockId) {
             @Override
             public Integer cycleElement(Integer current, int offset) {
-                return ModelViewerScreen.cycleBlockId(current, offset);
+                return ScreenModelViewer.cycleBlockId(current, offset);
             }
 
             @Override
@@ -93,7 +93,7 @@ public class BlockFXEntry extends GenericFXEntry{
 
     @Override
     public void spawnParticle(Minecraft mc, World world, double x, double y, double z) {
-        mc.particleEngine.add(new TerrainParticle(world, x, y, z, motionX,motionY,motionZ, Block.getBlock(blockId), side, meta));
+        mc.particleEngine.add(new ParticleBlockBreaking(world, x, y, z, motionX,motionY,motionZ, Block.getBlock(blockId), side, meta));
     }
 
     @Override
diff --git a/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/particle/BubbleFXEntry.java b/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/particle/ParticleEntryBubble.java
similarity index 59%
rename from src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/particle/BubbleFXEntry.java
rename to src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/particle/ParticleEntryBubble.java
index 8cda62029..0868eeb81 100644
--- a/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/particle/BubbleFXEntry.java
+++ b/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/particle/ParticleEntryBubble.java
@@ -1,15 +1,15 @@
 package net.minecraft.client.gui.modelviewer.categories.entries.particle;
 
 import net.minecraft.client.Minecraft;
-import net.minecraft.client.entity.particle.BubbleParticle;
+import net.minecraft.client.entity.particle.ParticleBubble;
 import net.minecraft.core.world.World;
 
-public class BubbleFXEntry extends GenericFXEntry{
-    public BubbleFXEntry() {
+public class ParticleEntryBubble extends ParticleEntryGeneric {
+    public ParticleEntryBubble() {
         super("bubble");
     }
     @Override
     public void spawnParticle(Minecraft mc, World world, double x, double y, double z) {
-        mc.particleEngine.add(new BubbleParticle(world, x, y, z, motionX, motionY, motionZ, false));
+        mc.particleEngine.add(new ParticleBubble(world, x, y, z, motionX, motionY, motionZ, false));
     }
 }
diff --git a/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/particle/GenericFXEntry.java b/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/particle/ParticleEntryGeneric.java
similarity index 94%
rename from src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/particle/GenericFXEntry.java
rename to src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/particle/ParticleEntryGeneric.java
index 2f13bd2a1..afba87a2a 100644
--- a/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/particle/GenericFXEntry.java
+++ b/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/particle/ParticleEntryGeneric.java
@@ -12,7 +12,7 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Objects;
 
-public class GenericFXEntry extends ParticleEntry{
+public class ParticleEntryGeneric extends ParticleEntry{
     public final String particleID;
     protected final String overrideName;
     protected double motionX;
@@ -20,10 +20,10 @@ public class GenericFXEntry extends ParticleEntry{
     protected double motionZ;
     protected int data;
 
-    public GenericFXEntry(String particleID){
+    public ParticleEntryGeneric(String particleID){
         this(particleID, null);
     }
-    public GenericFXEntry(String particleID, String overrideName){
+    public ParticleEntryGeneric(String particleID, String overrideName){
         this.particleID = Objects.requireNonNull(particleID);
         this.overrideName = overrideName;
     }
diff --git a/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/particle/ItemFXEntry.java b/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/particle/ParticleEntryItem.java
similarity index 93%
rename from src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/particle/ItemFXEntry.java
rename to src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/particle/ParticleEntryItem.java
index 3eccd4c66..d982b4cde 100644
--- a/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/particle/ItemFXEntry.java
+++ b/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/particle/ParticleEntryItem.java
@@ -1,7 +1,7 @@
 package net.minecraft.client.gui.modelviewer.categories.entries.particle;
 
 import net.minecraft.client.Minecraft;
-import net.minecraft.client.entity.particle.BreakingItemParticle;
+import net.minecraft.client.entity.particle.ParticleItemBreaking;
 import net.minecraft.client.gui.ButtonElement;
 import net.minecraft.client.gui.Screen;
 import net.minecraft.client.gui.modelviewer.elements.TextCycleElement;
@@ -14,7 +14,7 @@ import net.minecraft.core.world.World;
 import java.util.ArrayList;
 import java.util.List;
 
-public class ItemFXEntry extends ParticleEntry{
+public class ParticleEntryItem extends ParticleEntry{
     protected int itemID;
     @Override
     public String getParticleName(I18n translator) {
@@ -55,7 +55,7 @@ public class ItemFXEntry extends ParticleEntry{
 
     @Override
     public void spawnParticle(Minecraft mc, World world, double x, double y, double z) {
-        mc.particleEngine.add(new BreakingItemParticle(world, x, y, z, Item.itemsList[itemID]));
+        mc.particleEngine.add(new ParticleItemBreaking(world, x, y, z, Item.itemsList[itemID]));
     }
 
     @Override
diff --git a/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/particle/LeafFXEntry.java b/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/particle/ParticleEntryLeaf.java
similarity index 60%
rename from src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/particle/LeafFXEntry.java
rename to src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/particle/ParticleEntryLeaf.java
index 294a3da4a..3c5864e7b 100644
--- a/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/particle/LeafFXEntry.java
+++ b/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/particle/ParticleEntryLeaf.java
@@ -1,15 +1,15 @@
 package net.minecraft.client.gui.modelviewer.categories.entries.particle;
 
 import net.minecraft.client.Minecraft;
-import net.minecraft.client.entity.particle.LeafParticle;
+import net.minecraft.client.entity.particle.ParticleLeaf;
 import net.minecraft.core.world.World;
 
-public class LeafFXEntry extends GenericFXEntry{
-    public LeafFXEntry() {
+public class ParticleEntryLeaf extends ParticleEntryGeneric {
+    public ParticleEntryLeaf() {
         super("fallingleaf");
     }
     @Override
     public void spawnParticle(Minecraft mc, World world, double x, double y, double z) {
-        mc.particleEngine.add(new LeafParticle(world, x, y, z, motionX, motionY, motionZ));
+        mc.particleEngine.add(new ParticleLeaf(world, x, y, z, motionX, motionY, motionZ));
     }
 }
diff --git a/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/particle/NoteFXEntry.java b/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/particle/ParticleEntryNote.java
similarity index 90%
rename from src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/particle/NoteFXEntry.java
rename to src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/particle/ParticleEntryNote.java
index 2fd5d5a61..3e15a4a3f 100644
--- a/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/particle/NoteFXEntry.java
+++ b/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/particle/ParticleEntryNote.java
@@ -1,7 +1,7 @@
 package net.minecraft.client.gui.modelviewer.categories.entries.particle;
 
 import net.minecraft.client.Minecraft;
-import net.minecraft.client.entity.particle.NoteParticle;
+import net.minecraft.client.entity.particle.ParticleNote;
 import net.minecraft.client.gui.ButtonElement;
 import net.minecraft.client.gui.Screen;
 import net.minecraft.client.gui.modelviewer.elements.ListenerSliderElement;
@@ -11,7 +11,7 @@ import net.minecraft.core.world.World;
 import java.util.ArrayList;
 import java.util.List;
 
-public class NoteFXEntry extends ParticleEntry{
+public class ParticleEntryNote extends ParticleEntry{
     protected int note = 0;
     protected final int maxNote = 24;
     @Override
@@ -34,7 +34,7 @@ public class NoteFXEntry extends ParticleEntry{
 
     @Override
     public void spawnParticle(Minecraft mc, World world, double x, double y, double z) {
-        mc.particleEngine.add(new NoteParticle(world, x, y, z, 0.0, 0.0D, 0.0D, note));
+        mc.particleEngine.add(new ParticleNote(world, x, y, z, 0.0, 0.0D, 0.0D, note));
     }
 
     @Override
diff --git a/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/particle/RedDustFXEntry.java b/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/particle/ParticleEntryRedstone.java
similarity index 93%
rename from src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/particle/RedDustFXEntry.java
rename to src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/particle/ParticleEntryRedstone.java
index 056c5797a..68177a69a 100644
--- a/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/particle/RedDustFXEntry.java
+++ b/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/particle/ParticleEntryRedstone.java
@@ -1,7 +1,7 @@
 package net.minecraft.client.gui.modelviewer.categories.entries.particle;
 
 import net.minecraft.client.Minecraft;
-import net.minecraft.client.entity.particle.RedstoneDustParticle;
+import net.minecraft.client.entity.particle.ParticleRedstoneDust;
 import net.minecraft.client.gui.ButtonElement;
 import net.minecraft.client.gui.Screen;
 import net.minecraft.client.gui.modelviewer.elements.ListenerTextFieldElement;
@@ -12,7 +12,7 @@ import org.lwjgl.input.Keyboard;
 import java.util.ArrayList;
 import java.util.List;
 
-public class RedDustFXEntry extends ParticleEntry{
+public class ParticleEntryRedstone extends ParticleEntry{
     private int red = 0;
     private int green = 0;
     private int blue = 0;
@@ -71,7 +71,7 @@ public class RedDustFXEntry extends ParticleEntry{
 
     @Override
     public void spawnParticle(Minecraft mc, World world, double x, double y, double z) {
-        mc.particleEngine.add(new RedstoneDustParticle(world, x, y, z, red/255f, green/255f, blue/255f, 15));
+        mc.particleEngine.add(new ParticleRedstoneDust(world, x, y, z, red/255f, green/255f, blue/255f, 15));
     }
 
     @Override
diff --git a/src/main/java/net/minecraft/client/gui/modelviewer/elements/ListenerSliderElement.java b/src/main/java/net/minecraft/client/gui/modelviewer/elements/ListenerSliderElement.java
index 2b88be8b7..3335d6870 100644
--- a/src/main/java/net/minecraft/client/gui/modelviewer/elements/ListenerSliderElement.java
+++ b/src/main/java/net/minecraft/client/gui/modelviewer/elements/ListenerSliderElement.java
@@ -2,18 +2,18 @@ package net.minecraft.client.gui.modelviewer.elements;
 
 import net.minecraft.client.Minecraft;
 import net.minecraft.client.gui.SliderElement;
-import net.minecraft.client.option.FloatOption;
+import net.minecraft.client.option.OptionFloat;
 
 public class ListenerSliderElement extends SliderElement implements IListenerElement<ListenerSliderElement> {
     private IActionListener action;
     private IKeyListener keyListener;
     private Runnable onValueChanged;
-    public ListenerSliderElement(int id, int xPosition, int yPosition, FloatOption floatOption) {
-        super(id, xPosition, yPosition, floatOption);
+    public ListenerSliderElement(int id, int xPosition, int yPosition, OptionFloat optionFloat) {
+        super(id, xPosition, yPosition, optionFloat);
     }
 
-    public ListenerSliderElement(int id, int xPosition, int yPosition, int width, int height, FloatOption floatOption) {
-        super(id, xPosition, yPosition, width, height, floatOption);
+    public ListenerSliderElement(int id, int xPosition, int yPosition, int width, int height, OptionFloat optionFloat) {
+        super(id, xPosition, yPosition, width, height, optionFloat);
     }
 
     public ListenerSliderElement(int id, int xPosition, int yPosition, int width, int height, String text, float defaultValue) {
diff --git a/src/main/java/net/minecraft/client/gui/options/components/BooleanOptionComponent.java b/src/main/java/net/minecraft/client/gui/options/components/BooleanOptionComponent.java
index c4264b813..8d8f00351 100644
--- a/src/main/java/net/minecraft/client/gui/options/components/BooleanOptionComponent.java
+++ b/src/main/java/net/minecraft/client/gui/options/components/BooleanOptionComponent.java
@@ -2,15 +2,15 @@ package net.minecraft.client.gui.options.components;
 
 import net.minecraft.client.Minecraft;
 import net.minecraft.client.gui.SwitchElement;
-import net.minecraft.client.option.BooleanOption;
+import net.minecraft.client.option.OptionBoolean;
 
 public class BooleanOptionComponent
     extends ButtonComponent
 {
-    private final BooleanOption option;
+    private final OptionBoolean option;
     private final SwitchElement button;
 
-    public BooleanOptionComponent(BooleanOption option)
+    public BooleanOptionComponent(OptionBoolean option)
     {
         super("options." + option.name);
 
diff --git a/src/main/java/net/minecraft/client/gui/options/components/DifficultyOptionComponent.java b/src/main/java/net/minecraft/client/gui/options/components/DifficultyOptionComponent.java
index 29434eb2c..eb61a2982 100644
--- a/src/main/java/net/minecraft/client/gui/options/components/DifficultyOptionComponent.java
+++ b/src/main/java/net/minecraft/client/gui/options/components/DifficultyOptionComponent.java
@@ -2,16 +2,16 @@ package net.minecraft.client.gui.options.components;
 
 import net.minecraft.client.Minecraft;
 import net.minecraft.client.gui.IntegerSliderElement;
-import net.minecraft.client.option.EnumOption;
+import net.minecraft.client.option.OptionEnum;
 import net.minecraft.core.enums.Difficulty;
 import net.minecraft.core.lang.I18n;
 
 public class DifficultyOptionComponent extends ButtonComponent {
 
-    protected final EnumOption<Difficulty> option;
+    protected final OptionEnum<Difficulty> option;
     protected final IntegerSliderElement slider;
 
-    public DifficultyOptionComponent(EnumOption<Difficulty> difficultyOption) {
+    public DifficultyOptionComponent(OptionEnum<Difficulty> difficultyOption) {
         super("options." + difficultyOption.name);
         option = difficultyOption;
         this.slider = new IntegerSliderElement(0, 0, 0, 150, 20, option);
diff --git a/src/main/java/net/minecraft/client/gui/options/components/FloatOptionComponent.java b/src/main/java/net/minecraft/client/gui/options/components/FloatOptionComponent.java
index 92b07cd86..158ae6230 100644
--- a/src/main/java/net/minecraft/client/gui/options/components/FloatOptionComponent.java
+++ b/src/main/java/net/minecraft/client/gui/options/components/FloatOptionComponent.java
@@ -2,15 +2,15 @@ package net.minecraft.client.gui.options.components;
 
 import net.minecraft.client.Minecraft;
 import net.minecraft.client.gui.SliderElement;
-import net.minecraft.client.option.FloatOption;
+import net.minecraft.client.option.OptionFloat;
 
 public class FloatOptionComponent
         extends ButtonComponent
 {
-    private final FloatOption option;
+    private final OptionFloat option;
     private final SliderElement slider;
 
-    public FloatOptionComponent(FloatOption option)
+    public FloatOptionComponent(OptionFloat option)
     {
         super("options." + option.name);
 
diff --git a/src/main/java/net/minecraft/client/gui/options/components/FramerateOptionComponent.java b/src/main/java/net/minecraft/client/gui/options/components/FramerateOptionComponent.java
index cd0b246c4..da9ca3938 100644
--- a/src/main/java/net/minecraft/client/gui/options/components/FramerateOptionComponent.java
+++ b/src/main/java/net/minecraft/client/gui/options/components/FramerateOptionComponent.java
@@ -1,11 +1,11 @@
 package net.minecraft.client.gui.options.components;
 
 import net.minecraft.client.Minecraft;
-import net.minecraft.client.option.RangeOption;
+import net.minecraft.client.option.OptionRange;
 import net.minecraft.client.render.window.GameWindowGLFW;
 
 public class FramerateOptionComponent extends ToggleableOptionComponent<Integer>{
-    public FramerateOptionComponent(RangeOption option) {
+    public FramerateOptionComponent(OptionRange option) {
         super(option);
     }
     @Override
diff --git a/src/main/java/net/minecraft/client/gui/options/components/IntegerOptionComponent.java b/src/main/java/net/minecraft/client/gui/options/components/IntegerOptionComponent.java
index e6e32b63f..a4f336d7a 100644
--- a/src/main/java/net/minecraft/client/gui/options/components/IntegerOptionComponent.java
+++ b/src/main/java/net/minecraft/client/gui/options/components/IntegerOptionComponent.java
@@ -2,15 +2,15 @@ package net.minecraft.client.gui.options.components;
 
 import net.minecraft.client.Minecraft;
 import net.minecraft.client.gui.ButtonElement;
-import net.minecraft.client.option.IntegerOption;
+import net.minecraft.client.option.OptionInteger;
 
 public class IntegerOptionComponent
     extends ButtonComponent
 {
-    private final IntegerOption option;
+    private final OptionInteger option;
     private final ButtonElement button;
 
-    public IntegerOptionComponent(IntegerOption option)
+    public IntegerOptionComponent(OptionInteger option)
     {
         super("options." + option.name);
 
diff --git a/src/main/java/net/minecraft/client/gui/options/components/ToggleableOptionComponent.java b/src/main/java/net/minecraft/client/gui/options/components/ToggleableOptionComponent.java
index 24fe3c894..5807490ca 100644
--- a/src/main/java/net/minecraft/client/gui/options/components/ToggleableOptionComponent.java
+++ b/src/main/java/net/minecraft/client/gui/options/components/ToggleableOptionComponent.java
@@ -2,15 +2,15 @@ package net.minecraft.client.gui.options.components;
 
 import net.minecraft.client.Minecraft;
 import net.minecraft.client.gui.IntegerSliderElement;
-import net.minecraft.client.option.ToggleableOption;
+import net.minecraft.client.option.OptionToggleable;
 
 public class ToggleableOptionComponent<E>
         extends ButtonComponent
 {
-    protected final ToggleableOption<E> option;
+    protected final OptionToggleable<E> option;
     protected final IntegerSliderElement slider;
 
-    public ToggleableOptionComponent(ToggleableOption<E> option)
+    public ToggleableOptionComponent(OptionToggleable<E> option)
     {
         super("options." + option.name);
 
diff --git a/src/main/java/net/minecraft/client/gui/options/components/TooltipPickerComponent.java b/src/main/java/net/minecraft/client/gui/options/components/TooltipPickerComponent.java
index da66be480..4f4ec53ef 100644
--- a/src/main/java/net/minecraft/client/gui/options/components/TooltipPickerComponent.java
+++ b/src/main/java/net/minecraft/client/gui/options/components/TooltipPickerComponent.java
@@ -1,7 +1,7 @@
 package net.minecraft.client.gui.options.components;
 
 import net.minecraft.client.gui.TooltipElement;
-import net.minecraft.client.option.ToggleableOption;
+import net.minecraft.client.option.OptionToggleable;
 import net.minecraft.client.option.enums.TooltipStyle;
 import org.lwjgl.opengl.GL11;
 
@@ -10,7 +10,7 @@ public class TooltipPickerComponent<E>
 
     private final TooltipElement tooltip;
 
-    public TooltipPickerComponent(ToggleableOption<E> option) {
+    public TooltipPickerComponent(OptionToggleable<E> option) {
         super(option);
 
         this.tooltip = new TooltipElement(mc);
diff --git a/src/main/java/net/minecraft/client/gui/options/data/OptionsPages.java b/src/main/java/net/minecraft/client/gui/options/data/OptionsPages.java
index eb4c55900..9c6b6bc4f 100644
--- a/src/main/java/net/minecraft/client/gui/options/data/OptionsPages.java
+++ b/src/main/java/net/minecraft/client/gui/options/data/OptionsPages.java
@@ -2,12 +2,12 @@ package net.minecraft.client.gui.options.data;
 
 import net.betterthanadventure.utils.DataDumper;
 import net.minecraft.client.Minecraft;
-import net.minecraft.client.gui.ControllerSetupScreen;
-import net.minecraft.client.gui.HudDesignerScreen;
-import net.minecraft.client.gui.SoundTestScreen;
-import net.minecraft.client.gui.TextureViewerScreen;
-import net.minecraft.client.gui.achievements.AchievementsScreen;
-import net.minecraft.client.gui.modelviewer.ModelViewerScreen;
+import net.minecraft.client.gui.ScreenControllerSetup;
+import net.minecraft.client.gui.ScreenHudDesigner;
+import net.minecraft.client.gui.ScreenSoundTest;
+import net.minecraft.client.gui.ScreenTextureViewer;
+import net.minecraft.client.gui.achievements.ScreenAchievements;
+import net.minecraft.client.gui.modelviewer.ScreenModelViewer;
 import net.minecraft.client.gui.options.components.AvailableTexturePackListComponent;
 import net.minecraft.client.gui.options.components.BooleanOptionComponent;
 import net.minecraft.client.gui.options.components.DifficultyOptionComponent;
@@ -52,7 +52,7 @@ public abstract class OptionsPages
             .withComponent(new BooleanOptionComponent(mc.gameSettings.viewBobbing))
         )
         .withComponent(new OptionsCategory("gui.options.page.general.category.user_interface")
-            .withComponent(new ShortcutComponent("gui.options.page.general.button.edit_hud", () -> mc.displayScreen(new HudDesignerScreen(mc.currentScreen))))
+            .withComponent(new ShortcutComponent("gui.options.page.general.button.edit_hud", () -> mc.displayScreen(new ScreenHudDesigner(mc.currentScreen))))
             .withComponent(new IntegerOptionComponent(mc.gameSettings.guiScale))
             .withComponent(new FloatOptionComponent(mc.gameSettings.screenPadding))
             .withComponent(new TooltipPickerComponent<>(mc.gameSettings.tooltipStyle))
@@ -147,7 +147,7 @@ public abstract class OptionsPages
             .withComponent(new BooleanOptionComponent(mc.gameSettings.swapCraftingButtons))
         )
         .withComponent(new OptionsCategory("gui.options.page.controls.category.controller")
-            .withComponent(new ShortcutComponent("gui.options.page.controls.button.controller_setup", () -> mc.displayScreen(new ControllerSetupScreen(mc.currentScreen))))
+            .withComponent(new ShortcutComponent("gui.options.page.controls.button.controller_setup", () -> mc.displayScreen(new ScreenControllerSetup(mc.currentScreen))))
             .withComponent(new FloatOptionComponent(mc.gameSettings.controllerSensitivity))
             .withComponent(new FloatOptionComponent(mc.gameSettings.controllerMenuSensitivity))
             .withComponent(new FloatOptionComponent(mc.gameSettings.controllerDeadzoneLeft))
@@ -286,7 +286,7 @@ public abstract class OptionsPages
             .withComponent(new ShortcutComponent("gui.options.page.debug.button.open.model_viewer", () -> {
                                mc.playerController = new PlayerControllerSP(mc);
                                mc.changeWorld(new World(), "Loading Model Viewer");
-                               mc.displayScreen(new ModelViewerScreen());}) {
+                               mc.displayScreen(new ScreenModelViewer());}) {
                                @Override
                                public void render(int x, int y, int width, int relativeMouseX, int relativeMouseY) {
                                    button.enabled = mc.theWorld == null;
@@ -294,8 +294,8 @@ public abstract class OptionsPages
                                }
                            }
             )
-            .withComponent(new ShortcutComponent("gui.options.page.debug.button.open.sound_test", () -> mc.displayScreen(new SoundTestScreen(mc.currentScreen))))
-            .withComponent(new ShortcutComponent("gui.options.page.debug.button.open.texture_viewer", () -> mc.displayScreen(new TextureViewerScreen(mc.currentScreen))))
+            .withComponent(new ShortcutComponent("gui.options.page.debug.button.open.sound_test", () -> mc.displayScreen(new ScreenSoundTest(mc.currentScreen))))
+            .withComponent(new ShortcutComponent("gui.options.page.debug.button.open.texture_viewer", () -> mc.displayScreen(new ScreenTextureViewer(mc.currentScreen))))
             .withComponent(new ShortcutComponent("gui.options.page.debug.button.open.biome_finder", () -> {
                 new Thread(() -> SeedViewerMain.main(new String[0])).start();
                 Global.accessor = mc;
@@ -305,7 +305,7 @@ public abstract class OptionsPages
                 Utils.openDirectory(new File(mc.getMinecraftDir(), "infodump"));
                 Global.accessor = mc;
             }))
-            .withComponent(new ShortcutComponent("gui.options.page.debug.button.open.achievements", () -> mc.displayScreen(new AchievementsScreen(mc.currentScreen, mc.statsCounter))))
+            .withComponent(new ShortcutComponent("gui.options.page.debug.button.open.achievements", () -> mc.displayScreen(new ScreenAchievements(mc.currentScreen, mc.statsCounter))))
         )
         .withComponent(new OptionsCategory("gui.options.page.debug.category.test")
             .withComponent(new ShortcutComponent("gui.options.page.debug.button.music.skip", () -> {
diff --git a/src/main/java/net/minecraft/client/gui/paged/PagedScreen.java b/src/main/java/net/minecraft/client/gui/paged/ScreenPaged.java
similarity index 99%
rename from src/main/java/net/minecraft/client/gui/paged/PagedScreen.java
rename to src/main/java/net/minecraft/client/gui/paged/ScreenPaged.java
index 53e7b8ea5..cf5170875 100644
--- a/src/main/java/net/minecraft/client/gui/paged/PagedScreen.java
+++ b/src/main/java/net/minecraft/client/gui/paged/ScreenPaged.java
@@ -14,7 +14,7 @@ import org.lwjgl.opengl.GL11;
 import static org.lwjgl.opengl.GL11.*;
 import static org.lwjgl.opengl.GL11.GL_TEXTURE_2D;
 
-public class PagedScreen
+public class ScreenPaged
     extends Screen {
     private static final int TOP_SPACING = 24;
     private static final int BUTTON_SPACING = 4;
@@ -39,7 +39,7 @@ public class PagedScreen
 
     private final PageRegistry pageRegistry;
 
-    public PagedScreen(Screen parent, PageRegistry pageRegistry, Page selectedPage, String titleTranslationKey, String[] buttonTranslationKeys)
+    public ScreenPaged(Screen parent, PageRegistry pageRegistry, Page selectedPage, String titleTranslationKey, String[] buttonTranslationKeys)
     {
         super(parent);
         this.pageRegistry = pageRegistry;
diff --git a/src/main/java/net/minecraft/client/gui/toasts/HudToastsElement.java b/src/main/java/net/minecraft/client/gui/toasts/GuiElementToastsHud.java
similarity index 98%
rename from src/main/java/net/minecraft/client/gui/toasts/HudToastsElement.java
rename to src/main/java/net/minecraft/client/gui/toasts/GuiElementToastsHud.java
index 5dbbe5dba..2bc80ebd7 100644
--- a/src/main/java/net/minecraft/client/gui/toasts/HudToastsElement.java
+++ b/src/main/java/net/minecraft/client/gui/toasts/GuiElementToastsHud.java
@@ -17,7 +17,7 @@ import java.util.ArrayList;
 import java.util.Comparator;
 import java.util.List;
 
-public class HudToastsElement extends Gui {
+public class GuiElementToastsHud extends Gui {
     private static final int TOAST_WIDTH = 160;
     private static final int TOAST_HEIGHT = 32;
     private static final int MAX_SHOWN_ENTRIES = 5;
@@ -27,7 +27,7 @@ public class HudToastsElement extends Gui {
 
     private final Minecraft mc;
 
-    public HudToastsElement(Minecraft minecraft) {
+    public GuiElementToastsHud(Minecraft minecraft) {
         mc = minecraft;
     }
 
diff --git a/src/main/java/net/minecraft/client/input/controller/ControllerInput.java b/src/main/java/net/minecraft/client/input/controller/ControllerInput.java
index 1b3cfdd7a..3a2d18b90 100644
--- a/src/main/java/net/minecraft/client/input/controller/ControllerInput.java
+++ b/src/main/java/net/minecraft/client/input/controller/ControllerInput.java
@@ -2,7 +2,7 @@ package net.minecraft.client.input.controller;
 
 import com.b100.utils.ReflectUtils;
 import net.minecraft.client.Minecraft;
-import net.minecraft.client.gui.container.AbstractContainerScreen;
+import net.minecraft.client.gui.container.ScreenContainerAbstract;
 import net.minecraft.client.input.glfw.GlfwGamepad;
 import net.minecraft.core.player.inventory.slot.Slot;
 import net.minecraft.core.util.helper.Time;
@@ -145,11 +145,11 @@ public class ControllerInput {
         digitalPad.update();
     }
 
-    public Slot getSlotAtCursor(AbstractContainerScreen screen) {
+    public Slot getSlotAtCursor(ScreenContainerAbstract screen) {
         return getSlotAt((int) cursorX, (int) cursorY, screen);
     }
 
-    public Slot getSlotAt(int x, int y, AbstractContainerScreen screen) {
+    public Slot getSlotAt(int x, int y, ScreenContainerAbstract screen) {
         for (Slot slot : screen.inventorySlots.slots) {
             int mx = (int) cursorX;
             int my = (int) cursorY;
@@ -164,11 +164,11 @@ public class ControllerInput {
         return null;
     }
 
-    public void snapToSlot(AbstractContainerScreen screen, int id) {
+    public void snapToSlot(ScreenContainerAbstract screen, int id) {
         snapToSlot(screen, screen.inventorySlots.getSlot(id));
     }
 
-    public void snapToSlot(AbstractContainerScreen screen, Slot slot) {
+    public void snapToSlot(ScreenContainerAbstract screen, Slot slot) {
         if (slot == null) return;
 
         int slotX = (slot.x + (minecraft.resolution.getScaledWidthScreenCoords() - screen.xSize) / 2) - 1;
diff --git a/src/main/java/net/minecraft/client/input/controller/ControllerInventoryHandler.java b/src/main/java/net/minecraft/client/input/controller/ControllerInventoryHandler.java
index fdda3ca7e..bfa2ae7d6 100644
--- a/src/main/java/net/minecraft/client/input/controller/ControllerInventoryHandler.java
+++ b/src/main/java/net/minecraft/client/input/controller/ControllerInventoryHandler.java
@@ -2,10 +2,10 @@ package net.minecraft.client.input.controller;
 
 import com.b100.utils.interfaces.Condition;
 import com.mojang.logging.LogUtils;
-import net.minecraft.client.gui.container.AbstractContainerScreen;
-import net.minecraft.client.gui.container.CraftingScreen;
-import net.minecraft.client.gui.container.FurnaceScreen;
-import net.minecraft.client.gui.container.InventoryScreen;
+import net.minecraft.client.gui.container.ScreenContainerAbstract;
+import net.minecraft.client.gui.container.ScreenCrafting;
+import net.minecraft.client.gui.container.ScreenFurnace;
+import net.minecraft.client.gui.container.ScreenInventory;
 import net.minecraft.core.player.inventory.slot.Slot;
 import org.slf4j.Logger;
 
@@ -19,7 +19,7 @@ public class ControllerInventoryHandler {
 		this.controllerInput = controllerInput;
 	}
 	
-	public void handleAbstractCrafting(AbstractContainerScreen container, Condition<Slot> isInventorySlot, Condition<Slot> isCraftingSlot, Condition<Slot> isResultSlot, int craftingSlot, int resultSlot, int invSlot) {
+	public void handleAbstractCrafting(ScreenContainerAbstract container, Condition<Slot> isInventorySlot, Condition<Slot> isCraftingSlot, Condition<Slot> isResultSlot, int craftingSlot, int resultSlot, int invSlot) {
 		Slot slot = controllerInput.getSlotAtCursor(container);
 		
 		if(controllerInput.buttonA.pressedThisFrame()) {
@@ -41,7 +41,7 @@ public class ControllerInventoryHandler {
 					if(lastSlot != null) {
 						controllerInput.snapToSlot(container, lastSlot);
 					}else {
-						controllerInput.snapToSlot(container, invSlot); //Inventory Center
+						controllerInput.snapToSlot(container, invSlot); //ContainerInventory Center
 					}
 				}else {
 					if(slot.index > 9) lastSlot = slot;
@@ -57,7 +57,7 @@ public class ControllerInventoryHandler {
 					if(lastSlot != null) {
 						controllerInput.snapToSlot(container, lastSlot);
 					}else {
-						controllerInput.snapToSlot(container, invSlot); //Inventory Center
+						controllerInput.snapToSlot(container, invSlot); //ContainerInventory Center
 					}
 				}else {
 					if(isInventorySlot.isTrue(slot))lastSlot = slot;
@@ -69,19 +69,19 @@ public class ControllerInventoryHandler {
 		}
 	}
 	
-	public void handleCrafting(CraftingScreen crafting) {
+	public void handleCrafting(ScreenCrafting crafting) {
 		handleAbstractCrafting(crafting, (e) -> e.index > 9, (e) -> e.index > 0 && e.index < 10, (e) -> e.index == 0, 5, 0, 24);
 	}
 	
-	public void handleInventory(InventoryScreen inventory) {
+	public void handleInventory(ScreenInventory inventory) {
 		handleAbstractCrafting(inventory, (e) -> e.index >= 9 && e.index <= 44, (e) -> e.index >= 1 && e.index <= 4, (e) -> e.index == 0, 1, 0, 22);
 	}
 	
-	public void handleFurnace(FurnaceScreen furnace) {
+	public void handleFurnace(ScreenFurnace furnace) {
 		handleAbstractCrafting(furnace, (e) -> e.index >= 3 && e.index <= 38, (e) -> e.index >= 0 && e.index <= 1, (e) -> e.index == 2, 0, 2, 16);
 	}
 	
-	public void click(AbstractContainerScreen screen, int button) {
+	public void click(ScreenContainerAbstract screen, int button) {
 		screen.mouseClicked((int)controllerInput.cursorX, (int)controllerInput.cursorY, button);
 	}
 	
diff --git a/src/main/java/net/minecraft/client/input/controller/Joystick.java b/src/main/java/net/minecraft/client/input/controller/Joystick.java
index cb7f710b1..8e257c057 100644
--- a/src/main/java/net/minecraft/client/input/controller/Joystick.java
+++ b/src/main/java/net/minecraft/client/input/controller/Joystick.java
@@ -1,6 +1,6 @@
 package net.minecraft.client.input.controller;
 
-import net.minecraft.client.option.FloatOption;
+import net.minecraft.client.option.OptionFloat;
 
 public class Joystick{
 	public int xAxis, yAxis;
@@ -8,13 +8,13 @@ public class Joystick{
 	public final String name;
 	
 	public final Button button;
-	private FloatOption deadzone;
+	private OptionFloat deadzone;
 	private float x, y;
 	
 	private boolean moving = false;
 	private boolean moveLastFrame = false;
 
-	public Joystick(String name, int xAxis, int yAxis, IJoystickListener joystickListener, Button button, FloatOption deadzone) {
+	public Joystick(String name, int xAxis, int yAxis, IJoystickListener joystickListener, Button button, OptionFloat deadzone) {
 		this.name = name;
 		this.deadzone = deadzone;
 		this.xAxis = xAxis;
diff --git a/src/main/java/net/minecraft/client/net/command/ClientCommandSource.java b/src/main/java/net/minecraft/client/net/command/ClientCommandSource.java
index a2b9e58b6..1e7bd56a2 100644
--- a/src/main/java/net/minecraft/client/net/command/ClientCommandSource.java
+++ b/src/main/java/net/minecraft/client/net/command/ClientCommandSource.java
@@ -77,7 +77,7 @@ public class ClientCommandSource implements CommandSource {
 
     @Override
     public void sendMessage(String message) {
-        if (!this.mc.isMultiplayerWorld()) this.mc.ingameHud.addChatMessage(message);
+        if (!this.mc.isMultiplayerWorld()) this.mc.hudIngame.addChatMessage(message);
     }
 
     @Override
diff --git a/src/main/java/net/minecraft/client/net/handler/ClientPacketHandler.java b/src/main/java/net/minecraft/client/net/handler/PacketHandlerClient.java
similarity index 86%
rename from src/main/java/net/minecraft/client/net/handler/ClientPacketHandler.java
rename to src/main/java/net/minecraft/client/net/handler/PacketHandlerClient.java
index 4184689ad..af75de9de 100644
--- a/src/main/java/net/minecraft/client/net/handler/ClientPacketHandler.java
+++ b/src/main/java/net/minecraft/client/net/handler/PacketHandlerClient.java
@@ -3,43 +3,43 @@ package net.minecraft.client.net.handler;
 import com.b100.utils.StringUtils;
 import com.mojang.logging.LogUtils;
 import net.minecraft.client.Minecraft;
-import net.minecraft.client.entity.particle.TakeAnimationParticle;
-import net.minecraft.client.entity.player.LocalPlayer;
-import net.minecraft.client.entity.player.RemotePlayer;
-import net.minecraft.client.gui.ConnectFailedScreen;
-import net.minecraft.client.gui.DownloadTerrainScreen;
-import net.minecraft.client.gui.PauseScreen;
-import net.minecraft.client.gui.chat.ChatSuggestionsElement;
-import net.minecraft.client.gui.guidebook.GuidebookScreen;
-import net.minecraft.client.gui.guidebook.PageManager;
-import net.minecraft.client.gui.guidebook.search.SearchPage;
+import net.minecraft.client.entity.particle.ParticlePickupAnimation;
+import net.minecraft.client.entity.player.PlayerLocal;
+import net.minecraft.client.entity.player.PlayerRemote;
+import net.minecraft.client.gui.ScreenConnectFailed;
+import net.minecraft.client.gui.ScreenDownloadTerrain;
+import net.minecraft.client.gui.ScreenPause;
+import net.minecraft.client.gui.chat.GuiElementChatSuggestions;
+import net.minecraft.client.gui.guidebook.GuidebookPageManager;
+import net.minecraft.client.gui.guidebook.ScreenGuidebook;
+import net.minecraft.client.gui.guidebook.search.GuidebookPageSearch;
 import net.minecraft.client.player.controller.PlayerControllerMP;
 import net.minecraft.client.world.WorldClient;
 import net.minecraft.core.Global;
 import net.minecraft.core.achievement.stat.StatList;
-import net.minecraft.core.block.entity.ActivatorBlockEntity;
-import net.minecraft.core.block.entity.BlockEntity;
-import net.minecraft.core.block.entity.BlastFurnaceBlockEntity;
-import net.minecraft.core.block.entity.BlockEntityDispatcher;
-import net.minecraft.core.block.entity.DispenserBlockEntity;
-import net.minecraft.core.block.entity.FlagBlockEntity;
-import net.minecraft.core.block.entity.MobSpawnerBlockEntity;
-import net.minecraft.core.block.entity.FurnaceBlockEntity;
-import net.minecraft.core.block.entity.TrommelBlockEntity;
+import net.minecraft.core.block.entity.TileEntityActivator;
+import net.minecraft.core.block.entity.TileEntity;
+import net.minecraft.core.block.entity.TileEntityFurnaceBlastFurnace;
+import net.minecraft.core.block.entity.TileEntityDispatcher;
+import net.minecraft.core.block.entity.TileEntityDispenser;
+import net.minecraft.core.block.entity.TileEntityFlag;
+import net.minecraft.core.block.entity.TileEntityMobSpawner;
+import net.minecraft.core.block.entity.TileEntityFurnace;
+import net.minecraft.core.block.entity.TileEntityTrommel;
 import net.minecraft.core.data.DataLoader;
 import net.minecraft.core.data.registry.Registries;
 import net.minecraft.core.data.registry.recipe.RecipeRegistry;
 import net.minecraft.core.data.registry.recipe.SearchQuery;
 import net.minecraft.core.entity.Entity;
 import net.minecraft.core.entity.EntityDispatcher;
-import net.minecraft.core.entity.ItemEntity;
-import net.minecraft.core.entity.LightningEntity;
+import net.minecraft.core.entity.EntityItem;
+import net.minecraft.core.entity.EntityLightning;
 import net.minecraft.core.entity.Mob;
-import net.minecraft.core.entity.PaintingEntity;
+import net.minecraft.core.entity.EntityPainting;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.entity.projectile.Projectile;
 import net.minecraft.core.enums.ArtType;
-import net.minecraft.core.item.MapItem;
+import net.minecraft.core.item.ItemMap;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.item.Items;
 import net.minecraft.core.net.NetworkManager;
@@ -48,8 +48,8 @@ import net.minecraft.core.net.entity.NetEntityHandler;
 import net.minecraft.core.net.handler.PacketHandler;
 import net.minecraft.core.net.packet.*;
 import net.minecraft.core.player.gamemode.Gamemode;
-import net.minecraft.core.player.inventory.menu.AbstractContainerMenu;
-import net.minecraft.core.player.inventory.container.SimpleContainer;
+import net.minecraft.core.player.inventory.menu.MenuAbstract;
+import net.minecraft.core.player.inventory.container.ContainerSimple;
 import net.minecraft.core.sound.SoundTypes;
 import net.minecraft.core.util.helper.AES;
 import net.minecraft.core.util.helper.MathHelper;
@@ -78,7 +78,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Random;
 
-public class ClientPacketHandler extends PacketHandler
+public class PacketHandlerClient extends PacketHandler
 {
     private static final Logger LOGGER = LogUtils.getLogger();
     private boolean disconnected;
@@ -92,7 +92,7 @@ public class ClientPacketHandler extends PacketHandler
     public HashMap<String, String> playerList = new HashMap<>();
     Random rand;
 
-    public ClientPacketHandler(Minecraft minecraft, String host, int port)
+    public PacketHandlerClient(Minecraft minecraft, String host, int port)
             throws UnknownHostException, IOException
     {
         disconnected = false;
@@ -159,7 +159,7 @@ public class ClientPacketHandler extends PacketHandler
         worldClient.isClientSide = true;
         mc.changeWorld(worldClient);
         mc.thePlayer.dimension = loginPacket.dimensionId;
-        mc.displayScreen(new DownloadTerrainScreen(this));
+        mc.displayScreen(new ScreenDownloadTerrain(this));
         mc.thePlayer.id = loginPacket.playerEntityIdAndProtocolVersion;
         NetworkManager.PACKET_DELAY = loginPacket.packetDelay;
         Registries.RECIPES = new RecipeRegistry();
@@ -171,14 +171,14 @@ public class ClientPacketHandler extends PacketHandler
         double x = addItemEntityPacket.xPosition / 32D;
         double y = addItemEntityPacket.yPosition / 32D;
         double z = addItemEntityPacket.zPosition / 32D;
-        ItemEntity itemEntity = new ItemEntity(worldClient, x, y, z, new ItemStack(addItemEntityPacket.itemID, addItemEntityPacket.count, addItemEntityPacket.itemDamage, addItemEntityPacket.tag));
-        itemEntity.xd = (double) addItemEntityPacket.xd / 128D;
-        itemEntity.yd = (double) addItemEntityPacket.yd / 128D;
-        itemEntity.zd = (double) addItemEntityPacket.zd / 128D;
-        itemEntity.serverPosX = addItemEntityPacket.xPosition;
-        itemEntity.serverPosY = addItemEntityPacket.yPosition;
-        itemEntity.serverPosZ = addItemEntityPacket.zPosition;
-        worldClient.addEntityToWorld(addItemEntityPacket.entityId, itemEntity);
+        EntityItem entityItem = new EntityItem(worldClient, x, y, z, new ItemStack(addItemEntityPacket.itemID, addItemEntityPacket.count, addItemEntityPacket.itemDamage, addItemEntityPacket.tag));
+        entityItem.xd = (double) addItemEntityPacket.xd / 128D;
+        entityItem.yd = (double) addItemEntityPacket.yd / 128D;
+        entityItem.zd = (double) addItemEntityPacket.zd / 128D;
+        entityItem.serverPosX = addItemEntityPacket.xPosition;
+        entityItem.serverPosY = addItemEntityPacket.yPosition;
+        entityItem.serverPosZ = addItemEntityPacket.zPosition;
+        worldClient.addEntityToWorld(addItemEntityPacket.entityId, entityItem);
     }
 
 
@@ -220,7 +220,7 @@ public class ClientPacketHandler extends PacketHandler
         double z = (double) weatherEffectPacket.z / 32D;
         Entity weatherEntity = null;
         if (weatherEffectPacket.effectId == WeatherEffectPacket.EFFECT_LIGHTNING) {
-            weatherEntity = new LightningEntity(worldClient, x, y, z);
+            weatherEntity = new EntityLightning(worldClient, x, y, z);
         }
         if (weatherEntity != null)
         {
@@ -247,8 +247,8 @@ public class ClientPacketHandler extends PacketHandler
     public void handleEntityPainting(AddPaintingPacket addPaintingPacket)
     {
         Entity entity = worldClient.getEntityFromId(addPaintingPacket.entityId);
-        if (entity instanceof PaintingEntity){
-            PaintingEntity painting = (PaintingEntity) entity;
+        if (entity instanceof EntityPainting){
+            EntityPainting painting = (EntityPainting) entity;
             painting.blockX = addPaintingPacket.xPosition;
             painting.blockY = addPaintingPacket.yPosition;
             painting.blockZ = addPaintingPacket.zPosition;
@@ -260,7 +260,7 @@ public class ClientPacketHandler extends PacketHandler
                 painting.setStack(new ItemStack(addPaintingPacket.itemID, 1, addPaintingPacket.meta));
             }
         } else {
-            PaintingEntity entitypainting = new PaintingEntity(worldClient, addPaintingPacket.xPosition, addPaintingPacket.yPosition, addPaintingPacket.zPosition, addPaintingPacket.direction, addPaintingPacket.key);
+            EntityPainting entitypainting = new EntityPainting(worldClient, addPaintingPacket.xPosition, addPaintingPacket.yPosition, addPaintingPacket.zPosition, addPaintingPacket.direction, addPaintingPacket.key);
             worldClient.addEntityToWorld(addPaintingPacket.entityId, entitypainting);
             if (addPaintingPacket.itemID > 0){
                 entitypainting.setStack(new ItemStack(addPaintingPacket.itemID, 1, addPaintingPacket.meta));
@@ -302,25 +302,25 @@ public class ClientPacketHandler extends PacketHandler
         double d2 = (double) addPlayerPacket.zPosition / 32D;
         float f = (float) (addPlayerPacket.rotation * 360) / 256F;
         float f1 = (float) (addPlayerPacket.pitch * 360) / 256F;
-        RemotePlayer remotePlayer = new RemotePlayer(mc.theWorld, addPlayerPacket.name, addPlayerPacket.uuid);
-        remotePlayer.xo = remotePlayer.serverPosX = addPlayerPacket.xPosition;
-        remotePlayer.yo = remotePlayer.serverPosY = addPlayerPacket.yPosition;
-        remotePlayer.zo = remotePlayer.serverPosZ = addPlayerPacket.zPosition;
+        PlayerRemote playerRemote = new PlayerRemote(mc.theWorld, addPlayerPacket.name, addPlayerPacket.uuid);
+        playerRemote.xo = playerRemote.serverPosX = addPlayerPacket.xPosition;
+        playerRemote.yo = playerRemote.serverPosY = addPlayerPacket.yPosition;
+        playerRemote.zo = playerRemote.serverPosZ = addPlayerPacket.zPosition;
         int i = addPlayerPacket.currentItem;
         if (i == 0)
         {
-            remotePlayer.inventory.mainInventory[remotePlayer.inventory.getCurrentItemIndex()] = null;
+            playerRemote.inventory.mainInventory[playerRemote.inventory.getCurrentItemIndex()] = null;
         }
         else
         {
-            remotePlayer.inventory.mainInventory[remotePlayer.inventory.getCurrentItemIndex()] = new ItemStack(i, 1, 0);
+            playerRemote.inventory.mainInventory[playerRemote.inventory.getCurrentItemIndex()] = new ItemStack(i, 1, 0);
         }
-        remotePlayer.absMoveTo(d, d1, d2, f, f1);
-        worldClient.addEntityToWorld(addPlayerPacket.entityId, remotePlayer);
-        remotePlayer.nickname = StringUtils.substring(addPlayerPacket.nickname, 0, 32);
-        remotePlayer.chatColor = addPlayerPacket.chatColor;
+        playerRemote.absMoveTo(d, d1, d2, f, f1);
+        worldClient.addEntityToWorld(addPlayerPacket.entityId, playerRemote);
+        playerRemote.nickname = StringUtils.substring(addPlayerPacket.nickname, 0, 32);
+        playerRemote.chatColor = addPlayerPacket.chatColor;
 
-        remotePlayer.setHeldObject(addPlayerPacket.heldObjectTag == null ? null : ICarriable.createAndLoadCarriable(remotePlayer, addPlayerPacket.heldObjectTag));
+        playerRemote.setHeldObject(addPlayerPacket.heldObjectTag == null ? null : ICarriable.createAndLoadCarriable(playerRemote, addPlayerPacket.heldObjectTag));
     }
 
     @Override
@@ -382,10 +382,10 @@ public class ClientPacketHandler extends PacketHandler
     {
         if (mc.theWorld.isBlockLoaded(setMobSpawnerPacket.xPosition, setMobSpawnerPacket.yPosition, setMobSpawnerPacket.zPosition))
         {
-            BlockEntity tileentity = mc.theWorld.getBlockEntity(setMobSpawnerPacket.xPosition, setMobSpawnerPacket.yPosition, setMobSpawnerPacket.zPosition);
-            if (tileentity instanceof MobSpawnerBlockEntity)
+            TileEntity tileentity = mc.theWorld.getBlockEntity(setMobSpawnerPacket.xPosition, setMobSpawnerPacket.yPosition, setMobSpawnerPacket.zPosition);
+            if (tileentity instanceof TileEntityMobSpawner)
             {
-                MobSpawnerBlockEntity tileEntityMobSpawner = (MobSpawnerBlockEntity) tileentity;
+                TileEntityMobSpawner tileEntityMobSpawner = (TileEntityMobSpawner) tileentity;
                 tileEntityMobSpawner.setMobId(setMobSpawnerPacket.spawnType);
 
                 tileEntityMobSpawner.setChanged();
@@ -407,7 +407,7 @@ public class ClientPacketHandler extends PacketHandler
     @Override
     public void handleFlying(MovePlayerPacket movePlayerPacket)
     {
-        LocalPlayer entityplayersp = mc.thePlayer;
+        PlayerLocal entityplayersp = mc.thePlayer;
         double d = ((Player) (entityplayersp)).x;
         double d1 = ((Player) (entityplayersp)).y;
         double d2 = ((Player) (entityplayersp)).z;
@@ -486,7 +486,7 @@ public class ClientPacketHandler extends PacketHandler
         netManager.networkShutdown("disconnect.kicked", new Object[0]);
         disconnected = true;
         mc.changeWorld(null);
-        mc.displayScreen(new ConnectFailedScreen("disconnect.disconnected", "disconnect.genericReason", new Object[]{
+        mc.displayScreen(new ScreenConnectFailed("disconnect.disconnected", "disconnect.genericReason", new Object[]{
             packet255KickdisconnectPacket.reason
         }));
     }
@@ -507,7 +507,7 @@ public class ClientPacketHandler extends PacketHandler
                 LOGGER.error("Exception when leaving GUI!", e);
             }
 
-            mc.displayScreen(new ConnectFailedScreen("disconnect.lost", message, objects)); // Open error message gui
+            mc.displayScreen(new ScreenConnectFailed("disconnect.lost", message, objects)); // Open error message gui
         }
     }
 
@@ -540,7 +540,7 @@ public class ClientPacketHandler extends PacketHandler
             // this class does not seem to handle pick up from server dropped items. find where it is.
             // something about that isn't working on servers if the player changed their gamemode.
             worldClient.playSoundAtEntity(null, item, "item.pickup", 1F, ((rand.nextFloat() - rand.nextFloat()) * 0.7F + 1.0F) * 4.0F);
-            mc.particleEngine.add(new TakeAnimationParticle(mc.theWorld, item, collector, -0.5F));
+            mc.particleEngine.add(new ParticlePickupAnimation(mc.theWorld, item, collector, -0.5F));
             worldClient.removeEntityFromWorld(takeItemEntityPacket.collectedEntityId);
         }
     }
@@ -560,20 +560,20 @@ public class ClientPacketHandler extends PacketHandler
 		
 		int type = packet.type;
 		if(type == 1) {
-			mc.ingameHud.heldItemTooltipElement.setString(message);
+			mc.hudIngame.heldItemTooltipElement.setString(message);
 		}else {
-			mc.ingameHud.addChatMessage(message);
+			mc.hudIngame.addChatMessage(message);
 		}
 	}
 
     public void handlePlayerJoin(ChatPacket chatPacket)
     {
-        mc.ingameHud.addChatMessage(chatPacket.message);
+        mc.hudIngame.addChatMessage(chatPacket.message);
     }
 
     public void handlePlayerLeave(ChatPacket chatPacket)
     {
-        mc.ingameHud.addChatMessage(chatPacket.message);
+        mc.hudIngame.addChatMessage(chatPacket.message);
     }
 
     @Override
@@ -825,7 +825,7 @@ public class ClientPacketHandler extends PacketHandler
             worldClient.isClientSide = true;
             mc.changeWorld(worldClient);
             mc.thePlayer.dimension = respawnPacket.respawnDimensionId;
-            mc.displayScreen(new DownloadTerrainScreen(this));
+            mc.displayScreen(new ScreenDownloadTerrain(this));
         }
         mc.respawn(true, respawnPacket.respawnDimensionId);
     }
@@ -852,38 +852,38 @@ public class ClientPacketHandler extends PacketHandler
     {
         switch (containerOpenPacket.inventoryType) {
             case ContainerOpenPacket.TYPE_GENERIC_CONTAINER: {
-                SimpleContainer simpleContainer = new SimpleContainer(containerOpenPacket.windowTitle, containerOpenPacket.slotsCount);
+                ContainerSimple simpleContainer = new ContainerSimple(containerOpenPacket.windowTitle, containerOpenPacket.slotsCount);
                 mc.thePlayer.displayContainerScreen(simpleContainer);
                 mc.thePlayer.craftingInventory.containerId = containerOpenPacket.windowId;
                 break;
             }
             case ContainerOpenPacket.TYPE_FURNACE: {
-                FurnaceBlockEntity furnaceBlockEntity = new FurnaceBlockEntity();
-                mc.thePlayer.displayFurnaceScreen(furnaceBlockEntity);
+                TileEntityFurnace tileEntityFurnace = new TileEntityFurnace();
+                mc.thePlayer.displayFurnaceScreen(tileEntityFurnace);
                 mc.thePlayer.craftingInventory.containerId = containerOpenPacket.windowId;
                 break;
             }
             case ContainerOpenPacket.TYPE_DISPENSER: {
-                DispenserBlockEntity dispenserBlockEntity = new DispenserBlockEntity();
-                mc.thePlayer.displayDispenserScreen(dispenserBlockEntity);
+                TileEntityDispenser tileEntityDispenser = new TileEntityDispenser();
+                mc.thePlayer.displayDispenserScreen(tileEntityDispenser);
                 mc.thePlayer.craftingInventory.containerId = containerOpenPacket.windowId;
                 break;
             }
             case ContainerOpenPacket.TYPE_ACTIVATOR: {
-                ActivatorBlockEntity activatorBlockEntity = new ActivatorBlockEntity();
-                mc.thePlayer.displayActivatorScreen(activatorBlockEntity);
+                TileEntityActivator tileEntityActivator = new TileEntityActivator();
+                mc.thePlayer.displayActivatorScreen(tileEntityActivator);
                 mc.thePlayer.craftingInventory.containerId = containerOpenPacket.windowId;
                 break;
             }
             case ContainerOpenPacket.TYPE_BLAST_FURNACE: {
-                BlastFurnaceBlockEntity blastFurnaceBlockEntity = new BlastFurnaceBlockEntity();
-                mc.thePlayer.displayFurnaceScreen(blastFurnaceBlockEntity);
+                TileEntityFurnaceBlastFurnace tileEntityFurnaceBlast = new TileEntityFurnaceBlastFurnace();
+                mc.thePlayer.displayFurnaceScreen(tileEntityFurnaceBlast);
                 mc.thePlayer.craftingInventory.containerId = containerOpenPacket.windowId;
                 break;
             }
             case ContainerOpenPacket.TYPE_TROMMEL: {
-                TrommelBlockEntity trommelBlockEntity = new TrommelBlockEntity();
-                mc.thePlayer.displayTrommelScreen(trommelBlockEntity);
+                TileEntityTrommel tileEntityTrommel = new TileEntityTrommel();
+                mc.thePlayer.displayTrommelScreen(tileEntityTrommel);
                 mc.thePlayer.craftingInventory.containerId = containerOpenPacket.windowId;
                 break;
             }
@@ -892,8 +892,8 @@ public class ClientPacketHandler extends PacketHandler
                 break;
             }
             case ContainerOpenPacket.TYPE_CRAFTING: {
-                LocalPlayer localPlayer = mc.thePlayer;
-                mc.thePlayer.displayWorkbenchScreen(MathHelper.floor(localPlayer.x), MathHelper.floor(localPlayer.y), MathHelper.floor(localPlayer.z));
+                PlayerLocal playerLocal = mc.thePlayer;
+                mc.thePlayer.displayWorkbenchScreen(MathHelper.floor(playerLocal.x), MathHelper.floor(playerLocal.y), MathHelper.floor(playerLocal.z));
                 mc.thePlayer.craftingInventory.containerId = containerOpenPacket.windowId;
                 break;
             }
@@ -906,10 +906,10 @@ public class ClientPacketHandler extends PacketHandler
     @Override
     public void handleOpenFlagWindow(FlagOpenPacket flagOpenPacket)
     {
-        BlockEntity blockEntity = worldClient.getBlockEntity(flagOpenPacket.x, flagOpenPacket.y, flagOpenPacket.z);
-        if (blockEntity instanceof FlagBlockEntity)
+        TileEntity tileEntity = worldClient.getBlockEntity(flagOpenPacket.x, flagOpenPacket.y, flagOpenPacket.z);
+        if (tileEntity instanceof TileEntityFlag)
         {
-            FlagBlockEntity tileEntityFlag = (FlagBlockEntity) blockEntity;
+            TileEntityFlag tileEntityFlag = (TileEntityFlag) tileEntity;
             mc.thePlayer.displayFlagEditorScreen(tileEntityFlag);
             mc.thePlayer.craftingInventory.containerId = flagOpenPacket.windowId;
         }
@@ -918,7 +918,7 @@ public class ClientPacketHandler extends PacketHandler
     @Override
     public void handlePhotoMode(PhotoModePacket photoModePacket)
     {
-        PauseScreen.photoModeDisabled = photoModePacket.disabled;
+        ScreenPause.photoModeDisabled = photoModePacket.disabled;
     }
 
     @Override
@@ -946,7 +946,7 @@ public class ClientPacketHandler extends PacketHandler
     @Override
     public void handleTransaction(ContainerAckPacket containerAckPacket)
     {
-        AbstractContainerMenu container = null;
+        MenuAbstract container = null;
         if (containerAckPacket.windowId == 0)
         {
             container = mc.thePlayer.inventorySlots;
@@ -1037,7 +1037,7 @@ public class ClientPacketHandler extends PacketHandler
     {
         if (mapdataPacket.itemId == Items.MAP.id)
         {
-            MapItem.getOrCreateSavedData(mapdataPacket.meta, mapdataPacket.scale, mc.theWorld).setColors(mapdataPacket.mapData);
+            ItemMap.getOrCreateSavedData(mapdataPacket.meta, mapdataPacket.scale, mc.theWorld).setColors(mapdataPacket.mapData);
         }
         else
         {
@@ -1129,20 +1129,20 @@ public class ClientPacketHandler extends PacketHandler
     @Override
     public void handleTileEntityData(BlockEntityDataPacket blockEntityDataPacket)
     {
-        Class<?> clazz = BlockEntityDispatcher.getClassFromID(blockEntityDataPacket.tag.getString("id"));
+        Class<?> clazz = TileEntityDispatcher.getClassFromID(blockEntityDataPacket.tag.getString("id"));
         if (clazz == null) return;
-        BlockEntity existingBlockEntity = worldClient.getBlockEntity(blockEntityDataPacket.tag.getInteger("x"), blockEntityDataPacket.tag.getInteger("y"), blockEntityDataPacket.tag.getInteger("z"));
-        if (existingBlockEntity == null || existingBlockEntity.getClass() != clazz)
+        TileEntity existingTileEntity = worldClient.getBlockEntity(blockEntityDataPacket.tag.getInteger("x"), blockEntityDataPacket.tag.getInteger("y"), blockEntityDataPacket.tag.getInteger("z"));
+        if (existingTileEntity == null || existingTileEntity.getClass() != clazz)
         {
-            BlockEntity blockEntity = BlockEntityDispatcher.createAndLoadEntity(blockEntityDataPacket.tag);
-            if (blockEntity != null)
+            TileEntity tileEntity = TileEntityDispatcher.createAndLoadEntity(blockEntityDataPacket.tag);
+            if (tileEntity != null)
             {
-                mc.theWorld.setBlockTileEntity(blockEntity.x, blockEntity.y, blockEntity.z, blockEntity);
+                mc.theWorld.setBlockTileEntity(tileEntity.x, tileEntity.y, tileEntity.z, tileEntity);
             }
         }
         else
         {
-            existingBlockEntity.readFromNBT(blockEntityDataPacket.tag);
+            existingTileEntity.readFromNBT(blockEntityDataPacket.tag);
         }
         worldClient.markBlockDirty(blockEntityDataPacket.tag.getInteger("x"), blockEntityDataPacket.tag.getInteger("y"), blockEntityDataPacket.tag.getInteger("z"));
     }
@@ -1164,12 +1164,12 @@ public class ClientPacketHandler extends PacketHandler
         if(Registries.RECIPES.getAllSerializableRecipes().size() == recipeSyncPacket.maxRecipes){
             LOGGER.info("All recipes received!");
             Registries.RECIPES.invalidateCaches();
-            SearchPage.searchField.setText("_");
-            PageManager.searchQuery = SearchQuery.resolve(SearchPage.searchField.getText());
-            GuidebookScreen.getPageManager().updatePages();
-            SearchPage.searchField.setText("");
-            PageManager.searchQuery = SearchQuery.resolve(SearchPage.searchField.getText());
-            GuidebookScreen.getPageManager().updatePages();
+            GuidebookPageSearch.searchField.setText("_");
+            GuidebookPageManager.searchQuery = SearchQuery.resolve(GuidebookPageSearch.searchField.getText());
+            ScreenGuidebook.getPageManager().updatePages();
+            GuidebookPageSearch.searchField.setText("");
+            GuidebookPageManager.searchQuery = SearchQuery.resolve(GuidebookPageSearch.searchField.getText());
+            ScreenGuidebook.getPageManager().updatePages();
         }
     }
     
@@ -1190,6 +1190,6 @@ public class ClientPacketHandler extends PacketHandler
 
     @Override
     public void handleCommandManagerPacket(CommandManagerPacket commandManagerPacket) {
-        ChatSuggestionsElement.serverSuggestions = commandManagerPacket.suggestions;
+        GuiElementChatSuggestions.serverSuggestions = commandManagerPacket.suggestions;
     }
 }
diff --git a/src/main/java/net/minecraft/client/net/handler/PingPacketHandler.java b/src/main/java/net/minecraft/client/net/handler/PingPacketHandler.java
index 30702b888..012e6b0e0 100644
--- a/src/main/java/net/minecraft/client/net/handler/PingPacketHandler.java
+++ b/src/main/java/net/minecraft/client/net/handler/PingPacketHandler.java
@@ -1,6 +1,6 @@
 package net.minecraft.client.net.handler;
 
-import net.minecraft.client.gui.SelectServerScreen;
+import net.minecraft.client.gui.ScreenSelectServer;
 import net.minecraft.core.net.NetworkManager;
 import net.minecraft.core.net.ServerAddress;
 import net.minecraft.core.net.ServerData;
@@ -16,12 +16,12 @@ public class PingPacketHandler
     extends PacketHandler
 {
     private boolean disconnected = false;
-    private final SelectServerScreen screen;
+    private final ScreenSelectServer screen;
     private final NetworkManager netManager;
     private final ServerData server;
     public static long startTime = 0;
 
-    public PingPacketHandler(SelectServerScreen screen, ServerData server)
+    public PingPacketHandler(ScreenSelectServer screen, ServerData server)
         throws IOException {
         this.screen = screen;
         this.server = server;
diff --git a/src/main/java/net/minecraft/client/net/thread/ThreadDownloadImage.java b/src/main/java/net/minecraft/client/net/thread/ThreadDownloadImage.java
index 51546d8f0..66dc0cd80 100644
--- a/src/main/java/net/minecraft/client/net/thread/ThreadDownloadImage.java
+++ b/src/main/java/net/minecraft/client/net/thread/ThreadDownloadImage.java
@@ -1,7 +1,7 @@
 package net.minecraft.client.net.thread;
 
 import com.mojang.logging.LogUtils;
-import net.minecraft.client.render.texture.DownloadedTexture;
+import net.minecraft.client.render.texture.TextureDownloaded;
 import net.minecraft.client.render.ImageParser;
 import org.slf4j.Logger;
 
@@ -18,9 +18,9 @@ public class ThreadDownloadImage extends Thread {
 	
 	public final String url;
 	public final ImageParser imageParser;
-	public final DownloadedTexture texture;
+	public final TextureDownloaded texture;
 
-	public ThreadDownloadImage(DownloadedTexture texture, String url, ImageParser imageParser) {
+	public ThreadDownloadImage(TextureDownloaded texture, String url, ImageParser imageParser) {
 		this.texture = texture;
 		this.url = url;
 		this.imageParser = imageParser;
diff --git a/src/main/java/net/minecraft/client/net/thread/ThreadPingServer.java b/src/main/java/net/minecraft/client/net/thread/ThreadPingServer.java
index 7f28e0a8b..aa71ad74e 100644
--- a/src/main/java/net/minecraft/client/net/thread/ThreadPingServer.java
+++ b/src/main/java/net/minecraft/client/net/thread/ThreadPingServer.java
@@ -1,6 +1,6 @@
 package net.minecraft.client.net.thread;
 
-import net.minecraft.client.gui.SelectServerScreen;
+import net.minecraft.client.gui.ScreenSelectServer;
 import net.minecraft.client.net.handler.PingPacketHandler;
 import net.minecraft.core.Global;
 import net.minecraft.core.net.ServerAddress;
@@ -11,12 +11,12 @@ import net.minecraft.core.net.packet.PingHandshakePacket;
 public class ThreadPingServer
     extends Thread {
 
-    private final SelectServerScreen screen;
+    private final ScreenSelectServer screen;
     private final ServerData server;
     private boolean done = false;
     private PingPacketHandler netHandler = null;
 
-    public ThreadPingServer(SelectServerScreen screen, ServerData server) {
+    public ThreadPingServer(ScreenSelectServer screen, ServerData server) {
         this.screen = screen;
         this.server = server;
         ServerAddress address = server.getServerAddress();
diff --git a/src/main/java/net/minecraft/client/option/GameSettings.java b/src/main/java/net/minecraft/client/option/GameSettings.java
index 26755d91e..7ad459b83 100644
--- a/src/main/java/net/minecraft/client/option/GameSettings.java
+++ b/src/main/java/net/minecraft/client/option/GameSettings.java
@@ -37,136 +37,136 @@ public class GameSettings {
 	public final Minecraft mc;
 	private final File optionsFile;
 
-	public IntegerOption windowWidth = new IntegerOption(this, "windowWidth", 854);
-	public IntegerOption windowHeight = new IntegerOption(this, "windowHeight", 480);
+	public OptionInteger windowWidth = new OptionInteger(this, "windowWidth", 854);
+	public OptionInteger windowHeight = new OptionInteger(this, "windowHeight", 480);
 	
-	public VolumeOption masterVolume = new VolumeOption(this, "sound.master", 1.0f, SoundCategory.GUI_SOUNDS);
-	public VolumeOption musicVolume = new VolumeOption(this, "sound.music", 1.0f, SoundCategory.MUSIC);
-	public VolumeOption worldSoundsVolume = new VolumeOption(this, "sound.world", 1.0f, SoundCategory.WORLD_SOUNDS);
-	public VolumeOption entitySoundsVolume = new VolumeOption(this, "sound.entity", 1.0f, SoundCategory.ENTITY_SOUNDS);
-	public VolumeOption caveSoundsVolume = new VolumeOption(this, "sound.cave", 1.0f, SoundCategory.CAVE_SOUNDS);
-	public VolumeOption guiSoundsVolume = new VolumeOption(this, "sound.gui", 1.0f, SoundCategory.GUI_SOUNDS);
-	public VolumeOption weatherSoundsVolume = new VolumeOption(this, "sound.weather", 1.0f, SoundCategory.WEATHER_SOUNDS);
+	public OptionVolume masterVolume = new OptionVolume(this, "sound.master", 1.0f, SoundCategory.GUI_SOUNDS);
+	public OptionVolume musicVolume = new OptionVolume(this, "sound.music", 1.0f, SoundCategory.MUSIC);
+	public OptionVolume worldSoundsVolume = new OptionVolume(this, "sound.world", 1.0f, SoundCategory.WORLD_SOUNDS);
+	public OptionVolume entitySoundsVolume = new OptionVolume(this, "sound.entity", 1.0f, SoundCategory.ENTITY_SOUNDS);
+	public OptionVolume caveSoundsVolume = new OptionVolume(this, "sound.cave", 1.0f, SoundCategory.CAVE_SOUNDS);
+	public OptionVolume guiSoundsVolume = new OptionVolume(this, "sound.gui", 1.0f, SoundCategory.GUI_SOUNDS);
+	public OptionVolume weatherSoundsVolume = new OptionVolume(this, "sound.weather", 1.0f, SoundCategory.WEATHER_SOUNDS);
 	
-	public FloatOption FoV = new FloatOption(this, "fov", 0.40140846f);
-	public FloatOption mouseSensitivity = new FloatOption(this, "mouseSensitivity", 0.5f);
-	public FloatOption screenPadding = new FloatOption(this, "screenPadding", 0.0f);
-	public FloatOption gamma = new FloatOption(this, "gamma", 0.5f);
-	public FloatOption brightness = new FloatOption(this, "brightness", 0.5f);
+	public OptionFloat FoV = new OptionFloat(this, "fov", 0.40140846f);
+	public OptionFloat mouseSensitivity = new OptionFloat(this, "mouseSensitivity", 0.5f);
+	public OptionFloat screenPadding = new OptionFloat(this, "screenPadding", 0.0f);
+	public OptionFloat gamma = new OptionFloat(this, "gamma", 0.5f);
+	public OptionFloat brightness = new OptionFloat(this, "brightness", 0.5f);
 
-	public FloatOption fxaa = new FloatOption(this, "fxaa", 0.0f);
-	public FloatOption controllerSensitivity = new FloatOption(this, "controllerSensitivity", 0.5f);
-	public FloatOption controllerMenuSensitivity = new FloatOption(this, "controllerMenuSensitivity", 0.5f);
-	public FloatOption controllerDeadzoneLeft = new FloatOption(this, "controllerDeadzoneL", 0.25f);
-	public FloatOption controllerDeadzoneRight = new FloatOption(this, "controllerDeadzoneR", 0.25f);
-	public FloatOption blockOutlineWidth = new FloatOption(this, "blockOutlineWidth", 0.25f);
+	public OptionFloat fxaa = new OptionFloat(this, "fxaa", 0.0f);
+	public OptionFloat controllerSensitivity = new OptionFloat(this, "controllerSensitivity", 0.5f);
+	public OptionFloat controllerMenuSensitivity = new OptionFloat(this, "controllerMenuSensitivity", 0.5f);
+	public OptionFloat controllerDeadzoneLeft = new OptionFloat(this, "controllerDeadzoneL", 0.25f);
+	public OptionFloat controllerDeadzoneRight = new OptionFloat(this, "controllerDeadzoneR", 0.25f);
+	public OptionFloat blockOutlineWidth = new OptionFloat(this, "blockOutlineWidth", 0.25f);
 	
-	public FloatOption flightSpeed = new FloatOption(this, "flightSpeed", 0.5f);
-	public FloatOption flightSmoothness = new FloatOption(this, "flightSmoothness", 0.5f);
+	public OptionFloat flightSpeed = new OptionFloat(this, "flightSpeed", 0.5f);
+	public OptionFloat flightSmoothness = new OptionFloat(this, "flightSmoothness", 0.5f);
 
-	public BooleanOption invertMouse = new BooleanOption(this, "invertYMouse", false);
-	public BooleanOption rawMouseInput = new BooleanOption(this, "rawMouseInput", false);
-	public BooleanOption viewBobbing = new BooleanOption(this, "bobView", true);
-	public BooleanOption advancedOpenGL = new BooleanOption(this, "advancedOpengl", false);
-	public RangeOption fancyGraphics = new RangeOption(this, "fancyGraphics", 1, 2);
-	public BooleanOption treeShadows = new BooleanOption(this, "treeShadows", true);
-	public BooleanOption ambientOcclusion = new BooleanOption(this, "ambientOcclusion", true);
-	public BooleanOption items3D = new BooleanOption(this, "3Ditems", false);
-	public BooleanOption smoothCamera = new BooleanOption(this, "smoothCamera", false);
-	public BooleanOption lockCamera = new BooleanOption(this, "lockCamera", false);
-	public BooleanOption biomeWater = new BooleanOption(this, "biomeWater", true);
-	public BooleanOption vignette = new BooleanOption(this, "vignette", true);
-	public BooleanOption showPlayerList = new BooleanOption(this, "showPlayerList", false);
-	public BooleanOption slimeParticles = new BooleanOption(this, "slimeParticles", true);
-	public BooleanOption disableShaders = new BooleanOption(this, "disableShaders", false);
-	public StringOption shaderOverride = new StringOption(this, "shaderOverride", "");
-	public BooleanOption autoHit = new BooleanOption(this, "autoHit", true);
-	public BooleanOption easyBridge = new BooleanOption(this, "easyBridge", true);
-	public BooleanOption foodHealthRegenOverlay = new BooleanOption(this, "foodHealthRegenOverlay", true);
-	public BooleanOption fpsInOverlay = new BooleanOption(this, "fpsInOverlay", false);
-	public BooleanOption versionInOverlay = new BooleanOption(this, "versionInOverlay", false);
-	public BooleanOption controllerSwapShoulderButtons = new BooleanOption(this, "controllerSwapShoulderButtons", false);
-	public BooleanOption controllerSwapAB = new BooleanOption(this, "controllerSwapAB", false);
-	public BooleanOption controllerSwapXY = new BooleanOption(this, "controllerSwapXY", false);
-	public BooleanOption clouds = new BooleanOption(this, "clouds", true);
-	public FloatOption cloudHeight = new FloatOption(this, "cloudHeight", 0f);
-	public BooleanOption armorDurabilityOverlay = new BooleanOption(this, "armorDurabilityOverlay", false);
-	public BooleanOption armorProtectionOverlay = new BooleanOption(this, "armorProtectionOverlay", true);
-	public BooleanOption heldItemCountOverlay = new BooleanOption(this, "heldItemCountOverlay", false);
-	public BooleanOption pauseOnLostFocus = new BooleanOption(this, "pauseOnLostFocus", true);
-	public BooleanOption showDebugScreen = new BooleanOption(this, "showDebugScreen", false);
-	public BooleanOption showFrameTimes = new BooleanOption(this, "showFrameTimes", false);
-	public BooleanOption showItemDebugInfo = new BooleanOption(this, "showItemDebugInfo", false);
-	public BooleanOption showChunkBorders = new BooleanOption(this, "showChunkBorders", false);
-	public BooleanOption showCollisionBoxes = new BooleanOption(this, "showCollisionBoxes", false);
-	public BooleanOption swapCraftingButtons = new BooleanOption(this, "swapCraftingButtons", false);
-    public BooleanOption forceUnicodeFont = new BooleanOption(this, "forceUnicodeFont", false);
-	public EnumOption<PlacementMode> placementMode = new EnumOption<>(this, "placementMode", PlacementMode.class, PlacementMode.DEFAULT).setIsSlider(false);
-	public BooleanOption discordRichPresence = new BooleanOption(this, "discordRichPresence", false);
-	public ImmersiveModeOption immersiveMode = new ImmersiveModeOption(this);
-	public ColorOption guiBackgroundColor = new ColorOption(this, "guiBackgroundColor", new Color().setARGB(0xc0101010));
-	public EnumOption<Difficulty> difficulty = new EnumOption<>(this, "difficulty", Difficulty.class, Difficulty.NORMAL); // Stub for local difficulty setting
-	public IntegerOption thirdPersonView = new IntegerOption(this, "thirdPersonView", 0);
-	public RangeOption renderDistance = new RangeOption(this, "renderDistance", 8, 2, 64);
-	public BooleanOption enableVsync = new BooleanOption(this, "enableVsync", false);
-	public EnumOption<ChatVisibility> chatVisibility = new EnumOption<>(this, "chatVisibility", ChatVisibility.class, ChatVisibility.SHOW_ALL);
-	public RangeOption customFpsLimit = new RangeOption(this,"customFpsLimit",0,241);
-	public IntegerOption guiScale = new IntegerOption(this, "guiScale", 0);
-	public IntegerOption overlayMode = new IntegerOption(this, "overlayMode", 0);
-	public IntegerOption rotationOverlayMode = new IntegerOption(this, "rotationOverlayMode", 0);
-	public RangeOption animations = new RangeOption(this, "animations", 2, 3);
-	public BooleanOption customAnimations = new BooleanOption(this, "customAnimations", true);
-	public IntegerOption playerListPosition = new IntegerOption(this, "playerListPosition", 2);
-	public BooleanOption heldItemTooltips = new BooleanOption(this, "heldItemTooltips", true);
-	public FloatOption colorCorrection = new FloatOption(this, "colorCorrection", 0.5f);
-	public BooleanOption sneakToggle = new BooleanOption(this, "sneakToggle", false);
-	public FloatOption autosaveTimer = new FloatOption(this, "autosaveTimer", 0.04166666666F);
-	public BooleanOption enableItemDragging = new BooleanOption(this, "enableItemDragging", true);
-	public RangeOption bloom = new RangeOption(this, "bloom", 0, 3);
-	public EnumOption<RenderScale> renderScale = new EnumOption<>(this, "renderScale", RenderScale.class, RenderScale.SCALE_100);
-	public BooleanOption heatHaze = new BooleanOption(this, "heatHaze", false);
-	public BooleanOption alphaMenu = new BooleanOption(this, "old", false);
-	public BooleanOption enableItemClumping = new BooleanOption(this, "enableItemClumping", false);
-	public BooleanOption alwaysShowDescriptions = new BooleanOption(this, "alwaysShowDescriptions", false);
-	public BooleanOption turnWithVehicle = new BooleanOption(this, "turnWithVehicle", true);
-	public BooleanOption disableCrashHandler = new BooleanOption(this, "disableCrashHandler", false);
-	public BooleanOption enableMultiDrawRendering = new BooleanOption(this, "enableMultiDrawRendering", true);
+	public OptionBoolean invertMouse = new OptionBoolean(this, "invertYMouse", false);
+	public OptionBoolean rawMouseInput = new OptionBoolean(this, "rawMouseInput", false);
+	public OptionBoolean viewBobbing = new OptionBoolean(this, "bobView", true);
+	public OptionBoolean advancedOpenGL = new OptionBoolean(this, "advancedOpengl", false);
+	public OptionRange fancyGraphics = new OptionRange(this, "fancyGraphics", 1, 2);
+	public OptionBoolean treeShadows = new OptionBoolean(this, "treeShadows", true);
+	public OptionBoolean ambientOcclusion = new OptionBoolean(this, "ambientOcclusion", true);
+	public OptionBoolean items3D = new OptionBoolean(this, "3Ditems", false);
+	public OptionBoolean smoothCamera = new OptionBoolean(this, "smoothCamera", false);
+	public OptionBoolean lockCamera = new OptionBoolean(this, "lockCamera", false);
+	public OptionBoolean biomeWater = new OptionBoolean(this, "biomeWater", true);
+	public OptionBoolean vignette = new OptionBoolean(this, "vignette", true);
+	public OptionBoolean showPlayerList = new OptionBoolean(this, "showPlayerList", false);
+	public OptionBoolean slimeParticles = new OptionBoolean(this, "slimeParticles", true);
+	public OptionBoolean disableShaders = new OptionBoolean(this, "disableShaders", false);
+	public OptionString shaderOverride = new OptionString(this, "shaderOverride", "");
+	public OptionBoolean autoHit = new OptionBoolean(this, "autoHit", true);
+	public OptionBoolean easyBridge = new OptionBoolean(this, "easyBridge", true);
+	public OptionBoolean foodHealthRegenOverlay = new OptionBoolean(this, "foodHealthRegenOverlay", true);
+	public OptionBoolean fpsInOverlay = new OptionBoolean(this, "fpsInOverlay", false);
+	public OptionBoolean versionInOverlay = new OptionBoolean(this, "versionInOverlay", false);
+	public OptionBoolean controllerSwapShoulderButtons = new OptionBoolean(this, "controllerSwapShoulderButtons", false);
+	public OptionBoolean controllerSwapAB = new OptionBoolean(this, "controllerSwapAB", false);
+	public OptionBoolean controllerSwapXY = new OptionBoolean(this, "controllerSwapXY", false);
+	public OptionBoolean clouds = new OptionBoolean(this, "clouds", true);
+	public OptionFloat cloudHeight = new OptionFloat(this, "cloudHeight", 0f);
+	public OptionBoolean armorDurabilityOverlay = new OptionBoolean(this, "armorDurabilityOverlay", false);
+	public OptionBoolean armorProtectionOverlay = new OptionBoolean(this, "armorProtectionOverlay", true);
+	public OptionBoolean heldItemCountOverlay = new OptionBoolean(this, "heldItemCountOverlay", false);
+	public OptionBoolean pauseOnLostFocus = new OptionBoolean(this, "pauseOnLostFocus", true);
+	public OptionBoolean showDebugScreen = new OptionBoolean(this, "showDebugScreen", false);
+	public OptionBoolean showFrameTimes = new OptionBoolean(this, "showFrameTimes", false);
+	public OptionBoolean showItemDebugInfo = new OptionBoolean(this, "showItemDebugInfo", false);
+	public OptionBoolean showChunkBorders = new OptionBoolean(this, "showChunkBorders", false);
+	public OptionBoolean showCollisionBoxes = new OptionBoolean(this, "showCollisionBoxes", false);
+	public OptionBoolean swapCraftingButtons = new OptionBoolean(this, "swapCraftingButtons", false);
+    public OptionBoolean forceUnicodeFont = new OptionBoolean(this, "forceUnicodeFont", false);
+	public OptionEnum<PlacementMode> placementMode = new OptionEnum<>(this, "placementMode", PlacementMode.class, PlacementMode.DEFAULT).setIsSlider(false);
+	public OptionBoolean discordRichPresence = new OptionBoolean(this, "discordRichPresence", false);
+	public OptionImmersiveMode immersiveMode = new OptionImmersiveMode(this);
+	public OptionColor guiBackgroundColor = new OptionColor(this, "guiBackgroundColor", new Color().setARGB(0xc0101010));
+	public OptionEnum<Difficulty> difficulty = new OptionEnum<>(this, "difficulty", Difficulty.class, Difficulty.NORMAL); // Stub for local difficulty setting
+	public OptionInteger thirdPersonView = new OptionInteger(this, "thirdPersonView", 0);
+	public OptionRange renderDistance = new OptionRange(this, "renderDistance", 8, 2, 64);
+	public OptionBoolean enableVsync = new OptionBoolean(this, "enableVsync", false);
+	public OptionEnum<ChatVisibility> chatVisibility = new OptionEnum<>(this, "chatVisibility", ChatVisibility.class, ChatVisibility.SHOW_ALL);
+	public OptionRange customFpsLimit = new OptionRange(this,"customFpsLimit",0,241);
+	public OptionInteger guiScale = new OptionInteger(this, "guiScale", 0);
+	public OptionInteger overlayMode = new OptionInteger(this, "overlayMode", 0);
+	public OptionInteger rotationOverlayMode = new OptionInteger(this, "rotationOverlayMode", 0);
+	public OptionRange animations = new OptionRange(this, "animations", 2, 3);
+	public OptionBoolean customAnimations = new OptionBoolean(this, "customAnimations", true);
+	public OptionInteger playerListPosition = new OptionInteger(this, "playerListPosition", 2);
+	public OptionBoolean heldItemTooltips = new OptionBoolean(this, "heldItemTooltips", true);
+	public OptionFloat colorCorrection = new OptionFloat(this, "colorCorrection", 0.5f);
+	public OptionBoolean sneakToggle = new OptionBoolean(this, "sneakToggle", false);
+	public OptionFloat autosaveTimer = new OptionFloat(this, "autosaveTimer", 0.04166666666F);
+	public OptionBoolean enableItemDragging = new OptionBoolean(this, "enableItemDragging", true);
+	public OptionRange bloom = new OptionRange(this, "bloom", 0, 3);
+	public OptionEnum<RenderScale> renderScale = new OptionEnum<>(this, "renderScale", RenderScale.class, RenderScale.SCALE_100);
+	public OptionBoolean heatHaze = new OptionBoolean(this, "heatHaze", false);
+	public OptionBoolean alphaMenu = new OptionBoolean(this, "old", false);
+	public OptionBoolean enableItemClumping = new OptionBoolean(this, "enableItemClumping", false);
+	public OptionBoolean alwaysShowDescriptions = new OptionBoolean(this, "alwaysShowDescriptions", false);
+	public OptionBoolean turnWithVehicle = new OptionBoolean(this, "turnWithVehicle", true);
+	public OptionBoolean disableCrashHandler = new OptionBoolean(this, "disableCrashHandler", false);
+	public OptionBoolean enableMultiDrawRendering = new OptionBoolean(this, "enableMultiDrawRendering", true);
 
-	public BooleanOption enableDevResourceLoading = new BooleanOption(this, "enableDevResourceLoading", false);
-	public BooleanOption downloadSoundfiles = new BooleanOption(this, "downloadSoundfiles", true);
-	public BooleanOption allowSoundOverrides = new BooleanOption(this, "allowSoundOverrides", false);
-	public BooleanOption loadAllSounds = new BooleanOption(this, "loadAllSounds", false);
+	public OptionBoolean enableDevResourceLoading = new OptionBoolean(this, "enableDevResourceLoading", false);
+	public OptionBoolean downloadSoundfiles = new OptionBoolean(this, "downloadSoundfiles", true);
+	public OptionBoolean allowSoundOverrides = new OptionBoolean(this, "allowSoundOverrides", false);
+	public OptionBoolean loadAllSounds = new OptionBoolean(this, "loadAllSounds", false);
 	
-	public BooleanOption overlayShowCoords = new BooleanOption(this, "overlayShowCoords", true);
-	public BooleanOption overlayShowDirection = new BooleanOption(this, "overlayShowDirection", true);
-	public BooleanOption overlayShowTime = new BooleanOption(this, "overlayShowTime", true);
-	public BooleanOption overlayShowSeason = new BooleanOption(this, "overlayShowSeason", true);
-	public BooleanOption overlayShowWeather = new BooleanOption(this, "overlayShowWeather", true);
-	public BooleanOption overlayShowBiome = new BooleanOption(this, "overlayShowBiome", true);
+	public OptionBoolean overlayShowCoords = new OptionBoolean(this, "overlayShowCoords", true);
+	public OptionBoolean overlayShowDirection = new OptionBoolean(this, "overlayShowDirection", true);
+	public OptionBoolean overlayShowTime = new OptionBoolean(this, "overlayShowTime", true);
+	public OptionBoolean overlayShowSeason = new OptionBoolean(this, "overlayShowSeason", true);
+	public OptionBoolean overlayShowWeather = new OptionBoolean(this, "overlayShowWeather", true);
+	public OptionBoolean overlayShowBiome = new OptionBoolean(this, "overlayShowBiome", true);
 	
-	public BooleanOption[] overlayElements = new BooleanOption[] { overlayShowCoords, overlayShowDirection, overlayShowTime, overlayShowSeason, overlayShowWeather, overlayShowBiome };
+	public OptionBoolean[] overlayElements = new OptionBoolean[] { overlayShowCoords, overlayShowDirection, overlayShowTime, overlayShowSeason, overlayShowWeather, overlayShowBiome };
 	
-	public StringOption lastServer = new StringOption(this, "lastServer", "");
-	public StringOption skin = new StringOption(this, "skin", "Default");
-	public StringOption selectedController = new StringOption(this, "selectedController", "");
-    public StringOption language = new StringOption(this, "language", "en_US");
+	public OptionString lastServer = new OptionString(this, "lastServer", "");
+	public OptionString skin = new OptionString(this, "skin", "Default");
+	public OptionString selectedController = new OptionString(this, "selectedController", "");
+    public OptionString language = new OptionString(this, "language", "en_US");
 	
-	public RangeOption mipmapLevels = new RangeOption(this, "mipmapLevels", 0, 5);
-	public EnumOption<MipmapType> mipmapType = new EnumOption<>(this, "mipmapType", MipmapType.class, MipmapType.SMOOTH);
+	public OptionRange mipmapLevels = new OptionRange(this, "mipmapLevels", 0, 5);
+	public OptionEnum<MipmapType> mipmapType = new OptionEnum<>(this, "mipmapType", MipmapType.class, MipmapType.SMOOTH);
 
-	public BooleanOption fullscreen = new BooleanOption(this, "fullscreen", false);
-	public BooleanOption borderlessFullscreen = new BooleanOption(this, "borderlessFullscreen", true);
-	public BooleanOption startInFullscreen = new BooleanOption(this, "startInFullscreen", true);
-	public EnumOption<TooltipStyle> tooltipStyle = new EnumOption<>(this, "tooltipStyle", TooltipStyle.class);
-	public EnumOption<LightmapStyle> lightmapStyle = new EnumOption<>(this, "lightmapStyle", LightmapStyle.class, LightmapStyle.GRAY);
-	public BooleanOption customLightmap = new BooleanOption(this, "customLightmap", true);
-	public BooleanOption fog = new BooleanOption(this, "fog", true);
-	public BooleanOption hideUndiscoveredItems = new BooleanOption(this, "hideUndiscoveredItems", true);
-	public BooleanOption muteOnLostFocus = new BooleanOption(this, "muteOnLostFocus", false);
-	public BooleanOption aurora = new BooleanOption(this, "aurora", true);
-	public BooleanOption mobVariants = new BooleanOption(this, "mobVariants", true);
-	public EnumOption<Colorblindness> colorblindnessFix = new EnumOption<>(this, "colorblindnessFix", Colorblindness.class, Colorblindness.NONE);
-	public BooleanOption subtitles = new BooleanOption(this, "subtitles", false);
+	public OptionBoolean fullscreen = new OptionBoolean(this, "fullscreen", false);
+	public OptionBoolean borderlessFullscreen = new OptionBoolean(this, "borderlessFullscreen", true);
+	public OptionBoolean startInFullscreen = new OptionBoolean(this, "startInFullscreen", true);
+	public OptionEnum<TooltipStyle> tooltipStyle = new OptionEnum<>(this, "tooltipStyle", TooltipStyle.class);
+	public OptionEnum<LightmapStyle> lightmapStyle = new OptionEnum<>(this, "lightmapStyle", LightmapStyle.class, LightmapStyle.GRAY);
+	public OptionBoolean customLightmap = new OptionBoolean(this, "customLightmap", true);
+	public OptionBoolean fog = new OptionBoolean(this, "fog", true);
+	public OptionBoolean hideUndiscoveredItems = new OptionBoolean(this, "hideUndiscoveredItems", true);
+	public OptionBoolean muteOnLostFocus = new OptionBoolean(this, "muteOnLostFocus", false);
+	public OptionBoolean aurora = new OptionBoolean(this, "aurora", true);
+	public OptionBoolean mobVariants = new OptionBoolean(this, "mobVariants", true);
+	public OptionEnum<Colorblindness> colorblindnessFix = new OptionEnum<>(this, "colorblindnessFix", Colorblindness.class, Colorblindness.NONE);
+	public OptionBoolean subtitles = new OptionBoolean(this, "subtitles", false);
 
 	public KeyBinding keyAttack = new KeyBinding("key.attack").setDefault(InputDevice.mouse, 0);
 	public KeyBinding keyInteract = new KeyBinding("key.interact").setDefault(InputDevice.mouse, 1);
@@ -277,9 +277,9 @@ public class GameSettings {
 	public String getDisplayString(Option<?> option) {
 		if (option == null) return "";
 		I18n trans = I18n.getInstance();
-		if (option instanceof FloatOption) {
-			FloatOption floatOption = (FloatOption) option;
-			float value = floatOption.value;
+		if (option instanceof OptionFloat) {
+			OptionFloat optionFloat = (OptionFloat) option;
+			float value = optionFloat.value;
 			if (option == brightness) {
 				int percent = (int)(value * 200.0f);
 				if (percent == 0) {
@@ -385,7 +385,7 @@ public class GameSettings {
 				return trans.translateKey("options.bloom.high");
 			}
 		}
-		if (option instanceof BooleanOption) {
+		if (option instanceof OptionBoolean) {
 			Boolean flag = (Boolean) option.value;
 			if (flag) {
 				return trans.translateKey("options.on");
@@ -393,20 +393,20 @@ public class GameSettings {
 				return trans.translateKey("options.off");
 			}
 		}
-		if(option instanceof EnumOption<?>) {
-			EnumOption<?> enumOption = (EnumOption<?>) option;
+		if(option instanceof OptionEnum<?>) {
+			OptionEnum<?> optionEnum = (OptionEnum<?>) option;
 			
 			String key;
 			
-			if(enumOption.value instanceof ITranslatable) {
-				ITranslatable translatable = (ITranslatable) enumOption.value;
+			if(optionEnum.value instanceof ITranslatable) {
+				ITranslatable translatable = (ITranslatable) optionEnum.value;
 				
 				key = translatable.getTranslationKey();
 			}else {
-				key = enumOption.value.toString().toLowerCase();
+				key = optionEnum.value.toString().toLowerCase();
 			}
 			
-			return trans.translateKey("options." + enumOption.name+"." + key);
+			return trans.translateKey("options." + optionEnum.name+"." + key);
 		}
 		return option.value.toString();
 	}
diff --git a/src/main/java/net/minecraft/client/option/BooleanOption.java b/src/main/java/net/minecraft/client/option/OptionBoolean.java
similarity index 78%
rename from src/main/java/net/minecraft/client/option/BooleanOption.java
rename to src/main/java/net/minecraft/client/option/OptionBoolean.java
index 096f4ab4c..cf9d3ec47 100644
--- a/src/main/java/net/minecraft/client/option/BooleanOption.java
+++ b/src/main/java/net/minecraft/client/option/OptionBoolean.java
@@ -2,11 +2,11 @@ package net.minecraft.client.option;
 
 import net.minecraft.core.util.helper.Toggleable;
 
-public class BooleanOption extends ToggleableOption<Boolean> implements Toggleable{
+public class OptionBoolean extends OptionToggleable<Boolean> implements Toggleable{
 	
 	public static final Boolean[] values = new Boolean[] {false, true};
 	
-	public BooleanOption(GameSettings gameSettings, String name, boolean value) {
+	public OptionBoolean(GameSettings gameSettings, String name, boolean value) {
 		super(gameSettings, name, value, values);
 	}
 	
diff --git a/src/main/java/net/minecraft/client/option/ColorOption.java b/src/main/java/net/minecraft/client/option/OptionColor.java
similarity index 83%
rename from src/main/java/net/minecraft/client/option/ColorOption.java
rename to src/main/java/net/minecraft/client/option/OptionColor.java
index 82c686dff..7ed3abb37 100644
--- a/src/main/java/net/minecraft/client/option/ColorOption.java
+++ b/src/main/java/net/minecraft/client/option/OptionColor.java
@@ -4,9 +4,9 @@ import com.mojang.logging.LogUtils;
 import net.minecraft.core.util.helper.Color;
 import org.slf4j.Logger;
 
-public class ColorOption extends Option<Color>{
+public class OptionColor extends Option<Color>{
 	private static final Logger LOGGER = LogUtils.getLogger();
-	public ColorOption(GameSettings gameSettings, String name, Color defaultValue) {
+	public OptionColor(GameSettings gameSettings, String name, Color defaultValue) {
 		super(gameSettings, name, defaultValue);
 	}
 
diff --git a/src/main/java/net/minecraft/client/option/EnumOption.java b/src/main/java/net/minecraft/client/option/OptionEnum.java
similarity index 67%
rename from src/main/java/net/minecraft/client/option/EnumOption.java
rename to src/main/java/net/minecraft/client/option/OptionEnum.java
index e7a686b6e..765155ba0 100644
--- a/src/main/java/net/minecraft/client/option/EnumOption.java
+++ b/src/main/java/net/minecraft/client/option/OptionEnum.java
@@ -2,15 +2,15 @@ package net.minecraft.client.option;
 
 import net.minecraft.core.util.helper.Toggleable;
 
-public class EnumOption<E extends Enum<?>> extends ToggleableOption<E> implements Toggleable{
+public class OptionEnum<E extends Enum<?>> extends OptionToggleable<E> implements Toggleable{
 	
 	private boolean isSlider;
 	
-	public EnumOption(GameSettings gameSettings, String name, Class<E> clazz) {
+	public OptionEnum(GameSettings gameSettings, String name, Class<E> clazz) {
 		this(gameSettings, name, clazz, clazz.getEnumConstants()[0]);
 	}
 
-	public EnumOption(GameSettings gameSettings, String name, Class<E> clazz, E defaultValue) {
+	public OptionEnum(GameSettings gameSettings, String name, Class<E> clazz, E defaultValue) {
 		super(gameSettings, name, defaultValue, clazz.getEnumConstants());
 	}
 
@@ -23,7 +23,7 @@ public class EnumOption<E extends Enum<?>> extends ToggleableOption<E> implement
 		}
 	}
 
-	public EnumOption<E> setIsSlider(boolean isSlider) {
+	public OptionEnum<E> setIsSlider(boolean isSlider) {
 		this.isSlider = isSlider;
 		return this;
 	}
diff --git a/src/main/java/net/minecraft/client/option/FloatOption.java b/src/main/java/net/minecraft/client/option/OptionFloat.java
similarity index 77%
rename from src/main/java/net/minecraft/client/option/FloatOption.java
rename to src/main/java/net/minecraft/client/option/OptionFloat.java
index 3eca33be7..588f87589 100644
--- a/src/main/java/net/minecraft/client/option/FloatOption.java
+++ b/src/main/java/net/minecraft/client/option/OptionFloat.java
@@ -1,8 +1,8 @@
 package net.minecraft.client.option;
 
-public class FloatOption extends Option<Float>{
+public class OptionFloat extends Option<Float>{
 
-	public FloatOption(GameSettings gameSettings, String name, float value) {
+	public OptionFloat(GameSettings gameSettings, String name, float value) {
 		super(gameSettings, name, value);
 	}
 	
diff --git a/src/main/java/net/minecraft/client/option/ImmersiveModeOption.java b/src/main/java/net/minecraft/client/option/OptionImmersiveMode.java
similarity index 83%
rename from src/main/java/net/minecraft/client/option/ImmersiveModeOption.java
rename to src/main/java/net/minecraft/client/option/OptionImmersiveMode.java
index 36339e3c5..23034b3a9 100644
--- a/src/main/java/net/minecraft/client/option/ImmersiveModeOption.java
+++ b/src/main/java/net/minecraft/client/option/OptionImmersiveMode.java
@@ -1,8 +1,8 @@
 package net.minecraft.client.option;
 
-public class ImmersiveModeOption extends IntegerOption{
+public class OptionImmersiveMode extends OptionInteger {
 
-	public ImmersiveModeOption(GameSettings gameSettings) {
+	public OptionImmersiveMode(GameSettings gameSettings) {
 		super(gameSettings, "immersiveMode", 0);
 	}
 	
diff --git a/src/main/java/net/minecraft/client/option/IntegerOption.java b/src/main/java/net/minecraft/client/option/OptionInteger.java
similarity index 63%
rename from src/main/java/net/minecraft/client/option/IntegerOption.java
rename to src/main/java/net/minecraft/client/option/OptionInteger.java
index b07571134..20c8d2df2 100644
--- a/src/main/java/net/minecraft/client/option/IntegerOption.java
+++ b/src/main/java/net/minecraft/client/option/OptionInteger.java
@@ -1,8 +1,8 @@
 package net.minecraft.client.option;
 
-public class IntegerOption extends Option<Integer>{
+public class OptionInteger extends Option<Integer>{
 
-	public IntegerOption(GameSettings gameSettings, String name, int defaultValue) {
+	public OptionInteger(GameSettings gameSettings, String name, int defaultValue) {
 		super(gameSettings, name, defaultValue);
 	}
 
diff --git a/src/main/java/net/minecraft/client/option/RangeOption.java b/src/main/java/net/minecraft/client/option/OptionRange.java
similarity index 84%
rename from src/main/java/net/minecraft/client/option/RangeOption.java
rename to src/main/java/net/minecraft/client/option/OptionRange.java
index fca1fa9de..0ef3a71a3 100644
--- a/src/main/java/net/minecraft/client/option/RangeOption.java
+++ b/src/main/java/net/minecraft/client/option/OptionRange.java
@@ -1,14 +1,14 @@
 package net.minecraft.client.option;
 
-public class RangeOption extends ToggleableOption<Integer>{
+public class OptionRange extends OptionToggleable<Integer> {
 	public final int highest;
 	public final int lowest;
-    public RangeOption(GameSettings gameSettings, String name, int defaultValue, int values) {
+    public OptionRange(GameSettings gameSettings, String name, int defaultValue, int values) {
         super(gameSettings, name, defaultValue, getValueArray(values));
 		highest = this.values[this.values.length - 1];
 		lowest = this.values[0];
     }
-	public RangeOption(GameSettings gameSettings, String name, int defaultValue, int lowest, int highest) {
+	public OptionRange(GameSettings gameSettings, String name, int defaultValue, int lowest, int highest) {
 		super(gameSettings, name, defaultValue, getValueArray(lowest, highest));
 		this.highest = this.values[this.values.length - 1];
 		this.lowest = this.values[0];
diff --git a/src/main/java/net/minecraft/client/option/StringOption.java b/src/main/java/net/minecraft/client/option/OptionString.java
similarity index 61%
rename from src/main/java/net/minecraft/client/option/StringOption.java
rename to src/main/java/net/minecraft/client/option/OptionString.java
index 0f01bfcf8..422af38c1 100644
--- a/src/main/java/net/minecraft/client/option/StringOption.java
+++ b/src/main/java/net/minecraft/client/option/OptionString.java
@@ -1,8 +1,8 @@
 package net.minecraft.client.option;
 
-public class StringOption extends Option<String>{
+public class OptionString extends Option<String>{
 
-	public StringOption(GameSettings gameSettings, String name, String defaultValue) {
+	public OptionString(GameSettings gameSettings, String name, String defaultValue) {
 		super(gameSettings, name, defaultValue);
 	}
 
diff --git a/src/main/java/net/minecraft/client/option/ToggleableOption.java b/src/main/java/net/minecraft/client/option/OptionToggleable.java
similarity index 86%
rename from src/main/java/net/minecraft/client/option/ToggleableOption.java
rename to src/main/java/net/minecraft/client/option/OptionToggleable.java
index dd3ee910d..40a12da61 100644
--- a/src/main/java/net/minecraft/client/option/ToggleableOption.java
+++ b/src/main/java/net/minecraft/client/option/OptionToggleable.java
@@ -3,11 +3,11 @@ package net.minecraft.client.option;
 import net.minecraft.client.render.dynamictexture.DynamicTexture;
 import net.minecraft.core.util.helper.Toggleable;
 
-public abstract class ToggleableOption<E> extends Option<E> implements Toggleable{
+public abstract class OptionToggleable<E> extends Option<E> implements Toggleable{
 
 	public E[] values;
 	
-	public ToggleableOption(GameSettings gameSettings, String name, E defaultValue, E[] values) {
+	public OptionToggleable(GameSettings gameSettings, String name, E defaultValue, E[] values) {
 		super(gameSettings, name, defaultValue);
 		
 		this.values = values;
diff --git a/src/main/java/net/minecraft/client/option/VolumeOption.java b/src/main/java/net/minecraft/client/option/OptionVolume.java
similarity index 87%
rename from src/main/java/net/minecraft/client/option/VolumeOption.java
rename to src/main/java/net/minecraft/client/option/OptionVolume.java
index 91bb91d0e..9bfb1b8d0 100644
--- a/src/main/java/net/minecraft/client/option/VolumeOption.java
+++ b/src/main/java/net/minecraft/client/option/OptionVolume.java
@@ -3,14 +3,13 @@ package net.minecraft.client.option;
 import net.minecraft.client.sound.SoundCategoryHelper;
 import net.minecraft.client.sound.SoundEngine;
 import net.minecraft.core.sound.SoundCategory;
-import org.jetbrains.annotations.NotNull;
 import paulscode.sound.SoundSystem;
 
-public class VolumeOption extends FloatOption{
+public class OptionVolume extends OptionFloat {
 	public final SoundCategory soundCategory;
 
 	//do *not* add @NotNull to gameSettings here, breaks modding for some abstract reason
-	public VolumeOption(GameSettings gameSettings, String name, float value, SoundCategory soundCategory) {
+	public OptionVolume(GameSettings gameSettings, String name, float value, SoundCategory soundCategory) {
 		super(gameSettings, name, value);
 		this.soundCategory = soundCategory;
 	}
diff --git a/src/main/java/net/minecraft/client/player/controller/PlayerController.java b/src/main/java/net/minecraft/client/player/controller/PlayerController.java
index 0f19816c7..9ccb98a30 100644
--- a/src/main/java/net/minecraft/client/player/controller/PlayerController.java
+++ b/src/main/java/net/minecraft/client/player/controller/PlayerController.java
@@ -1,10 +1,10 @@
 package net.minecraft.client.player.controller;
 
 import net.minecraft.client.Minecraft;
-import net.minecraft.client.entity.player.LocalPlayer;
+import net.minecraft.client.entity.player.PlayerLocal;
 import net.minecraft.core.InventoryAction;
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.entity.Entity;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.enums.ArtType;
@@ -202,11 +202,11 @@ public abstract class PlayerController {
 
 	public void render(float f) {
 		if (currentDamage <= 0.0F) {
-			mc.ingameHud.damageGuiPartialTime = 0.0F;
+			mc.hudIngame.damageGuiPartialTime = 0.0F;
 			mc.renderGlobal.damagePartialTime = 0.0F;
 		} else {
 			float f1 = previousDamage + (currentDamage - previousDamage) * f;
-			mc.ingameHud.damageGuiPartialTime = f1;
+			mc.hudIngame.damageGuiPartialTime = f1;
 			mc.renderGlobal.damagePartialTime = f1;
 		}
 	}
@@ -258,9 +258,9 @@ public abstract class PlayerController {
 		int blockId = world.getBlockId(blockX, blockY, blockZ);
 		if (player.getHeldObject() == null) {
 			if (player.isSneaking() && itemstack == null) { // If crouched and hand empty try to pickup block entity
-				BlockEntity blockEntity = world.getBlockEntity(blockX, blockY, blockZ);
-				if (blockEntity != null && blockEntity.canBeCarried(world, player)) {
-					player.setHeldObject(blockEntity.pickup(world, player));
+				TileEntity tileEntity = world.getBlockEntity(blockX, blockY, blockZ);
+				if (tileEntity != null && tileEntity.canBeCarried(world, player)) {
+					player.setHeldObject(tileEntity.pickup(world, player));
 					return true;
 				}
 			}
@@ -290,7 +290,7 @@ public abstract class PlayerController {
 	}
 
 	public Player createPlayer(World world) {
-		return new LocalPlayer(mc, world, mc.session, world.dimension.id);
+		return new PlayerLocal(mc, world, mc.session, world.dimension.id);
 	}
 
 	public boolean interact(Player player, Entity entity) {
diff --git a/src/main/java/net/minecraft/client/player/controller/PlayerControllerMP.java b/src/main/java/net/minecraft/client/player/controller/PlayerControllerMP.java
index bc8500f4c..3c7ced0d4 100644
--- a/src/main/java/net/minecraft/client/player/controller/PlayerControllerMP.java
+++ b/src/main/java/net/minecraft/client/player/controller/PlayerControllerMP.java
@@ -1,8 +1,8 @@
 package net.minecraft.client.player.controller;
 
 import net.minecraft.client.Minecraft;
-import net.minecraft.client.entity.player.MultiplayerLocalPlayer;
-import net.minecraft.client.net.handler.ClientPacketHandler;
+import net.minecraft.client.entity.player.PlayerLocalMultiplayer;
+import net.minecraft.client.net.handler.PacketHandlerClient;
 import net.minecraft.core.InventoryAction;
 import net.minecraft.core.entity.Entity;
 import net.minecraft.core.entity.player.Player;
@@ -15,10 +15,10 @@ import net.minecraft.core.world.World;
 
 public class PlayerControllerMP extends PlayerController {
 
-	protected ClientPacketHandler netHandler;
+	protected PacketHandlerClient netHandler;
 	protected int currentItem;
 
-	public PlayerControllerMP(Minecraft minecraft, ClientPacketHandler netHandler) {
+	public PlayerControllerMP(Minecraft minecraft, PacketHandlerClient netHandler) {
 		super(minecraft);
 		
 		this.netHandler = netHandler;
@@ -81,7 +81,7 @@ public class PlayerControllerMP extends PlayerController {
 
 	@Override
 	public Player createPlayer(World world) {
-		return new MultiplayerLocalPlayer(mc, world, mc.session, netHandler);
+		return new PlayerLocalMultiplayer(mc, world, mc.session, netHandler);
 	}
 
 	@Override
diff --git a/src/main/java/net/minecraft/client/player/controller/PlayerControllerSP.java b/src/main/java/net/minecraft/client/player/controller/PlayerControllerSP.java
index d4307c23b..916f30673 100644
--- a/src/main/java/net/minecraft/client/player/controller/PlayerControllerSP.java
+++ b/src/main/java/net/minecraft/client/player/controller/PlayerControllerSP.java
@@ -2,7 +2,7 @@ package net.minecraft.client.player.controller;
 
 import net.minecraft.client.Minecraft;
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.util.helper.Side;
@@ -18,7 +18,7 @@ public class PlayerControllerSP extends PlayerController {
 		if (!player.getGamemode().canInteract() || mc.thePlayer.getHeldObject() != null) return false;
 		int id = mc.theWorld.getBlockId(x, y, z);
 		int meta = mc.theWorld.getBlockMetadata(x, y, z);
-		BlockEntity blockEntity = mc.theWorld.getBlockEntity(x, y, z);
+		TileEntity tileEntity = mc.theWorld.getBlockEntity(x, y, z);
 		boolean removed = super.destroyBlock(x, y, z, side, player);
 		ItemStack item = mc.thePlayer.getCurrentEquippedItem();
 
@@ -26,7 +26,7 @@ public class PlayerControllerSP extends PlayerController {
 			item.onDestroyBlock(mc.theWorld, id, x, y, z, side, mc.thePlayer);
 		}
 		if (removed && mc.thePlayer.getGamemode().dropBlockOnBreak()) {
-			Block.blocksList[id].harvestBlock(mc.theWorld, mc.thePlayer, x, y, z, meta, blockEntity);
+			Block.blocksList[id].harvestBlock(mc.theWorld, mc.thePlayer, x, y, z, meta, tileEntity);
 		}
 
 		if (item != null && item.stackSize <= 0)
diff --git a/src/main/java/net/minecraft/client/render/BlockEntityRenderDispatcher.java b/src/main/java/net/minecraft/client/render/BlockEntityRenderDispatcher.java
index 37963ef6e..01789de76 100644
--- a/src/main/java/net/minecraft/client/render/BlockEntityRenderDispatcher.java
+++ b/src/main/java/net/minecraft/client/render/BlockEntityRenderDispatcher.java
@@ -7,7 +7,7 @@ import net.minecraft.client.render.tessellator.Tessellator;
 import net.minecraft.client.render.blockentity.*;
 import net.minecraft.core.Global;
 import net.minecraft.core.block.entity.*;
-import net.minecraft.core.block.piston.MovingPistonBlockEntity;
+import net.minecraft.core.block.piston.TileEntityMovingPistonBlock;
 import net.minecraft.core.world.World;
 import org.lwjgl.opengl.GL11;
 
@@ -17,33 +17,33 @@ public class BlockEntityRenderDispatcher
     private BlockEntityRenderDispatcher()
     {
         renderers = new HashMap<>();
-        renderers.put(SignBlockEntity.class, new SignBlockEntityRenderer());
-        renderers.put(FlagBlockEntity.class, new FlagBlockEntityRenderer());
-        renderers.put(MobSpawnerBlockEntity.class, new MobSpawnerBlockEntityRenderer());
-        renderers.put(MovingPistonBlockEntity.class, new PistonBlockEntityRenderer());
-        renderers.put(FlowerJarBlockEntity.class, new FlowerJarBlockEntityRenderer());
-        renderers.put(GoldMeshBlockEntity.class, new MeshBlockEntityRenderer());
-
-        for (BlockEntityRenderer<?> blockEntityRenderer : renderers.values())
+        renderers.put(TileEntitySign.class, new TileEntityRendererSign());
+        renderers.put(TileEntityFlag.class, new TileEntityRendererFlag());
+        renderers.put(TileEntityMobSpawner.class, new TileEntityRendererMobSpawner());
+        renderers.put(TileEntityMovingPistonBlock.class, new TileEntityRendererMovingPiston());
+        renderers.put(TileEntityFlowerJar.class, new TileEntityRendererFlowerJar());
+        renderers.put(TileEntityMeshGold.class, new TileEntityRendererMeshGold());
+
+        for (TileEntityRenderer<?> tileEntityRenderer : renderers.values())
         {
-            blockEntityRenderer.setRenderDispatcher(this);
+            tileEntityRenderer.setRenderDispatcher(this);
         }
 
     }
 
     @SuppressWarnings("unchecked") // trust me this is safe, Notch did it first
-    public <T extends BlockEntity> BlockEntityRenderer<T> getRenderer(Class<? extends BlockEntity> e)
+    public <T extends TileEntity> TileEntityRenderer<T> getRenderer(Class<? extends TileEntity> e)
     {
-        BlockEntityRenderer<? extends BlockEntity> r = renderers.get(e);
-        if(r == null && e != BlockEntity.class)
+        TileEntityRenderer<? extends TileEntity> r = renderers.get(e);
+        if(r == null && e != TileEntity.class)
         {
-            r = getRenderer((Class<? extends BlockEntity>) e.getSuperclass());
+            r = getRenderer((Class<? extends TileEntity>) e.getSuperclass());
             renderers.put(e, r);
         }
-        return (BlockEntityRenderer<T>) r;
+        return (TileEntityRenderer<T>) r;
     }
 
-    public <T extends BlockEntity> BlockEntityRenderer<T> getRenderer(T tileEntity)
+    public <T extends TileEntity> TileEntityRenderer<T> getRenderer(T tileEntity)
     {
         if(tileEntity == null)
         {
@@ -55,7 +55,7 @@ public class BlockEntityRenderDispatcher
         }
     }
 
-    public <T extends BlockEntity> boolean hasRenderer(T tileEntity)
+    public <T extends TileEntity> boolean hasRenderer(T tileEntity)
     {
         return getRenderer(tileEntity) != null;
     }
@@ -76,7 +76,7 @@ public class BlockEntityRenderDispatcher
         viewLerpPosZ = (float) camera.getZ(partialTick);
     }
 
-    public <T extends BlockEntity> void renderTileEntity(Tessellator tessellator, T tileEntity, float partialTick)
+    public <T extends TileEntity> void renderTileEntity(Tessellator tessellator, T tileEntity, float partialTick)
     {
         if(tileEntity.getDistanceFrom(viewLerpPosX, viewLerpPosY, viewLerpPosZ) < 4096D)
         {
@@ -97,9 +97,9 @@ public class BlockEntityRenderDispatcher
         }
     }
 
-    public <T extends BlockEntity> void renderTileEntity(Tessellator tessellator, T tileEntity, double x, double y, double z, float partialTick)
+    public <T extends TileEntity> void renderTileEntity(Tessellator tessellator, T tileEntity, double x, double y, double z, float partialTick)
     {
-        BlockEntityRenderer<T> renderer = getRenderer(tileEntity);
+        TileEntityRenderer<T> renderer = getRenderer(tileEntity);
         if(renderer != null)
         {
             renderer.doRender(tessellator, tileEntity, x, y, z, partialTick);
@@ -109,7 +109,7 @@ public class BlockEntityRenderDispatcher
     public void updateRendererWorldCache(World world)
     {
         worldObj = world;
-        for (BlockEntityRenderer<?> renderer : renderers.values())
+        for (TileEntityRenderer<?> renderer : renderers.values())
         {
             if (renderer != null)
             {
@@ -123,7 +123,7 @@ public class BlockEntityRenderDispatcher
         return font;
     }
 
-    private final Map<Class<?>, BlockEntityRenderer<?>> renderers;
+    private final Map<Class<?>, TileEntityRenderer<?>> renderers;
     public static BlockEntityRenderDispatcher instance = new BlockEntityRenderDispatcher();
     private Font font;
     public static double renderPosX;
diff --git a/src/main/java/net/minecraft/client/render/EntityRenderDispatcher.java b/src/main/java/net/minecraft/client/render/EntityRenderDispatcher.java
index 8483bf786..bffcb24ef 100644
--- a/src/main/java/net/minecraft/client/render/EntityRenderDispatcher.java
+++ b/src/main/java/net/minecraft/client/render/EntityRenderDispatcher.java
@@ -3,89 +3,89 @@ package net.minecraft.client.render;
 import java.util.HashMap;
 import java.util.Map;
 
-import net.minecraft.client.render.model.BipedModel;
-import net.minecraft.client.render.model.ChickenModel;
-import net.minecraft.client.render.model.CowModel;
-import net.minecraft.client.render.model.SheepModel;
-import net.minecraft.client.render.model.SkeletonModel;
-import net.minecraft.client.render.model.SquidModel;
-import net.minecraft.core.entity.LightningEntity;
+import net.minecraft.client.render.model.ModelBiped;
+import net.minecraft.client.render.model.ModelChicken;
+import net.minecraft.client.render.model.ModelCow;
+import net.minecraft.client.render.model.ModelSheep;
+import net.minecraft.client.render.model.ModelSkeleton;
+import net.minecraft.client.render.model.ModelSquid;
+import net.minecraft.client.render.model.ModelZombie;
+import net.minecraft.core.entity.EntityItem;
+import net.minecraft.core.entity.EntityLightning;
+import net.minecraft.core.entity.EntityPainting;
 import net.minecraft.core.entity.Mob;
-import net.minecraft.core.entity.animal.FireflyClusterMob;
-import net.minecraft.core.entity.animal.SquidMob;
-import net.minecraft.core.entity.monster.CreeperMob;
-import net.minecraft.core.entity.monster.SkeletonMob;
-import net.minecraft.core.entity.monster.SlimeMob;
-import net.minecraft.core.entity.monster.ZombieArmoredMob;
-import net.minecraft.core.entity.projectile.CannonballProjectile;
-import net.minecraft.core.entity.projectile.EggProjectile;
-import net.minecraft.core.entity.projectile.SnowballProjectile;
+import net.minecraft.core.entity.animal.MobChicken;
+import net.minecraft.core.entity.animal.MobFireflyCluster;
+import net.minecraft.core.entity.animal.MobWolf;
+import net.minecraft.core.entity.animal.MobSquid;
+import net.minecraft.core.entity.monster.MobCreeper;
+import net.minecraft.core.entity.monster.MobSkeleton;
+import net.minecraft.core.entity.monster.MobSlime;
+import net.minecraft.core.entity.monster.MobZombie;
+import net.minecraft.core.entity.monster.MobZombieArmored;
+import net.minecraft.core.entity.projectile.ProjectileCannonball;
+import net.minecraft.core.entity.projectile.ProjectileEgg;
+import net.minecraft.core.entity.projectile.ProjectileFireball;
+import net.minecraft.core.entity.projectile.ProjectileSnowball;
 import net.minecraft.core.entity.vehicle.BoatEntity;
 import net.minecraft.core.item.Items;
 import org.lwjgl.opengl.GL11;
 import net.minecraft.client.option.GameSettings;
 import net.minecraft.client.render.camera.ICamera;
-import net.minecraft.client.render.entity.ArmoredZombieRenderer;
-import net.minecraft.client.render.entity.ArrowRenderer;
-import net.minecraft.client.render.entity.BoatRenderer;
-import net.minecraft.client.render.entity.FishingBobberRenderer;
-import net.minecraft.client.render.entity.CannonballRenderer;
-import net.minecraft.client.render.entity.ChickenRenderer;
-import net.minecraft.client.render.entity.CowRenderer;
-import net.minecraft.client.render.entity.CreeperRenderer;
-import net.minecraft.client.render.entity.DefaultRenderer;
+import net.minecraft.client.render.entity.MobRendererZombieArmored;
+import net.minecraft.client.render.entity.EntityRendererArrow;
+import net.minecraft.client.render.entity.EntityRendererBoat;
+import net.minecraft.client.render.entity.EntityRendererFishingBobber;
+import net.minecraft.client.render.entity.EntityRendererCannonball;
+import net.minecraft.client.render.entity.MobRendererChicken;
+import net.minecraft.client.render.entity.MobRendererCow;
+import net.minecraft.client.render.entity.MobRendererCreeper;
+import net.minecraft.client.render.entity.EntityRendererDefault;
 import net.minecraft.client.render.entity.EntityRenderer;
-import net.minecraft.client.render.entity.FallingBlockRenderer;
-import net.minecraft.client.render.entity.FireflyRenderer;
-import net.minecraft.client.render.entity.GhastRenderer;
-import net.minecraft.client.render.entity.GiantRenderer;
-import net.minecraft.client.render.entity.ItemEntityRenderer;
-import net.minecraft.client.render.entity.LightningBoltRenderer;
+import net.minecraft.client.render.entity.EntityRendererFallingBlock;
+import net.minecraft.client.render.entity.MobRendererFireflyCluster;
+import net.minecraft.client.render.entity.MobRendererGhast;
+import net.minecraft.client.render.entity.MobRendererGiant;
+import net.minecraft.client.render.entity.EntityRendererItem;
+import net.minecraft.client.render.entity.EntityRendererLightningBolt;
 import net.minecraft.client.render.entity.MobRenderer;
-import net.minecraft.client.render.entity.MinecartRenderer;
-import net.minecraft.client.render.entity.BipedRenderer;
-import net.minecraft.client.render.entity.HumanRenderer;
-import net.minecraft.client.render.entity.PaintingRenderer;
-import net.minecraft.client.render.entity.PigRenderer;
-import net.minecraft.client.render.entity.PlayerRenderer;
-import net.minecraft.client.render.entity.ScorpionRenderer;
-import net.minecraft.client.render.entity.SheepRenderer;
-import net.minecraft.client.render.entity.SlimeRenderer;
-import net.minecraft.client.render.entity.SpriteRenderer;
-import net.minecraft.client.render.entity.SpiderRenderer;
-import net.minecraft.client.render.entity.SquidRenderer;
-import net.minecraft.client.render.entity.TNTRenderer;
-import net.minecraft.client.render.entity.WolfRenderer;
-import net.minecraft.client.render.model.PigModel;
-import net.minecraft.client.render.model.SheepOverlayModel;
-import net.minecraft.client.render.model.SheepWoolModel;
-import net.minecraft.client.render.model.SlimeModel;
-import net.minecraft.client.render.model.WolfModel;
-import net.minecraft.client.render.model.ZombieModel;
+import net.minecraft.client.render.entity.EntityRendererMinecart;
+import net.minecraft.client.render.entity.MobRendererBiped;
+import net.minecraft.client.render.entity.MobRendererHuman;
+import net.minecraft.client.render.entity.EntityRendererPainting;
+import net.minecraft.client.render.entity.MobRendererPig;
+import net.minecraft.client.render.entity.MobRendererPlayer;
+import net.minecraft.client.render.entity.MobRendererScorpion;
+import net.minecraft.client.render.entity.MobRendererSheep;
+import net.minecraft.client.render.entity.MobRendererSlime;
+import net.minecraft.client.render.entity.EntityRendererSprite;
+import net.minecraft.client.render.entity.MobRendererSpider;
+import net.minecraft.client.render.entity.MobRendererSquid;
+import net.minecraft.client.render.entity.EntityRendererTNT;
+import net.minecraft.client.render.entity.MobRendererWolf;
+import net.minecraft.client.render.model.ModelPig;
+import net.minecraft.client.render.model.ModelSheepOverlay;
+import net.minecraft.client.render.model.ModelSheepWool;
+import net.minecraft.client.render.model.ModelSlime;
+import net.minecraft.client.render.model.ModelWolf;
 import net.minecraft.client.render.tessellator.Tessellator;
 import net.minecraft.core.Global;
 import net.minecraft.core.entity.Entity;
-import net.minecraft.core.entity.FishingBobberEntity;
-import net.minecraft.core.entity.FallingBlockEntity;
-import net.minecraft.core.entity.ItemEntity;
-import net.minecraft.core.entity.PaintingEntity;
-import net.minecraft.core.entity.TNTPrimedEntity;
-import net.minecraft.core.entity.animal.ChickenMob;
-import net.minecraft.core.entity.animal.CowMob;
-import net.minecraft.core.entity.animal.PigMob;
-import net.minecraft.core.entity.animal.SheepMob;
-import net.minecraft.core.entity.animal.WolfMob;
-import net.minecraft.core.entity.monster.GhastMob;
-import net.minecraft.core.entity.monster.GiantMob;
-import net.minecraft.core.entity.monster.HumanMob;
-import net.minecraft.core.entity.monster.ScorpionMob;
-import net.minecraft.core.entity.monster.SnowmanMob;
-import net.minecraft.core.entity.monster.SpiderMob;
-import net.minecraft.core.entity.monster.ZombieMob;
+import net.minecraft.core.entity.EntityFishingBobber;
+import net.minecraft.core.entity.EntityFallingBlock;
+import net.minecraft.core.entity.EntityPrimedTNT;
+import net.minecraft.core.entity.animal.MobCow;
+import net.minecraft.core.entity.animal.MobPig;
+import net.minecraft.core.entity.animal.MobSheep;
+import net.minecraft.core.entity.monster.MobGhast;
+import net.minecraft.core.entity.monster.MobGiant;
+import net.minecraft.core.entity.monster.MobHuman;
+import net.minecraft.core.entity.monster.MobScorpion;
+import net.minecraft.core.entity.monster.MobSnowman;
+import net.minecraft.core.entity.monster.MobSpider;
 import net.minecraft.core.entity.player.Player;
-import net.minecraft.core.entity.projectile.ArrowProjectile;
-import net.minecraft.core.entity.projectile.FireballProjectile;
-import net.minecraft.core.entity.projectile.PebbleProjectile;
+import net.minecraft.core.entity.projectile.ProjectileArrow;
+import net.minecraft.core.entity.projectile.ProjectilePebble;
 import net.minecraft.core.entity.vehicle.MinecartEntity;
 import net.minecraft.core.world.World;
 
@@ -94,41 +94,41 @@ public class EntityRenderDispatcher
     private EntityRenderDispatcher()
     {
         renderers = new HashMap<>();
-        renderers.put(SpiderMob.class, new SpiderRenderer());
-        renderers.put(ScorpionMob.class, new ScorpionRenderer());
-        renderers.put(PigMob.class, new PigRenderer(new PigModel(), new PigModel(0.5F), 0.7F));
-        renderers.put(SheepMob.class, new SheepRenderer(new SheepModel(), new SheepWoolModel(), new SheepOverlayModel(), 0.7F));
-        renderers.put(CowMob.class, new CowRenderer(new CowModel(), 0.7F));
-        renderers.put(WolfMob.class, new WolfRenderer(new WolfModel(0.0f), 0.5F));
-        renderers.put(ChickenMob.class, new ChickenRenderer(new ChickenModel(), 0.3F));
-        renderers.put(CreeperMob.class, new CreeperRenderer());
-        renderers.put(SkeletonMob.class, new BipedRenderer<>(new SkeletonModel(), 0.5F));
-        renderers.put(ZombieMob.class, new BipedRenderer<>(new ZombieModel(), 0.5F));
-        renderers.put(SnowmanMob.class, new BipedRenderer<>(new ZombieModel(), 0.5F));
-        renderers.put(ZombieArmoredMob.class, new ArmoredZombieRenderer(new ZombieModel(), 0.5F));
-        renderers.put(SlimeMob.class, new SlimeRenderer(new SlimeModel(16), new SlimeModel(0), 0.25F));
-        renderers.put(Player.class, new PlayerRenderer());
-        renderers.put(HumanMob.class, new HumanRenderer());
-        renderers.put(GiantMob.class, new GiantRenderer(new ZombieModel(), 0.5F, 6F));
-        renderers.put(GhastMob.class, new GhastRenderer());
-        renderers.put(SquidMob.class, new SquidRenderer(new SquidModel(), 0.7F));
-        renderers.put(Mob.class, new MobRenderer<>(new BipedModel(), 0.5F));
-        renderers.put(Entity.class, new DefaultRenderer());
-        renderers.put(PaintingEntity.class, new PaintingRenderer());
-        renderers.put(ArrowProjectile.class, new ArrowRenderer());
-        renderers.put(SnowballProjectile.class, new SpriteRenderer<SnowballProjectile>(Items.AMMO_SNOWBALL));
-        renderers.put(EggProjectile.class, new SpriteRenderer<EggProjectile>(Items.EGG_CHICKEN));
-        renderers.put(FireballProjectile.class, new SpriteRenderer<FireballProjectile>(Items.AMMO_FIREBALL).setScale(4).setFullBright());
-        renderers.put(ItemEntity.class, new ItemEntityRenderer());
-        renderers.put(TNTPrimedEntity.class, new TNTRenderer());
-        renderers.put(FallingBlockEntity.class, new FallingBlockRenderer());
-        renderers.put(MinecartEntity.class, new MinecartRenderer());
-        renderers.put(BoatEntity.class, new BoatRenderer());
-        renderers.put(FishingBobberEntity.class, new FishingBobberRenderer());
-        renderers.put(FireflyClusterMob.class, new FireflyRenderer());
-        renderers.put(LightningEntity.class, new LightningBoltRenderer());
-        renderers.put(CannonballProjectile.class, new CannonballRenderer());
-        renderers.put(PebbleProjectile.class, new SpriteRenderer<PebbleProjectile>(Items.AMMO_PEBBLE));
+        renderers.put(MobSpider.class, new MobRendererSpider());
+        renderers.put(MobScorpion.class, new MobRendererScorpion());
+        renderers.put(MobPig.class, new MobRendererPig(new ModelPig(), new ModelPig(0.5F), 0.7F));
+        renderers.put(MobSheep.class, new MobRendererSheep(new ModelSheep(), new ModelSheepWool(), new ModelSheepOverlay(), 0.7F));
+        renderers.put(MobCow.class, new MobRendererCow(new ModelCow(), 0.7F));
+        renderers.put(MobWolf.class, new MobRendererWolf(new ModelWolf(0.0f), 0.5F));
+        renderers.put(MobChicken.class, new MobRendererChicken(new ModelChicken(), 0.3F));
+        renderers.put(MobCreeper.class, new MobRendererCreeper());
+        renderers.put(MobSkeleton.class, new MobRendererBiped<>(new ModelSkeleton(), 0.5F));
+        renderers.put(MobZombie.class, new MobRendererBiped<>(new ModelZombie(), 0.5F));
+        renderers.put(MobSnowman.class, new MobRendererBiped<>(new ModelZombie(), 0.5F));
+        renderers.put(MobZombieArmored.class, new MobRendererZombieArmored(new ModelZombie(), 0.5F));
+        renderers.put(MobSlime.class, new MobRendererSlime(new ModelSlime(16), new ModelSlime(0), 0.25F));
+        renderers.put(Player.class, new MobRendererPlayer());
+        renderers.put(MobHuman.class, new MobRendererHuman());
+        renderers.put(MobGiant.class, new MobRendererGiant(new ModelZombie(), 0.5F, 6F));
+        renderers.put(MobGhast.class, new MobRendererGhast());
+        renderers.put(MobSquid.class, new MobRendererSquid(new ModelSquid(), 0.7F));
+        renderers.put(Mob.class, new MobRenderer<>(new ModelBiped(), 0.5F));
+        renderers.put(Entity.class, new EntityRendererDefault());
+        renderers.put(EntityPainting.class, new EntityRendererPainting());
+        renderers.put(ProjectileArrow.class, new EntityRendererArrow());
+        renderers.put(ProjectileSnowball.class, new EntityRendererSprite<ProjectileSnowball>(Items.AMMO_SNOWBALL));
+        renderers.put(ProjectileEgg.class, new EntityRendererSprite<ProjectileEgg>(Items.EGG_CHICKEN));
+        renderers.put(ProjectileFireball.class, new EntityRendererSprite<ProjectileFireball>(Items.AMMO_FIREBALL).setScale(4).setFullBright());
+        renderers.put(EntityItem.class, new EntityRendererItem());
+        renderers.put(EntityPrimedTNT.class, new EntityRendererTNT());
+        renderers.put(EntityFallingBlock.class, new EntityRendererFallingBlock());
+        renderers.put(MinecartEntity.class, new EntityRendererMinecart());
+        renderers.put(BoatEntity.class, new EntityRendererBoat());
+        renderers.put(EntityFishingBobber.class, new EntityRendererFishingBobber());
+        renderers.put(MobFireflyCluster.class, new MobRendererFireflyCluster());
+        renderers.put(EntityLightning.class, new EntityRendererLightningBolt());
+        renderers.put(ProjectileCannonball.class, new EntityRendererCannonball());
+        renderers.put(ProjectilePebble.class, new EntityRendererSprite<ProjectilePebble>(Items.AMMO_PEBBLE));
 
 
         for (EntityRenderer<?> renderer : renderers.values())
diff --git a/src/main/java/net/minecraft/client/render/FlagRenderer.java b/src/main/java/net/minecraft/client/render/FlagRenderer.java
index c7cdb60f1..999c3cdc7 100644
--- a/src/main/java/net/minecraft/client/render/FlagRenderer.java
+++ b/src/main/java/net/minecraft/client/render/FlagRenderer.java
@@ -1,8 +1,7 @@
 package net.minecraft.client.render;
 
 import net.minecraft.client.GLAllocation;
-import net.minecraft.client.Minecraft;
-import net.minecraft.core.block.entity.FlagBlockEntity;
+import net.minecraft.core.block.entity.TileEntityFlag;
 import net.minecraft.core.item.Items;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.net.command.TextFormatting;
@@ -11,7 +10,6 @@ import org.jetbrains.annotations.NotNull;
 
 import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Hashtable;
 import java.util.Iterator;
@@ -27,7 +25,7 @@ public class FlagRenderer {
 
     private final List<Integer> freeTextures = new ArrayList<>();
     private final List<FlagTextureEntry> flagTextures = new ArrayList<>();
-    private final Map<FlagBlockEntity, FlagTextureEntry> cache = new Hashtable<>();
+    private final Map<TileEntityFlag, FlagTextureEntry> cache = new Hashtable<>();
     
     public FlagRenderer(TextureManager textureManager)
     {
@@ -39,15 +37,15 @@ public class FlagRenderer {
     public void tick() {
         tickCount++;
         if (tickCount % 100 != 0) return;
-        Iterator<Map.Entry<FlagBlockEntity, FlagTextureEntry>> iterator = cache.entrySet().iterator();
+        Iterator<Map.Entry<TileEntityFlag, FlagTextureEntry>> iterator = cache.entrySet().iterator();
         while (iterator.hasNext()) {
-            Map.Entry<FlagBlockEntity, FlagTextureEntry> e = iterator.next();
-            FlagBlockEntity flagBlockEntity = e.getKey();
-            if (flagBlockEntity.isInvalid()) {
+            Map.Entry<TileEntityFlag, FlagTextureEntry> e = iterator.next();
+            TileEntityFlag tileEntityFlag = e.getKey();
+            if (tileEntityFlag.isInvalid()) {
                 // Remove reference to flag from entry
                 FlagTextureEntry entry = e.getValue();
-                assert entry.appliedFlags.contains(flagBlockEntity);
-                entry.appliedFlags.remove(flagBlockEntity);
+                assert entry.appliedFlags.contains(tileEntityFlag);
+                entry.appliedFlags.remove(tileEntityFlag);
 
                 // If flag texture is no longer referenced by any flags then free its texture
                 if (entry.appliedFlags.isEmpty()) {
@@ -70,12 +68,12 @@ public class FlagRenderer {
     }
 
     
-    public int getTexture(FlagBlockEntity flagBlockEntity)
+    public int getTexture(TileEntityFlag tileEntityFlag)
     {
-        return getEntryForFlag(flagBlockEntity).texture;
+        return getEntryForFlag(tileEntityFlag).texture;
     }
 
-    private @NotNull FlagTextureEntry getEntryForFlag(FlagBlockEntity flag) {
+    private @NotNull FlagTextureEntry getEntryForFlag(TileEntityFlag flag) {
         // Returned cached value if not dirty
         if (!flag.isDirty) {
             FlagTextureEntry e = cache.get(flag);
@@ -123,7 +121,7 @@ public class FlagRenderer {
         return returnEntry;
     }
 
-    private int[] flagDataToRGB(FlagBlockEntity tileEntity, byte[] colorData)
+    private int[] flagDataToRGB(TileEntityFlag tileEntity, byte[] colorData)
     {
         int[] data = new int[CANVAS_WIDTH * CANVAS_HEIGHT];
 
@@ -144,7 +142,7 @@ public class FlagRenderer {
         return data;
     }
 
-    private int getColorMap(FlagBlockEntity tileEntity, int index)
+    private int getColorMap(TileEntityFlag tileEntity, int index)
     {
         int col = 0x00FFFFFF;
         if(index > 0 && index <= 3)
@@ -163,7 +161,7 @@ public class FlagRenderer {
         public final int activeDyes;
         public final byte[] colorData;
         public final int texture;
-        public final Set<FlagBlockEntity> appliedFlags = new HashSet<>();
+        public final Set<TileEntityFlag> appliedFlags = new HashSet<>();
 
         public FlagTextureEntry(int texture, int colorHash, int activeDyes, byte[] colorData) {
             this.texture = texture;
diff --git a/src/main/java/net/minecraft/client/render/FogManager.java b/src/main/java/net/minecraft/client/render/FogManager.java
index d081f6611..b0d8db120 100644
--- a/src/main/java/net/minecraft/client/render/FogManager.java
+++ b/src/main/java/net/minecraft/client/render/FogManager.java
@@ -9,8 +9,8 @@ import org.lwjgl.opengl.NVFogDistance;
 
 import net.minecraft.client.GLAllocation;
 import net.minecraft.client.Minecraft;
-import net.minecraft.client.gui.PhotoModeScreen;
-import net.minecraft.client.gui.modelviewer.ModelViewerScreen;
+import net.minecraft.client.gui.ScreenPhotoMode;
+import net.minecraft.client.gui.modelviewer.ScreenModelViewer;
 import net.minecraft.client.option.enums.RenderDistance;
 import net.minecraft.client.render.camera.CameraUtil;
 import net.minecraft.client.render.colorizer.Colorizers;
@@ -78,9 +78,9 @@ public class FogManager {
 
             if (fogDistance > maxFogDistance * fogModifier) fogDistance = maxFogDistance * fogModifier;
 
-            if (mc.currentScreen instanceof PhotoModeScreen)
+            if (mc.currentScreen instanceof ScreenPhotoMode)
             {
-                fogDistance = farPlaneDistance * ((PhotoModeScreen)mc.currentScreen).getFog(partialTick);
+                fogDistance = farPlaneDistance * ((ScreenPhotoMode)mc.currentScreen).getFog(partialTick);
             }
 
             glFogi(GL_FOG_MODE, GL_LINEAR);
@@ -170,8 +170,8 @@ public class FogManager {
         fogRed *= brightness;
         fogGreen *= brightness;
         fogBlue *= brightness;
-        if (mc.currentScreen instanceof ModelViewerScreen) {
-            float[] color = ((ModelViewerScreen) mc.currentScreen).getBackgroundFogColor();
+        if (mc.currentScreen instanceof ScreenModelViewer) {
+            float[] color = ((ScreenModelViewer) mc.currentScreen).getBackgroundFogColor();
             fogRed = color[0];
             fogGreen = color[1];
             fogBlue = color[2];
diff --git a/src/main/java/net/minecraft/client/render/ItemRenderer.java b/src/main/java/net/minecraft/client/render/ItemRenderer.java
index 7dd27c1e0..bc65e5e3b 100644
--- a/src/main/java/net/minecraft/client/render/ItemRenderer.java
+++ b/src/main/java/net/minecraft/client/render/ItemRenderer.java
@@ -1,16 +1,16 @@
 package net.minecraft.client.render;
 
-import net.minecraft.client.entity.player.LocalPlayer;
+import net.minecraft.client.entity.player.PlayerLocal;
 import net.minecraft.client.render.block.color.BlockColorDispatcher;
 import net.minecraft.core.item.Item;
-import net.minecraft.core.item.block.BlockItem;
+import net.minecraft.core.item.block.ItemBlock;
 import org.lwjgl.opengl.GL11;
 
 import net.minecraft.client.Minecraft;
 import net.minecraft.client.render.block.model.BlockModel;
 import net.minecraft.client.render.block.model.BlockModelDispatcher;
 import net.minecraft.client.render.entity.EntityRenderer;
-import net.minecraft.client.render.entity.PlayerRenderer;
+import net.minecraft.client.render.entity.MobRendererPlayer;
 import net.minecraft.client.render.item.model.ItemModelDispatcher;
 import net.minecraft.client.render.texture.stitcher.IconCoordinate;
 import net.minecraft.client.render.texture.stitcher.TextureRegistry;
@@ -36,8 +36,8 @@ import static org.lwjgl.opengl.GL11.glPushMatrix;
 //            RenderBlocks, MapItemRenderer, ItemStack, Block, 
 //            RenderEngine, Mob, Tessellator, Player,
 //            RenderHelper, MathHelper, World, Item, 
-//            MapItem, LocalPlayer, RenderManager, RenderPlayer,
-//            Material, FireBlock, InventoryPlayer
+//            ItemMap, PlayerLocal, RenderManager, RenderPlayer,
+//            Material, BlockFire, InventoryPlayer
 
 public class ItemRenderer
 {
@@ -56,8 +56,8 @@ public class ItemRenderer
     }
 
     public int getItemColorFromMetadata(Item item, int metadata) {
-        if (item instanceof BlockItem) {
-            Block block = ((BlockItem)item).getBlock();
+        if (item instanceof ItemBlock) {
+            Block block = ((ItemBlock)item).getBlock();
             return BlockColorDispatcher.getInstance().getDispatch(block).getFallbackColor(metadata);
         }
         return 0xFFFFFF;
@@ -66,7 +66,7 @@ public class ItemRenderer
     public void renderItemInFirstPerson(float partialTick)
     {
         float equipProgress = getEquippedProgress(partialTick);
-        LocalPlayer player = mc.thePlayer;
+        PlayerLocal player = mc.thePlayer;
         float rotationPitch = player.xRotO + (player.xRot - player.xRotO) * partialTick;
         GL11.glPushMatrix();
         GL11.glRotatef(rotationPitch, 1.0F, 0.0F, 0.0F);
@@ -90,7 +90,7 @@ public class ItemRenderer
         	}
             GL11.glColor4f(brightness, brightness, brightness, 1.0f);
             EntityRenderer<? extends Entity> render = EntityRenderDispatcher.instance.getRenderer(mc.thePlayer);
-            PlayerRenderer playerRenderer = (PlayerRenderer)render;
+            MobRendererPlayer playerRenderer = (MobRendererPlayer)render;
             if (player.getHeldObject() == null) {
                 float f6 = 0.8F;
                 float swingProgress = player.getSwingProgress(partialTick);
@@ -281,7 +281,7 @@ public class ItemRenderer
     public void updateEquippedItem()
     {
         oHeight = height;
-        LocalPlayer entityplayersp = mc.thePlayer;
+        PlayerLocal entityplayersp = mc.thePlayer;
         ItemStack itemstack = entityplayersp.inventory.getCurrentItem();
         boolean flag = lastSlot == entityplayersp.inventory.getCurrentItemIndex() && itemstack == itemToRender;
         if(itemToRender == null && itemstack == null)
diff --git a/src/main/java/net/minecraft/client/render/LightmapHelper.java b/src/main/java/net/minecraft/client/render/LightmapHelper.java
index 55fc7dcf6..2b529a91b 100644
--- a/src/main/java/net/minecraft/client/render/LightmapHelper.java
+++ b/src/main/java/net/minecraft/client/render/LightmapHelper.java
@@ -10,7 +10,7 @@ import java.util.Arrays;
 import com.mojang.logging.LogUtils;
 import net.minecraft.client.GLAllocation;
 import net.minecraft.client.Minecraft;
-import net.minecraft.client.gui.PhotoModeScreen;
+import net.minecraft.client.gui.ScreenPhotoMode;
 import net.minecraft.client.option.enums.LightmapStyle;
 import net.minecraft.client.util.helper.Textures;
 import net.minecraft.core.util.helper.Buffer;
@@ -169,7 +169,7 @@ public class LightmapHelper {
 			
 			if(smooth) {
 				float skyDarken = prevSkyDarken + (skyDarkenSmooth - prevSkyDarken) * partialTicks;
-				if(mc.currentScreen instanceof PhotoModeScreen) {
+				if(mc.currentScreen instanceof ScreenPhotoMode) {
 					skyDarken = world.skyDarken;
 				}
 				float modifiedSkylight = Math.max(0, skyLightLevel - skyDarken);
diff --git a/src/main/java/net/minecraft/client/render/MapItemRenderer.java b/src/main/java/net/minecraft/client/render/MapItemRenderer.java
index bfe12dd81..5caa559c1 100644
--- a/src/main/java/net/minecraft/client/render/MapItemRenderer.java
+++ b/src/main/java/net/minecraft/client/render/MapItemRenderer.java
@@ -3,7 +3,7 @@ package net.minecraft.client.render;
 import java.awt.image.BufferedImage;
 import java.util.Iterator;
 
-import net.minecraft.client.render.texture.BufferedTexture;
+import net.minecraft.client.render.texture.TextureBuffered;
 
 import net.minecraft.client.option.GameSettings;
 import net.minecraft.client.render.tessellator.Tessellator;
@@ -182,7 +182,7 @@ public class MapItemRenderer
     }
 
     private final int[] mapImageData;
-    private final BufferedTexture mapTexture;
+    private final TextureBuffered mapTexture;
     private final GameSettings gameSettings;
     private Font font;
 }
diff --git a/src/main/java/net/minecraft/client/render/ParticleEngine.java b/src/main/java/net/minecraft/client/render/ParticleEngine.java
index 94ddc68ca..13e593105 100644
--- a/src/main/java/net/minecraft/client/render/ParticleEngine.java
+++ b/src/main/java/net/minecraft/client/render/ParticleEngine.java
@@ -3,7 +3,7 @@ package net.minecraft.client.render;
 import java.util.*;
 
 import net.minecraft.client.render.camera.ICamera;
-import net.minecraft.client.entity.particle.TerrainParticle;
+import net.minecraft.client.entity.particle.ParticleBlockBreaking;
 import net.minecraft.client.entity.particle.Particle;
 import net.minecraft.client.render.texture.stitcher.TextureRegistry;
 import net.minecraft.client.render.tessellator.Tessellator;
@@ -165,7 +165,7 @@ public final class ParticleEngine {
                     double yp = y + (yy + 0.5D) / amount;
                     double zp = z + (zz + 0.5D) / amount;
                     Side side = Side.getSideById(rand.nextInt(6));
-                    add((new TerrainParticle(world, xp, yp, zp, xp - x - 0.5D, yp - y - 0.5D, zp - z - 0.5D, block, side, data)).init(x, y, z));
+                    add((new ParticleBlockBreaking(world, xp, yp, zp, xp - x - 0.5D, yp - y - 0.5D, zp - z - 0.5D, block, side, data)).init(x, y, z));
                 }
             }
         }
@@ -201,7 +201,7 @@ public final class ParticleEngine {
         } else if (side == Side.EAST) {
             xp = x + block.maxX + r;
         }
-        add((new TerrainParticle(world, xp, yp, zp, 0.0D, 0.0D, 0.0D, block, side, world.getBlockMetadata(x, y, z))).init(x, y, z).setPower(0.2F).setScale(0.6F));
+        add((new ParticleBlockBreaking(world, xp, yp, zp, 0.0D, 0.0D, 0.0D, block, side, world.getBlockMetadata(x, y, z))).init(x, y, z).setPower(0.2F).setScale(0.6F));
     }
 
     public int countParticles() {
diff --git a/src/main/java/net/minecraft/client/render/Polygon.java b/src/main/java/net/minecraft/client/render/Polygon.java
index 9844c9768..480f80e3a 100644
--- a/src/main/java/net/minecraft/client/render/Polygon.java
+++ b/src/main/java/net/minecraft/client/render/Polygon.java
@@ -28,6 +28,17 @@ public class Polygon
         vertices[3] = vertices[3].remap((float)maxU / texWidth - offsetU, (float)maxV / texHeight - offsetV);
     }
 
+    public void mirror()
+    {
+        Vertex[] vertices = new Vertex[this.vertices.length];
+        for(int i = 0; i < this.vertices.length; i++)
+        {
+            vertices[i] = this.vertices[this.vertices.length - i - 1];
+        }
+
+        this.vertices = vertices;
+    }
+
     public void mirrorU()
     {
         float minU = vertices[1].u;
diff --git a/src/main/java/net/minecraft/client/render/RenderBlocks.java b/src/main/java/net/minecraft/client/render/RenderBlocks.java
index c6e406798..6fdbcacaa 100644
--- a/src/main/java/net/minecraft/client/render/RenderBlocks.java
+++ b/src/main/java/net/minecraft/client/render/RenderBlocks.java
@@ -13,11 +13,11 @@ import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.world.WorldSource;
 
 // Referenced classes of package net.minecraft.src:
-//            Block, RailBlock, Tessellator, IBlockAccess,
-//            BedBlock, ModelBed, RepeaterBlock, PistonBaseBlock,
-//            BlockPistonExtension, Vec3D, FireBlock, RedstoneWireBlock,
-//            EntityRenderer, FluidBlock, MathHelper, Material,
-//            DoorBlock, World
+//            Block, BlockRail, Tessellator, IBlockAccess,
+//            BlockBed, ModelBed, BlockRepeater, BlockPistonBase,
+//            BlockPistonExtension, Vec3D, BlockFire, BlockWireRedstone,
+//            EntityRenderer, BlockFluid, MathHelper, Material,
+//            BlockDoor, World
 
 public class RenderBlocks
 {
diff --git a/src/main/java/net/minecraft/client/render/RenderGlobal.java b/src/main/java/net/minecraft/client/render/RenderGlobal.java
index b11dcc35d..c4904019e 100644
--- a/src/main/java/net/minecraft/client/render/RenderGlobal.java
+++ b/src/main/java/net/minecraft/client/render/RenderGlobal.java
@@ -4,11 +4,11 @@ import net.minecraft.client.GLAllocation;
 import net.minecraft.client.Minecraft;
 import net.minecraft.client.entity.particle.Particle;
 import net.minecraft.client.entity.particle.ParticleDispatcher;
-import net.minecraft.client.gui.PhotoModeScreen;
-import net.minecraft.client.gui.modelviewer.ModelViewerScreen;
+import net.minecraft.client.gui.ScreenPhotoMode;
+import net.minecraft.client.gui.modelviewer.ScreenModelViewer;
 import net.minecraft.client.render.block.model.BlockModel;
 import net.minecraft.client.render.block.model.BlockModelDispatcher;
-import net.minecraft.client.render.block.model.LeavesBlockModel;
+import net.minecraft.client.render.block.model.BlockModelLeaves;
 import net.minecraft.client.render.camera.EntityCamera;
 import net.minecraft.client.render.camera.ICamera;
 import net.minecraft.client.render.colorizer.Colorizers;
@@ -17,9 +17,9 @@ import net.minecraft.client.render.terrain.ChunkRenderer;
 import net.minecraft.client.render.texture.stitcher.IconCoordinate;
 import net.minecraft.client.render.texture.stitcher.TextureRegistry;
 import net.minecraft.client.render.tessellator.Tessellator;
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.entity.player.Player;
-import net.minecraft.core.item.MusicDiscItem;
+import net.minecraft.core.item.ItemDiscMusic;
 import net.minecraft.core.lang.I18n;
 import net.minecraft.core.util.helper.Color;
 import net.minecraft.core.util.helper.Direction;
@@ -44,7 +44,6 @@ import net.minecraft.core.world.weather.Weathers;
 import org.lwjgl.opengl.ARBOcclusionQuery;
 import org.lwjgl.opengl.GL11;
 import org.lwjgl.opengl.GL15;
-import org.useless.stellar.StarUtil;
 
 import java.nio.IntBuffer;
 import java.util.ArrayList;
@@ -58,8 +57,8 @@ import static org.lwjgl.opengl.GL11.*;
 //            IWorldAccess, GLAllocation, RenderList, OpenGlCapsChecker, 
 //            Tessellator, World, RenderManager, RenderBlocks,
 //            Block, GameSettings, BlockLeaves, WorldRenderer, 
-//            Entity, MathHelper, EntitySorter, BlockEntityRenderer,
-//            ICamera, Mob, BlockEntity, RenderHelper,
+//            Entity, MathHelper, EntitySorter, TileEntityRenderer,
+//            ICamera, Mob, TileEntity, RenderHelper,
 //            EntityRenderer, WorldProvider, Vec3D, RenderEngine, 
 //            RenderSorter, MovingObjectPosition, Player, EnumMovingObjectType,
 //            AxisAlignedBB, GuiIngame, SoundEngine, EntityBubbleFX,
@@ -67,7 +66,7 @@ import static org.lwjgl.opengl.GL11.*;
 //            EntityExplodeFX, EntityFlameFX, EntityLavaFX, EntityFootStepFX, 
 //            EntitySplashFX, EntityReddustFX, EntityItemFX, Item,
 //            EntitySnowShovelFX, EntityHeartFX, ImageBufferDownload, StepSound, 
-//            MusicDiscItem, ItemStack
+//            ItemDiscMusic, ItemStack
 
 public class RenderGlobal
     implements LevelListener
@@ -166,9 +165,9 @@ public class RenderGlobal
             d *= d4;
             d1 *= d4;
             d2 *= d4;
-            double d5 = d * 100D;
-            double d6 = d1 * 100D;
-            double d7 = d2 * 100D;
+            double x = d * 100D;
+            double y = d1 * 100D;
+            double z = d2 * 100D;
             double d8 = java.lang.Math.atan2(d, d2);
             double d9 = java.lang.Math.sin(d8);
             double d10 = java.lang.Math.cos(d8);
@@ -179,24 +178,20 @@ public class RenderGlobal
             double d15 = java.lang.Math.sin(d14);
             double d16 = java.lang.Math.cos(d14);
 
-            int starColor = Colorizers.stars.getDefaultColor(colorRandom.nextDouble(), 1); /*StarUtil.getStarColorFromTemp(1000 + colorRandom.nextInt(17500));*/
-            tessellator.setColorOpaque(Color.redFromInt(starColor)/4 + 32, Color.greenFromInt(starColor)/4 + 32, Color.blueFromInt(starColor)/4 + 32);
-
+            double color = colorRandom.nextDouble();
             for(int j = 0; j < 4; j++)
             {
                 double d17 = 0.0D;
                 double d18 = (double)((j & 2) - 1) * d3;
                 double d19 = (double)((j + 1 & 2) - 1) * d3;
-                double d20 = d17;
                 double d21 = d18 * d16 - d19 * d15;
                 double d22 = d19 * d16 + d18 * d15;
-                double d23 = d22;
-                double d24 = d21 * d12 + d20 * d13;
-                double d25 = d20 * d12 - d21 * d13;
-                double d26 = d25 * d9 - d23 * d10;
-                double d27 = d24;
-                double d28 = d23 * d9 + d25 * d10;
-                tessellator.addVertex(d5 + d26, d6 + d27, d7 + d28);
+                double yOff = d21 * d12 + d17 * d13;
+                double d25 = d17 * d12 - d21 * d13;
+                double xOff = d25 * d9 - d22 * d10;
+                double zOff = d22 * d9 + d25 * d10;
+
+                tessellator.addVertexWithUV(x + xOff, y + yOff, z + zOff, color, 0);
             }
 
         }
@@ -233,7 +228,7 @@ public class RenderGlobal
         deleteRenderListBase();
         glRenderListBase = GLAllocation.generateDisplayLists(RENDER_LIST_BASE_WIDTH * RENDER_LIST_BASE_WIDTH * RENDER_LIST_BASE_WIDTH * 3);
 
-        LeavesBlockModel.setGraphicsLevel(mc.gameSettings.fancyGraphics.value == 1);
+        BlockModelLeaves.setGraphicsLevel(mc.gameSettings.fancyGraphics.value == 1);
         renderDistance = mc.gameSettings.renderDistance.value;
         if (worldObj == null) return;
 
@@ -481,9 +476,9 @@ public class RenderGlobal
             }
         }
 
-        for (BlockEntity blockEntity : tileEntities)
+        for (TileEntity tileEntity : tileEntities)
         {
-            BlockEntityRenderDispatcher.instance.renderTileEntity(tessellator, blockEntity, partialTick);
+            BlockEntityRenderDispatcher.instance.renderTileEntity(tessellator, tileEntity, partialTick);
         }
     }
 
@@ -831,7 +826,7 @@ public class RenderGlobal
 
     public void drawSky(float partialTick)
     {
-        if(!mc.theWorld.getWorldType().hasSky() || mc.currentScreen instanceof ModelViewerScreen)
+        if(!mc.theWorld.getWorldType().hasSky() || mc.currentScreen instanceof ScreenModelViewer)
         {
             return;
         }
@@ -992,14 +987,15 @@ public class RenderGlobal
         t.addVertexWithUV(-size, -100D, -size, 1.0D, 0.0D);
         t.draw();
 
-        GL11.glDisable(GL11.GL_TEXTURE_2D);
         float f17 = worldObj.getStarBrightness(partialTick) * sunAlpha;
         if(f17 > 0.0F)
         {
+            textureManager.loadTexture("/assets/minecraft/textures/colormap/stars/default.png").bind();
             GL11.glColor4f(f17, f17, f17, f17);
             GL11.glCallList(starGLCallList);
         }
         GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
+        GL11.glDisable(GL11.GL_TEXTURE_2D);
         GL11.glDisable(GL11.GL_BLEND);
         GL11.glEnable(GL11.GL_ALPHA_TEST);
         GL11.glEnable(GL11.GL_FOG);
@@ -1025,7 +1021,7 @@ public class RenderGlobal
         {
             return;
         }
-        if (mc.currentScreen instanceof PhotoModeScreen)
+        if (mc.currentScreen instanceof ScreenPhotoMode)
         {
             return;
         }
@@ -1353,7 +1349,7 @@ public class RenderGlobal
 
     public void drawSelectionBox(ICamera camera, HitResult hitResult, float partialTick)
     {
-        if (mc.gameSettings.immersiveMode.drawOutline() && mc.gameSettings.blockOutlineWidth.value > 0.01f && !(mc.currentScreen instanceof ModelViewerScreen))
+        if (mc.gameSettings.immersiveMode.drawOutline() && mc.gameSettings.blockOutlineWidth.value > 0.01f && !(mc.currentScreen instanceof ScreenModelViewer))
         {
             GL11.glEnable(GL11.GL_BLEND);
             GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
@@ -1642,9 +1638,9 @@ public class RenderGlobal
         if(soundPath != null)
         {
             if (author != null && !author.isEmpty()){
-                mc.ingameHud.setRecordPlayingMessage(author + " - " + I18n.getInstance().translateKey(soundPath));
+                mc.hudIngame.setRecordPlayingMessage(author + " - " + I18n.getInstance().translateKey(soundPath));
             } else {
-                mc.ingameHud.setRecordPlayingMessage(I18n.getInstance().translateKey(soundPath));
+                mc.hudIngame.setRecordPlayingMessage(I18n.getInstance().translateKey(soundPath));
             }
         }
         mc.sndManager.playMusic(soundPath, x, y, z, 1.0F, 1.0F);
@@ -1699,7 +1695,7 @@ public class RenderGlobal
 	}
 
     @Override
-    public void tileEntityChanged(int x, int y, int z, BlockEntity blockEntity)
+    public void tileEntityChanged(int x, int y, int z, TileEntity tileEntity)
     {
     }
 
@@ -1772,8 +1768,8 @@ public class RenderGlobal
                 break;
 
             case EVENT_JUKEBOX_TOGGLE: // Jukebox play/stop record
-                if(Item.itemsList[data] instanceof MusicDiscItem) {
-                    MusicDiscItem record = ((MusicDiscItem)Item.itemsList[data]);
+                if(Item.itemsList[data] instanceof ItemDiscMusic) {
+                    ItemDiscMusic record = ((ItemDiscMusic)Item.itemsList[data]);
                     worldObj.playRecord(record.recordName, record.recordAuthor, x, y, z);
                 } else {
                     worldObj.playRecord(null, null, x, y, z);
@@ -1796,7 +1792,7 @@ public class RenderGlobal
 	public void entityRemoved(Entity entity) {
 	}
 
-    public List<BlockEntity> tileEntities;
+    public List<TileEntity> tileEntities;
     private World worldObj;
     private final TextureManager textureManager;
     private final List<ChunkRenderer> chunkRenderersToUpdate;
diff --git a/src/main/java/net/minecraft/client/render/TextureManager.java b/src/main/java/net/minecraft/client/render/TextureManager.java
index 7264eec72..14b266f0b 100644
--- a/src/main/java/net/minecraft/client/render/TextureManager.java
+++ b/src/main/java/net/minecraft/client/render/TextureManager.java
@@ -30,7 +30,6 @@ import net.minecraft.client.render.dynamictexture.DynamicTextureFire;
 import net.minecraft.client.render.dynamictexture.DynamicTextureFireflyJar;
 import net.minecraft.client.render.dynamictexture.DynamicTextureLavaFlowing;
 import net.minecraft.client.render.dynamictexture.DynamicTextureLavaStill;
-import net.minecraft.client.render.dynamictexture.DynamicTexturePortal;
 import net.minecraft.client.render.dynamictexture.DynamicTextureTrommel;
 import net.minecraft.client.render.dynamictexture.DynamicTextureWaterFlow;
 import net.minecraft.client.render.dynamictexture.DynamicTextureWaterStill;
@@ -38,9 +37,9 @@ import net.minecraft.client.render.texture.meta.AnimationProperties;
 import net.minecraft.client.render.texture.stitcher.AtlasStitcher;
 import net.minecraft.client.render.texture.stitcher.IconCoordinate;
 import net.minecraft.client.render.texture.stitcher.TextureRegistry;
-import net.minecraft.client.render.texture.BufferedTexture;
-import net.minecraft.client.render.texture.DownloadedTexture;
-import net.minecraft.client.render.texture.FileTexture;
+import net.minecraft.client.render.texture.TextureBuffered;
+import net.minecraft.client.render.texture.TextureDownloaded;
+import net.minecraft.client.render.texture.TextureFile;
 import net.minecraft.client.render.texture.Texture;
 import net.minecraft.client.render.texturepack.TexturePackException;
 import net.minecraft.client.render.texturepack.TexturePackList;
@@ -60,8 +59,8 @@ public class TextureManager {
 
 	public final Map<Integer, Texture> idToTextureMap = new HashMap<>();
 	public final Map<String, Texture> textureMap = new HashMap<>();
-	public final List<BufferedTexture> bufferedTextures = new ArrayList<>();
-	public final Map<String, DownloadedTexture> downloadedTextures = new HashMap<>();
+	public final List<TextureBuffered> bufferedTextures = new ArrayList<>();
+	public final Map<String, TextureDownloaded> downloadedTextures = new HashMap<>();
 	public final Map<NamespaceID, DynamicTexture> dynamicTextures = new HashMap<>();
 	
 	private final GameSettings gameSettings;
@@ -144,7 +143,7 @@ public class TextureManager {
 		Texture t = loadTextureNoDefault(name);
 		
 		if (t == null) {
-			t = new BufferedTexture(missingTexture, false, false, false);
+			t = new TextureBuffered(missingTexture, false, false, false);
 			textureMap.put(name, t);
 			idToTextureMap.put(t.id(), t);
         }
@@ -158,7 +157,7 @@ public class TextureManager {
 		if (texture != null) return texture;
 
 		try {
-			texture = new FileTexture(name);
+			texture = new TextureFile(name);
 			textureMap.put(name, texture);
 			idToTextureMap.put(texture.id(), texture);
 			return texture;
@@ -168,8 +167,8 @@ public class TextureManager {
 		return null;
 	}
 
-	public BufferedTexture loadBufferedTexture(BufferedImage bufferedimage) { // TODO, this may need a way to reduce textures from the same BufferedImage, since this allocates a new texture to memory every time its called
-		BufferedTexture texture = new BufferedTexture(bufferedimage, false, false, false);
+	public TextureBuffered loadBufferedTexture(BufferedImage bufferedimage) { // TODO, this may need a way to reduce textures from the same BufferedImage, since this allocates a new texture to memory every time its called
+		TextureBuffered texture = new TextureBuffered(bufferedimage, false, false, false);
 		bufferedTextures.add(texture);
 		return texture;
 	}
@@ -311,7 +310,7 @@ public class TextureManager {
         		String[] lines = string.split("\n");
 
                 for (String line : lines) {
-                    mc.ingameHud.addChatMessage(line);
+                    mc.hudIngame.addChatMessage(line);
                 }
         	}
         }
@@ -378,7 +377,7 @@ public class TextureManager {
             dynamicTexture.postInit();
         }
 
-		for (BufferedTexture t : bufferedTextures) {
+		for (TextureBuffered t : bufferedTextures) {
 			t.init();
 		}
 		for (Texture t : textureMap.values()) {
@@ -417,9 +416,9 @@ public class TextureManager {
 				return false;
 			}
 		}
-		DownloadedTexture texture = downloadedTextures.get(urlTexture);
+		TextureDownloaded texture = downloadedTextures.get(urlTexture);
 		if(texture == null) {
-			texture = new DownloadedTexture(urlTexture, imageParser);
+			texture = new TextureDownloaded(urlTexture, imageParser);
 			downloadedTextures.put(urlTexture, texture);
 		}
 		if(!texture.isGenerated()) {
diff --git a/src/main/java/net/minecraft/client/render/WorldRenderer.java b/src/main/java/net/minecraft/client/render/WorldRenderer.java
index ee3a6b8ba..323896785 100644
--- a/src/main/java/net/minecraft/client/render/WorldRenderer.java
+++ b/src/main/java/net/minecraft/client/render/WorldRenderer.java
@@ -13,11 +13,11 @@ import org.lwjgl.opengl.GL11;
 import org.lwjgl.util.glu.GLU;
 
 import net.minecraft.client.Minecraft;
-import net.minecraft.client.entity.particle.WaterDropParticle;
-import net.minecraft.client.entity.particle.SmokeParticle;
-import net.minecraft.client.entity.player.LocalPlayer;
-import net.minecraft.client.gui.PhotoModeScreen;
-import net.minecraft.client.gui.modelviewer.ModelViewerScreen;
+import net.minecraft.client.entity.particle.ParticleWaterDrop;
+import net.minecraft.client.entity.particle.ParticleSmoke;
+import net.minecraft.client.entity.player.PlayerLocal;
+import net.minecraft.client.gui.ScreenPhotoMode;
+import net.minecraft.client.gui.modelviewer.ScreenModelViewer;
 import net.minecraft.client.input.InputType;
 import net.minecraft.client.input.MouseFilter;
 import net.minecraft.client.input.PlayerInput;
@@ -110,7 +110,7 @@ public class WorldRenderer
 
     private void updateSpeedFov()
     {
-        LocalPlayer player = mc.thePlayer;
+        PlayerLocal player = mc.thePlayer;
         currentFovModifier = player.getFovModifier();
         a = b;
         b += (currentFovModifier - b) * 0.5f;
@@ -264,7 +264,7 @@ public class WorldRenderer
         if (mc.activeCamera instanceof EntityCamera)
         {
             Mob entityliving = ((EntityCamera) mc.activeCamera).mob;
-            if (mc.currentScreen instanceof PhotoModeScreen)
+            if (mc.currentScreen instanceof ScreenPhotoMode)
             {
                 mc.activeCamera = new EntityCameraIsometric(mc, entityliving);
             }
@@ -299,16 +299,16 @@ public class WorldRenderer
         setupCamera(partialTick);
         mc.activeCamera.applyGlTransformations();
 
-        if(!(mc.currentScreen instanceof PhotoModeScreen) && !mc.gameSettings.lockCamera.value)
+        if(!(mc.currentScreen instanceof ScreenPhotoMode) && !mc.gameSettings.lockCamera.value)
         {
             glRotatef((float) mc.activeCamera.getXRot(partialTick), 1.0F, 0.0F, 0.0F);
             glRotatef((float) (mc.activeCamera.getYRot(partialTick) + 180F), 0.0F, 1.0F, 0.0F);
         }
 
-        if (mc.currentScreen instanceof PhotoModeScreen)
+        if (mc.currentScreen instanceof ScreenPhotoMode)
         {
-            glRotatef(((PhotoModeScreen)mc.currentScreen).getTilt(partialTick), 1.0F, 0.0F, 0.0F);
-            glRotatef(45f + 45F * ((PhotoModeScreen)mc.currentScreen).getRotation(partialTick), 0.0F, 1.0F, 0.0F);
+            glRotatef(((ScreenPhotoMode)mc.currentScreen).getTilt(partialTick), 1.0F, 0.0F, 0.0F);
+            glRotatef(45f + 45F * ((ScreenPhotoMode)mc.currentScreen).getRotation(partialTick), 0.0F, 1.0F, 0.0F);
         }
     }
 
@@ -323,12 +323,12 @@ public class WorldRenderer
         } else {
             zoomProgress = 0;
         }
-        if (mc.currentScreen instanceof PhotoModeScreen)
+        if (mc.currentScreen instanceof ScreenPhotoMode)
         {
-            double div = java.lang.Math.pow(2, ((PhotoModeScreen)mc.currentScreen).getZoom(partialTick));
+            double div = java.lang.Math.pow(2, ((ScreenPhotoMode)mc.currentScreen).getZoom(partialTick));
             glTranslatef(1, 1, 0);
             glOrtho(0, mc.gameWindow.getWidthPixels() / div, 0, mc.gameWindow.getHeightPixels() / div, farPlaneDistance * -2.0f, farPlaneDistance * 2.0f);
-            glTranslatef(((PhotoModeScreen)mc.currentScreen).getPanX(partialTick), -((PhotoModeScreen)mc.currentScreen).getPanY(partialTick), 0);
+            glTranslatef(((ScreenPhotoMode)mc.currentScreen).getPanX(partialTick), -((ScreenPhotoMode)mc.currentScreen).getPanY(partialTick), 0);
         } else
         {
             GLU.gluPerspective(fov, (float)mc.gameWindow.getWidthPixels() / (float)mc.gameWindow.getHeightPixels(), 0.05F, farPlaneDistance * 2.0F);
@@ -336,7 +336,7 @@ public class WorldRenderer
         glMatrixMode(GL_MODELVIEW);
         glLoadIdentity();
         hurtCameraEffect(partialTick);
-        if(mc.gameSettings.viewBobbing.value && !(mc.currentScreen instanceof PhotoModeScreen))
+        if(mc.gameSettings.viewBobbing.value && !(mc.currentScreen instanceof ScreenPhotoMode))
         {
             setupViewBobbing(partialTick);
         }
@@ -376,7 +376,7 @@ public class WorldRenderer
         {
             setupViewBobbing(partialTick);
         }
-        if(mc.gameSettings.thirdPersonView.value == 0 && !(mc.currentScreen instanceof PhotoModeScreen) && !(!(mc.activeCamera instanceof EntityCamera) || ((EntityCamera) mc.activeCamera).mob.isPlayerSleeping()) && mc.gameSettings.immersiveMode.drawHand())
+        if(mc.gameSettings.thirdPersonView.value == 0 && !(mc.currentScreen instanceof ScreenPhotoMode) && !(!(mc.activeCamera instanceof EntityCamera) || ((EntityCamera) mc.activeCamera).mob.isPlayerSleeping()) && mc.gameSettings.immersiveMode.drawHand())
         {
             lightmapHelper.enableLightmapRendering();
             if(!zooming) itemRenderer.renderItemInFirstPerson(partialTick);
@@ -535,7 +535,7 @@ public class WorldRenderer
             systemTime = System.nanoTime();
             
             Debug.change("hud");
-            mc.ingameHud.renderGameOverlay(partialTick, mc.currentScreen != null, mouseX, mouseY);
+            mc.hudIngame.renderGameOverlay(partialTick, mc.currentScreen != null, mouseX, mouseY);
             Debug.change("misc");
         } else
         {
@@ -623,7 +623,7 @@ public class WorldRenderer
         setupCameraTransform(partialTicks);
         Frustum.getFrustum();
         Debug.change("sky");
-        if((mc.gameSettings.renderDistance.value > 4) /* Used to use Renderdistance rendersky! */ && !(mc.currentScreen instanceof ModelViewerScreen))
+        if((mc.gameSettings.renderDistance.value > 4) /* Used to use Renderdistance rendersky! */ && !(mc.currentScreen instanceof ScreenModelViewer))
         {
             fogManager.setupFog(FogManager.FOG_MODE_SKY, farPlaneDistance, partialTicks);
             glDisable(GL_FOG);
@@ -807,7 +807,7 @@ public class WorldRenderer
             }
             if(Block.blocksList[i2].blockMaterial == Material.lava)
             {
-                mc.particleEngine.add(new SmokeParticle(world, (float)randX + f1, (double)((float)y + 0.1F) - Block.blocksList[i2].minY, (float)randZ + f2, 0.0D, 0.0D, 0.0D));
+                mc.particleEngine.add(new ParticleSmoke(world, (float)randX + f1, (double)((float)y + 0.1F) - Block.blocksList[i2].minY, (float)randZ + f2, 0.0D, 0.0D, 0.0D));
                 continue;
             }
             if(random.nextInt(++l) == 0)
@@ -816,7 +816,7 @@ public class WorldRenderer
                 d1 = (double)((float)y + 0.1F) - Block.blocksList[i2].minY;
                 d2 = (float)randZ + f2;
             }
-            mc.particleEngine.add(new WaterDropParticle(world, (float)randX + f1, (double)((float)y + 0.1F) - Block.blocksList[i2].minY, (float)randZ + f2));
+            mc.particleEngine.add(new ParticleWaterDrop(world, (float)randX + f1, (double)((float)y + 0.1F) - Block.blocksList[i2].minY, (float)randZ + f2));
         }
 
         if(l > 0 && random.nextInt(3) < rainSoundCounter++)
diff --git a/src/main/java/net/minecraft/client/render/block/color/CustomBlockColor.java b/src/main/java/net/minecraft/client/render/block/color/BlockColorCustom.java
similarity index 84%
rename from src/main/java/net/minecraft/client/render/block/color/CustomBlockColor.java
rename to src/main/java/net/minecraft/client/render/block/color/BlockColorCustom.java
index 76d4a3c27..a0fcdb374 100644
--- a/src/main/java/net/minecraft/client/render/block/color/CustomBlockColor.java
+++ b/src/main/java/net/minecraft/client/render/block/color/BlockColorCustom.java
@@ -3,11 +3,11 @@ package net.minecraft.client.render.block.color;
 import net.minecraft.client.render.colorizer.Colorizer;
 import net.minecraft.core.world.WorldSource;
 
-public class CustomBlockColor extends BlockColor {
+public class BlockColorCustom extends BlockColor {
 
 	public Colorizer colorizer;
 	
-	public CustomBlockColor(Colorizer colorizer) {
+	public BlockColorCustom(Colorizer colorizer) {
 		this.colorizer = colorizer;
 		
 		if(colorizer == null) {
diff --git a/src/main/java/net/minecraft/client/render/block/color/DefaultBlockColor.java b/src/main/java/net/minecraft/client/render/block/color/BlockColorDefault.java
similarity index 91%
rename from src/main/java/net/minecraft/client/render/block/color/DefaultBlockColor.java
rename to src/main/java/net/minecraft/client/render/block/color/BlockColorDefault.java
index cf5117ea0..00083c5eb 100644
--- a/src/main/java/net/minecraft/client/render/block/color/DefaultBlockColor.java
+++ b/src/main/java/net/minecraft/client/render/block/color/BlockColorDefault.java
@@ -2,7 +2,7 @@ package net.minecraft.client.render.block.color;
 
 import net.minecraft.core.world.WorldSource;
 
-public class DefaultBlockColor
+public class BlockColorDefault
     extends BlockColor
 {
     @Override
diff --git a/src/main/java/net/minecraft/client/render/block/color/BlockColorDispatcher.java b/src/main/java/net/minecraft/client/render/block/color/BlockColorDispatcher.java
index 0c4865e08..7fac7461f 100644
--- a/src/main/java/net/minecraft/client/render/block/color/BlockColorDispatcher.java
+++ b/src/main/java/net/minecraft/client/render/block/color/BlockColorDispatcher.java
@@ -9,7 +9,7 @@ public final class BlockColorDispatcher
     extends Dispatcher<Block, BlockColor>
 {
     private static final BlockColorDispatcher instance = new BlockColorDispatcher();
-    private static final BlockColor defaultColor = new DefaultBlockColor();
+    private static final BlockColor defaultColor = new BlockColorDefault();
 
     public static BlockColorDispatcher getInstance()
     {
@@ -18,28 +18,28 @@ public final class BlockColorDispatcher
 
     private BlockColorDispatcher()
     {
-        addDispatch(Blocks.ALGAE, new CustomBlockColor(Colorizers.grass));
-        addDispatch(Blocks.FLUID_WATER_STILL, new WaterBlockColor(Colorizers.water));
-        addDispatch(Blocks.FLUID_WATER_FLOWING, new WaterBlockColor(Colorizers.water));
-        addDispatch(Blocks.GRASS, new CustomBlockColor(Colorizers.grass));
-        addDispatch(Blocks.LAYER_LEAVES_OAK, new CustomBlockColor(Colorizers.oak));
-        addDispatch(Blocks.LEAVES_BIRCH, new CustomBlockColor(Colorizers.birch));
-        addDispatch(Blocks.LEAVES_CHERRY, new CustomBlockColor(Colorizers.cherry));
-        addDispatch(Blocks.LEAVES_CHERRY_FLOWERING, new CustomBlockColor(Colorizers.cherry));
-        addDispatch(Blocks.LEAVES_EUCALYPTUS, new CustomBlockColor(Colorizers.eucalyptus));
-        addDispatch(Blocks.LEAVES_CACAO, new CustomBlockColor(Colorizers.cacao));
-        addDispatch(Blocks.LEAVES_OAK, new CustomBlockColor(Colorizers.oak));
-        addDispatch(Blocks.LEAVES_PINE, new CustomBlockColor(Colorizers.pine));
-        addDispatch(Blocks.LEAVES_SHRUB, new CustomBlockColor(Colorizers.shrub));
-        addDispatch(Blocks.LEAVES_THORN, new CustomBlockColor(Colorizers.thorn));
-        addDispatch(Blocks.LEAVES_PALM, new CustomBlockColor(Colorizers.palm));
-        addDispatch(Blocks.MOSS_STONE, new CustomBlockColor(Colorizers.grass));
-        addDispatch(Blocks.MOSS_BASALT, new CustomBlockColor(Colorizers.grass));
-        addDispatch(Blocks.MOSS_LIMESTONE, new CustomBlockColor(Colorizers.grass));
-        addDispatch(Blocks.MOSS_GRANITE, new CustomBlockColor(Colorizers.grass));
-        addDispatch(Blocks.WIRE_REDSTONE, new RedstoneWireBlockColor());
-        addDispatch(Blocks.TALLGRASS, new CustomBlockColor(Colorizers.grass));
-        addDispatch(Blocks.TALLGRASS_FERN, new CustomBlockColor(Colorizers.grass));
+        addDispatch(Blocks.ALGAE, new BlockColorCustom(Colorizers.grass));
+        addDispatch(Blocks.FLUID_WATER_STILL, new BlockColorWater(Colorizers.water));
+        addDispatch(Blocks.FLUID_WATER_FLOWING, new BlockColorWater(Colorizers.water));
+        addDispatch(Blocks.GRASS, new BlockColorCustom(Colorizers.grass));
+        addDispatch(Blocks.LAYER_LEAVES_OAK, new BlockColorCustom(Colorizers.oak));
+        addDispatch(Blocks.LEAVES_BIRCH, new BlockColorCustom(Colorizers.birch));
+        addDispatch(Blocks.LEAVES_CHERRY, new BlockColorCustom(Colorizers.cherry));
+        addDispatch(Blocks.LEAVES_CHERRY_FLOWERING, new BlockColorCustom(Colorizers.cherry));
+        addDispatch(Blocks.LEAVES_EUCALYPTUS, new BlockColorCustom(Colorizers.eucalyptus));
+        addDispatch(Blocks.LEAVES_CACAO, new BlockColorCustom(Colorizers.cacao));
+        addDispatch(Blocks.LEAVES_OAK, new BlockColorCustom(Colorizers.oak));
+        addDispatch(Blocks.LEAVES_PINE, new BlockColorCustom(Colorizers.pine));
+        addDispatch(Blocks.LEAVES_SHRUB, new BlockColorCustom(Colorizers.shrub));
+        addDispatch(Blocks.LEAVES_THORN, new BlockColorCustom(Colorizers.thorn));
+        addDispatch(Blocks.LEAVES_PALM, new BlockColorCustom(Colorizers.palm));
+        addDispatch(Blocks.MOSS_STONE, new BlockColorCustom(Colorizers.grass));
+        addDispatch(Blocks.MOSS_BASALT, new BlockColorCustom(Colorizers.grass));
+        addDispatch(Blocks.MOSS_LIMESTONE, new BlockColorCustom(Colorizers.grass));
+        addDispatch(Blocks.MOSS_GRANITE, new BlockColorCustom(Colorizers.grass));
+        addDispatch(Blocks.WIRE_REDSTONE, new BlockColorWireRedstone());
+        addDispatch(Blocks.TALLGRASS, new BlockColorCustom(Colorizers.grass));
+        addDispatch(Blocks.TALLGRASS_FERN, new BlockColorCustom(Colorizers.grass));
     }
 
     @Override
diff --git a/src/main/java/net/minecraft/client/render/block/color/LeavesOakBlockColor.java b/src/main/java/net/minecraft/client/render/block/color/BlockColorLeavesOak.java
similarity index 91%
rename from src/main/java/net/minecraft/client/render/block/color/LeavesOakBlockColor.java
rename to src/main/java/net/minecraft/client/render/block/color/BlockColorLeavesOak.java
index d00e842c1..337c93425 100644
--- a/src/main/java/net/minecraft/client/render/block/color/LeavesOakBlockColor.java
+++ b/src/main/java/net/minecraft/client/render/block/color/BlockColorLeavesOak.java
@@ -8,11 +8,11 @@ import net.minecraft.core.world.noise.ImprovedNoise;
 import net.minecraft.core.world.season.Season;
 import net.minecraft.core.world.season.Seasons;
 
-public class LeavesOakBlockColor extends CustomBlockColor {
+public class BlockColorLeavesOak extends BlockColorCustom {
 	
 	private static ImprovedNoise fallColorPerlin = new ImprovedNoise(new Random(0));
 	
-	public LeavesOakBlockColor(Colorizer colorizer) {
+	public BlockColorLeavesOak(Colorizer colorizer) {
 		super(colorizer);
 	}
 	
diff --git a/src/main/java/net/minecraft/client/render/block/color/PortalBlockColor.java b/src/main/java/net/minecraft/client/render/block/color/BlockColorPortal.java
similarity index 90%
rename from src/main/java/net/minecraft/client/render/block/color/PortalBlockColor.java
rename to src/main/java/net/minecraft/client/render/block/color/BlockColorPortal.java
index 2d540391f..c616f4420 100644
--- a/src/main/java/net/minecraft/client/render/block/color/PortalBlockColor.java
+++ b/src/main/java/net/minecraft/client/render/block/color/BlockColorPortal.java
@@ -3,7 +3,7 @@ package net.minecraft.client.render.block.color;
 import net.minecraft.client.util.helper.Colors;
 import net.minecraft.core.world.WorldSource;
 
-public class PortalBlockColor extends BlockColor{
+public class BlockColorPortal extends BlockColor{
     @Override
     public int getFallbackColor(int meta) {
         return Colors.allPortalColors[(meta >> 4) & 0xF].getARGB();
diff --git a/src/main/java/net/minecraft/client/render/block/color/TallGrassBlockColor.java b/src/main/java/net/minecraft/client/render/block/color/BlockColorTallGrass.java
similarity index 91%
rename from src/main/java/net/minecraft/client/render/block/color/TallGrassBlockColor.java
rename to src/main/java/net/minecraft/client/render/block/color/BlockColorTallGrass.java
index 3000589e2..ec0b2daa8 100644
--- a/src/main/java/net/minecraft/client/render/block/color/TallGrassBlockColor.java
+++ b/src/main/java/net/minecraft/client/render/block/color/BlockColorTallGrass.java
@@ -7,11 +7,11 @@ import net.minecraft.client.render.colorizer.Colorizers;
 import net.minecraft.core.world.WorldSource;
 import net.minecraft.core.world.noise.ImprovedNoise;
 
-public class TallGrassBlockColor extends CustomBlockColor {
+public class BlockColorTallGrass extends BlockColorCustom {
 	
 	protected static ImprovedNoise grassColorPerlin = new ImprovedNoise(new Random(0));
 	
-	public TallGrassBlockColor(Colorizer colorizer) {
+	public BlockColorTallGrass(Colorizer colorizer) {
 		super(colorizer);
 	}
 	
diff --git a/src/main/java/net/minecraft/client/render/block/color/WaterBlockColor.java b/src/main/java/net/minecraft/client/render/block/color/BlockColorWater.java
similarity index 86%
rename from src/main/java/net/minecraft/client/render/block/color/WaterBlockColor.java
rename to src/main/java/net/minecraft/client/render/block/color/BlockColorWater.java
index 0a3568e71..ca43c3990 100644
--- a/src/main/java/net/minecraft/client/render/block/color/WaterBlockColor.java
+++ b/src/main/java/net/minecraft/client/render/block/color/BlockColorWater.java
@@ -4,11 +4,11 @@ import net.minecraft.client.Minecraft;
 import net.minecraft.client.render.colorizer.Colorizer;
 import net.minecraft.core.world.WorldSource;
 
-public class WaterBlockColor extends CustomBlockColor {
+public class BlockColorWater extends BlockColorCustom {
 
 	public Minecraft mc = Minecraft.getMinecraft(this);
 	
-	public WaterBlockColor(Colorizer colorizer) {
+	public BlockColorWater(Colorizer colorizer) {
 		super(colorizer);
 	}
 	
diff --git a/src/main/java/net/minecraft/client/render/block/color/RedstoneWireBlockColor.java b/src/main/java/net/minecraft/client/render/block/color/BlockColorWireRedstone.java
similarity index 92%
rename from src/main/java/net/minecraft/client/render/block/color/RedstoneWireBlockColor.java
rename to src/main/java/net/minecraft/client/render/block/color/BlockColorWireRedstone.java
index af73cfbd8..78483a675 100644
--- a/src/main/java/net/minecraft/client/render/block/color/RedstoneWireBlockColor.java
+++ b/src/main/java/net/minecraft/client/render/block/color/BlockColorWireRedstone.java
@@ -3,7 +3,7 @@ package net.minecraft.client.render.block.color;
 import net.minecraft.client.util.helper.Colors;
 import net.minecraft.core.world.WorldSource;
 
-public class RedstoneWireBlockColor
+public class BlockColorWireRedstone
     extends BlockColor
 {
 
diff --git a/src/main/java/net/minecraft/client/render/block/model/ActivatorBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelActivator.java
similarity index 86%
rename from src/main/java/net/minecraft/client/render/block/model/ActivatorBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelActivator.java
index 2e7f0af8b..c4b41b2e2 100644
--- a/src/main/java/net/minecraft/client/render/block/model/ActivatorBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelActivator.java
@@ -2,11 +2,11 @@ package net.minecraft.client.render.block.model;
 
 import net.minecraft.client.render.texture.stitcher.IconCoordinate;
 import net.minecraft.client.render.texture.stitcher.TextureRegistry;
-import net.minecraft.core.block.ActivatorBlock;
+import net.minecraft.core.block.BlockActivator;
 import net.minecraft.core.block.Block;
 import net.minecraft.core.util.helper.Side;
 
-public class ActivatorBlockModel extends VeryRotatableBlockModel<ActivatorBlock> {
+public class BlockModelActivator extends BlockModelVeryRotatable<BlockActivator> {
     public final IconCoordinate[] poweredTextures = {
         TextureRegistry.getTexture("minecraft:block/activator/bottom_active"),
         TextureRegistry.getTexture("minecraft:block/activator/top_active"),
@@ -23,7 +23,7 @@ public class ActivatorBlockModel extends VeryRotatableBlockModel<ActivatorBlock>
         TextureRegistry.getTexture("minecraft:block/activator/side_active_overlay"),
         TextureRegistry.getTexture("minecraft:block/activator/side_active_overlay")
     };
-    public ActivatorBlockModel(Block block) {
+    public BlockModelActivator(Block block) {
         super(block);
     }
 
@@ -35,7 +35,7 @@ public class ActivatorBlockModel extends VeryRotatableBlockModel<ActivatorBlock>
     @Override
     public IconCoordinate getBlockTextureFromSideAndMetadata(Side side, int data)
     {
-        if ((data & ActivatorBlock.MASK_POWERED) != 0) {
+        if ((data & BlockActivator.MASK_POWERED) != 0) {
             return poweredTextures[getTextureIndex(side, data)];
         } else {
             return super.getBlockTextureFromSideAndMetadata(side, data);
@@ -45,7 +45,7 @@ public class ActivatorBlockModel extends VeryRotatableBlockModel<ActivatorBlock>
     @Override
     public IconCoordinate getBlockOverbrightTextureFromSideAndMeta(Side side, int data)
     {
-        boolean isPowered = (data & ActivatorBlock.MASK_POWERED) != 0;
+        boolean isPowered = (data & BlockActivator.MASK_POWERED) != 0;
         if (!isPowered) return null;
         return overbrightTextures[getTextureIndex(side, data)];
     }
diff --git a/src/main/java/net/minecraft/client/render/block/model/AlgaeBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelAlgae.java
similarity index 94%
rename from src/main/java/net/minecraft/client/render/block/model/AlgaeBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelAlgae.java
index 1f55d8914..3e15072e2 100644
--- a/src/main/java/net/minecraft/client/render/block/model/AlgaeBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelAlgae.java
@@ -8,8 +8,8 @@ import net.minecraft.core.block.Block;
 import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.world.WorldSource;
 
-public class AlgaeBlockModel<T extends Block> extends StandardBlockModel<T> {
-    public AlgaeBlockModel(Block block) {
+public class BlockModelAlgae<T extends Block> extends BlockModelStandard<T> {
+    public BlockModelAlgae(Block block) {
         super(block);
     }
 
diff --git a/src/main/java/net/minecraft/client/render/block/model/AxisAlignedBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelAxisAligned.java
similarity index 86%
rename from src/main/java/net/minecraft/client/render/block/model/AxisAlignedBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelAxisAligned.java
index c1a7398b1..303c19775 100644
--- a/src/main/java/net/minecraft/client/render/block/model/AxisAlignedBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelAxisAligned.java
@@ -3,15 +3,14 @@ package net.minecraft.client.render.block.model;
 import net.minecraft.client.render.texture.stitcher.IconCoordinate;
 import net.minecraft.client.render.texture.stitcher.TextureRegistry;
 import net.minecraft.client.render.tessellator.Tessellator;
-import net.minecraft.core.block.AxisAlignedBlock;
+import net.minecraft.core.block.BlockAxisAligned;
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.RotatableBlock;
 import net.minecraft.core.util.helper.Axis;
 import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.util.helper.Sides;
 
-public class AxisAlignedBlockModel<T extends Block> extends StandardBlockModel<T> {
-    public AxisAlignedBlockModel(Block block) {
+public class BlockModelAxisAligned<T extends Block> extends BlockModelStandard<T> {
+    public BlockModelAxisAligned(Block block) {
         super(block);
     }
 
@@ -19,7 +18,7 @@ public class AxisAlignedBlockModel<T extends Block> extends StandardBlockModel<T
     public boolean render(Tessellator tessellator, int x, int y, int z) {
         block.setBlockBoundsBasedOnState(renderBlocks.blockAccess, x, y, z);
         int meta = renderBlocks.blockAccess.getBlockMetadata(x, y, z);
-        Axis axis = AxisAlignedBlock.metaToAxis(meta);
+        Axis axis = BlockAxisAligned.metaToAxis(meta);
         switch(axis)
         {
             case Y: // '\0'
diff --git a/src/main/java/net/minecraft/client/render/block/model/BasketBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelBasket.java
similarity index 92%
rename from src/main/java/net/minecraft/client/render/block/model/BasketBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelBasket.java
index fc1fbb2aa..a0efab567 100644
--- a/src/main/java/net/minecraft/client/render/block/model/BasketBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelBasket.java
@@ -4,12 +4,12 @@ import net.minecraft.client.render.texture.stitcher.IconCoordinate;
 import net.minecraft.client.render.texture.stitcher.TextureRegistry;
 import net.minecraft.client.render.tessellator.Tessellator;
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.BasketBlock;
+import net.minecraft.core.block.BlockBasket;
 import net.minecraft.core.util.helper.Side;
 
-public class BasketBlockModel<T extends BasketBlock> extends StandardBlockModel<T> {
+public class BlockModelBasket<T extends BlockBasket> extends BlockModelStandard<T> {
     protected IconCoordinate fillTexture = TextureRegistry.getTexture("minecraft:block/basket/fill");
-    public BasketBlockModel(Block block) {
+    public BlockModelBasket(Block block) {
         super(block);
     }
 
diff --git a/src/main/java/net/minecraft/client/render/block/model/BedBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelBed.java
similarity index 87%
rename from src/main/java/net/minecraft/client/render/block/model/BedBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelBed.java
index 6dc313dc7..518ce757f 100644
--- a/src/main/java/net/minecraft/client/render/block/model/BedBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelBed.java
@@ -3,13 +3,13 @@ package net.minecraft.client.render.block.model;
 import net.minecraft.client.render.texture.stitcher.IconCoordinate;
 import net.minecraft.client.render.texture.stitcher.TextureRegistry;
 import net.minecraft.client.render.tessellator.Tessellator;
-import net.minecraft.core.block.BedBlock;
+import net.minecraft.core.block.BlockBed;
 import net.minecraft.core.block.Block;
 import net.minecraft.core.util.helper.Side;
 
-public class BedBlockModel<T extends Block> extends StandardBlockModel<T> {
+public class BlockModelBed<T extends Block> extends BlockModelStandard<T> {
     protected IconCoordinate underTexture = TextureRegistry.getTexture("minecraft:block/bed/bottom");
-    public BedBlockModel(Block block) {
+    public BlockModelBed(Block block) {
         super(block);
         atlasIndices[0] = TextureRegistry.getTexture("minecraft:block/bed/foot_front");
         atlasIndices[1] = TextureRegistry.getTexture("minecraft:block/bed/foot_side");
@@ -26,8 +26,8 @@ public class BedBlockModel<T extends Block> extends StandardBlockModel<T> {
         renderBlocks.cache.setupCache(block, renderBlocks.blockAccess, x, y, z);
 
         final int meta = renderBlocks.blockAccess.getBlockMetadata(x, y, z);
-        final int direction = BedBlock.getDirection(meta);
-        final boolean isFootOfBed = BedBlock.isBlockFootOfBed(meta);
+        final int direction = BlockBed.getDirection(meta);
+        final boolean isFootOfBed = BlockBed.isBlockFootOfBed(meta);
 
         final double minY = block.minY;
         block.minY += 0.1875D;
@@ -49,7 +49,7 @@ public class BedBlockModel<T extends Block> extends StandardBlockModel<T> {
         renderSide(tessellator, block, x, y, z, Side.TOP, meta);
 
         renderBlocks.uvRotateTop = 0;
-        final int f17 = isFootOfBed ? BedBlock.headOfBedMap[BedBlock.footToHeadMap[direction]] : BedBlock.headOfBedMap[direction];
+        final int f17 = isFootOfBed ? BlockBed.headOfBedMap[BlockBed.footToHeadMap[direction]] : BlockBed.headOfBedMap[direction];
 
         if(f17 != 2 && (renderBlocks.renderAllFaces || shouldSideBeRendered(renderBlocks.blockAccess, x, y, z - 1, 2)))
         {
@@ -87,9 +87,9 @@ public class BedBlockModel<T extends Block> extends StandardBlockModel<T> {
         if(side == Side.BOTTOM) {
             return underTexture;
         }
-        int k = BedBlock.getDirection(data);
-        int l = BedBlock.bedDirection[k][side.getId()];
-        if(BedBlock.isBlockFootOfBed(data)) {
+        int k = BlockBed.getDirection(data);
+        int l = BlockBed.bedDirection[k][side.getId()];
+        if(BlockBed.isBlockFootOfBed(data)) {
             if(l == 2) {
                 return atlasIndices[3];
             }
diff --git a/src/main/java/net/minecraft/client/render/block/model/BrazierBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelBrazier.java
similarity index 93%
rename from src/main/java/net/minecraft/client/render/block/model/BrazierBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelBrazier.java
index 3d099b5f8..d23e965f9 100644
--- a/src/main/java/net/minecraft/client/render/block/model/BrazierBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelBrazier.java
@@ -5,19 +5,19 @@ import net.minecraft.client.render.texture.stitcher.TextureRegistry;
 import net.minecraft.client.render.tessellator.Tessellator;
 import net.minecraft.core.block.Block;
 import net.minecraft.core.block.Blocks;
-import net.minecraft.core.block.BrazierBlock;
+import net.minecraft.core.block.BlockBrazier;
 import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.world.WorldSource;
 import org.jetbrains.annotations.Nullable;
 import org.lwjgl.opengl.GL11;
 
-public class BrazierBlockModel<T extends BrazierBlock>
-    extends StandardBlockModel<T> {
+public class BlockModelBrazier<T extends BlockBrazier>
+    extends BlockModelStandard<T> {
     protected IconCoordinate sideTexture = TextureRegistry.getTexture("minecraft:block/brazier/side");
     protected IconCoordinate baseTexture = TextureRegistry.getTexture("minecraft:block/brazier/base");
-    protected StandardBlockModel<Block> fireModel = new FireBlockModel<>(Blocks.FIRE, true).withTextures("minecraft:block/fire");
+    protected BlockModelStandard<Block> fireModel = new BlockModelFire<>(Blocks.FIRE, true).withTextures("minecraft:block/fire");
 
-    public BrazierBlockModel(Block block) {
+    public BlockModelBrazier(Block block) {
         super(block);
     }
 
diff --git a/src/main/java/net/minecraft/client/render/block/model/CactusBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelCactus.java
similarity index 96%
rename from src/main/java/net/minecraft/client/render/block/model/CactusBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelCactus.java
index 0683630b1..17b00a8bc 100644
--- a/src/main/java/net/minecraft/client/render/block/model/CactusBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelCactus.java
@@ -7,8 +7,8 @@ import net.minecraft.core.util.helper.Side;
 import org.jetbrains.annotations.Nullable;
 import org.lwjgl.opengl.GL11;
 
-public class CactusBlockModel<T extends Block> extends StandardBlockModel<T> {
-    public CactusBlockModel(Block block) {
+public class BlockModelCactus<T extends Block> extends BlockModelStandard<T> {
+    public BlockModelCactus(Block block) {
         super(block);
     }
 
diff --git a/src/main/java/net/minecraft/client/render/block/model/CakeBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelCake.java
similarity index 87%
rename from src/main/java/net/minecraft/client/render/block/model/CakeBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelCake.java
index a947da4fa..8f3e9b25a 100644
--- a/src/main/java/net/minecraft/client/render/block/model/CakeBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelCake.java
@@ -5,9 +5,9 @@ import net.minecraft.client.render.texture.stitcher.TextureRegistry;
 import net.minecraft.core.block.Block;
 import net.minecraft.core.util.helper.Side;
 
-public class CakeBlockModel<T extends Block> extends StandardBlockModel<T> {
+public class BlockModelCake<T extends Block> extends BlockModelStandard<T> {
     protected IconCoordinate cakeInner = TextureRegistry.getTexture("minecraft:block/cake/inner");
-    public CakeBlockModel(Block block) {
+    public BlockModelCake(Block block) {
         super(block);
         float f = 0.0625F;
         float f1 = 0.5F;
diff --git a/src/main/java/net/minecraft/client/render/block/model/CandleBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelCandle.java
similarity index 97%
rename from src/main/java/net/minecraft/client/render/block/model/CandleBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelCandle.java
index d2feaf649..36486f348 100644
--- a/src/main/java/net/minecraft/client/render/block/model/CandleBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelCandle.java
@@ -5,8 +5,8 @@ import net.minecraft.client.render.tessellator.Tessellator;
 import net.minecraft.core.block.Block;
 import net.minecraft.core.util.helper.Side;
 
-public class CandleBlockModel<T extends Block> extends StandardBlockModel<T> {
-    public CandleBlockModel(Block block) {
+public class BlockModelCandle<T extends Block> extends BlockModelStandard<T> {
+    public BlockModelCandle(Block block) {
         super(block);
     }
 
diff --git a/src/main/java/net/minecraft/client/render/block/model/ChestBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelChest.java
similarity index 84%
rename from src/main/java/net/minecraft/client/render/block/model/ChestBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelChest.java
index 29727a4fe..07958e0e4 100644
--- a/src/main/java/net/minecraft/client/render/block/model/ChestBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelChest.java
@@ -3,12 +3,12 @@ package net.minecraft.client.render.block.model;
 import net.minecraft.client.render.texture.stitcher.IconCoordinate;
 import net.minecraft.client.render.texture.stitcher.TextureRegistry;
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.ChestBlock;
+import net.minecraft.core.block.BlockChest;
 import net.minecraft.core.util.helper.Axis;
 import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.world.WorldSource;
 
-public class ChestBlockModel<T extends Block> extends StandardBlockModel<T> {
+public class BlockModelChest<T extends Block> extends BlockModelStandard<T> {
     protected IconCoordinate chestFrontSingle;
     protected IconCoordinate chestFrontLeft;
     protected IconCoordinate chestFrontRight;
@@ -16,7 +16,7 @@ public class ChestBlockModel<T extends Block> extends StandardBlockModel<T> {
     protected IconCoordinate chestBackRight;
     protected IconCoordinate chestSide;
     protected IconCoordinate chestTop;
-    public ChestBlockModel(Block block, String rootKey) {
+    public BlockModelChest(Block block, String rootKey) {
         super(block);
         chestFrontSingle = TextureRegistry.getTexture(rootKey + "front");
         chestFrontLeft = TextureRegistry.getTexture(rootKey + "left_front");
@@ -35,15 +35,15 @@ public class ChestBlockModel<T extends Block> extends StandardBlockModel<T> {
             return chestTop;
         }
 
-        Side facing = ChestBlock.getDirectionFromMeta(meta).getSide();
-        ChestBlock.Type type = ChestBlock.getTypeFromMeta(meta);
+        Side facing = BlockChest.getDirectionFromMeta(meta).getSide();
+        BlockChest.Type type = BlockChest.getTypeFromMeta(meta);
 
-        if(type == ChestBlock.Type.SINGLE) {
+        if(type == BlockChest.Type.SINGLE) {
             if(side == facing) {
                 return chestFrontSingle;
             }
         }
-        if(type == ChestBlock.Type.LEFT) {
+        if(type == BlockChest.Type.LEFT) {
             if(side == facing) {
                 return chestFrontLeft;
             }
@@ -51,7 +51,7 @@ public class ChestBlockModel<T extends Block> extends StandardBlockModel<T> {
                 return chestBackRight;
             }
         }
-        if(type == ChestBlock.Type.RIGHT) {
+        if(type == BlockChest.Type.RIGHT) {
             if(side == facing) {
                 return chestFrontRight;
             }
diff --git a/src/main/java/net/minecraft/client/render/block/model/PaintedChestBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelChestPainted.java
similarity index 88%
rename from src/main/java/net/minecraft/client/render/block/model/PaintedChestBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelChestPainted.java
index 015412d8d..3404a4fcc 100644
--- a/src/main/java/net/minecraft/client/render/block/model/PaintedChestBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelChestPainted.java
@@ -3,13 +3,13 @@ package net.minecraft.client.render.block.model;
 import net.minecraft.client.render.texture.stitcher.IconCoordinate;
 import net.minecraft.client.render.texture.stitcher.TextureRegistry;
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.ChestBlock;
+import net.minecraft.core.block.BlockChest;
 import net.minecraft.core.util.helper.Axis;
 import net.minecraft.core.util.helper.DyeColor;
 import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.world.WorldSource;
 
-public class PaintedChestBlockModel<T extends Block> extends ChestBlockModel<T> {
+public class BlockModelChestPainted<T extends Block> extends BlockModelChest<T> {
     public static final IconCoordinate[][] texCoords = new IconCoordinate[DyeColor.COLOR_AMOUNT][];
     public static final int TEX_SINGLE_FRONT = 0;
     public static final int TEX_LEFT_FRONT = 1;
@@ -32,7 +32,7 @@ public class PaintedChestBlockModel<T extends Block> extends ChestBlockModel<T>
             texCoords[c.blockMeta][TEX_TOP] = TextureRegistry.getTexture(rootKey + "top");
         }
     }
-    public PaintedChestBlockModel(Block block) {
+    public BlockModelChestPainted(Block block) {
         super(block, "minecraft:block/chest/planks/");
     }
 
@@ -45,15 +45,15 @@ public class PaintedChestBlockModel<T extends Block> extends ChestBlockModel<T>
             return texCoords[color][6];
         }
 
-        Side facing = ChestBlock.getDirectionFromMeta(meta).getSide();
-        ChestBlock.Type type = ChestBlock.getTypeFromMeta(meta);
+        Side facing = BlockChest.getDirectionFromMeta(meta).getSide();
+        BlockChest.Type type = BlockChest.getTypeFromMeta(meta);
 
-        if(type == ChestBlock.Type.SINGLE) {
+        if(type == BlockChest.Type.SINGLE) {
             if(side == facing) {
                 return texCoords[color][TEX_SINGLE_FRONT];
             }
         }
-        if(type == ChestBlock.Type.LEFT) {
+        if(type == BlockChest.Type.LEFT) {
             if(side == facing) {
                 return texCoords[color][TEX_LEFT_FRONT];
             }
@@ -61,7 +61,7 @@ public class PaintedChestBlockModel<T extends Block> extends ChestBlockModel<T>
                 return texCoords[color][TEX_RIGHT_BACK];
             }
         }
-        if(type == ChestBlock.Type.RIGHT) {
+        if(type == BlockChest.Type.RIGHT) {
             if(side == facing) {
                 return texCoords[color][TEX_RIGHT_FRONT];
             }
diff --git a/src/main/java/net/minecraft/client/render/block/model/CropsPumpkinBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelCropsPumpkin.java
similarity index 96%
rename from src/main/java/net/minecraft/client/render/block/model/CropsPumpkinBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelCropsPumpkin.java
index 967fb26f0..4bf567ec0 100644
--- a/src/main/java/net/minecraft/client/render/block/model/CropsPumpkinBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelCropsPumpkin.java
@@ -7,7 +7,7 @@ import net.minecraft.client.render.tessellator.Tessellator;
 import net.minecraft.core.block.Block;
 import net.minecraft.core.util.helper.Side;
 
-public class CropsPumpkinBlockModel<T extends Block> extends StandardBlockModel<T> {
+public class BlockModelCropsPumpkin<T extends Block> extends BlockModelStandard<T> {
     public static final IconCoordinate[] GROWTH_STAGE_TEXTURES_TOP = {
             TextureRegistry.getTexture("minecraft:block/crops_pumpkin/stage1_top"),
             TextureRegistry.getTexture("minecraft:block/crops_pumpkin/stage2_top"),
@@ -23,7 +23,7 @@ public class CropsPumpkinBlockModel<T extends Block> extends StandardBlockModel<
 
     public static final IconCoordinate LEAF_TEXTURE = TextureRegistry.getTexture("minecraft:block/crops_pumpkin/stage0");
 
-    public CropsPumpkinBlockModel(Block block) {
+    public BlockModelCropsPumpkin(Block block) {
         super(block);
     }
 
diff --git a/src/main/java/net/minecraft/client/render/block/model/CropsWheatBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelCropsWheat.java
similarity index 95%
rename from src/main/java/net/minecraft/client/render/block/model/CropsWheatBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelCropsWheat.java
index d22ef58cc..5df1d6da5 100644
--- a/src/main/java/net/minecraft/client/render/block/model/CropsWheatBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelCropsWheat.java
@@ -5,11 +5,11 @@ import net.minecraft.client.render.texture.stitcher.IconCoordinate;
 import net.minecraft.client.render.texture.stitcher.TextureRegistry;
 import net.minecraft.client.render.tessellator.Tessellator;
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.CropsWheatBlock;
+import net.minecraft.core.block.BlockCropsWheat;
 import net.minecraft.core.util.helper.MathHelper;
 import net.minecraft.core.util.helper.Side;
 
-public class CropsWheatBlockModel<T extends Block> extends StandardBlockModel<T> {
+public class BlockModelCropsWheat<T extends Block> extends BlockModelStandard<T> {
     public final IconCoordinate[] growthStageTextures = {
             TextureRegistry.getTexture("minecraft:block/crops_wheat/stage0"),
             TextureRegistry.getTexture("minecraft:block/crops_wheat/stage1"),
@@ -21,9 +21,9 @@ public class CropsWheatBlockModel<T extends Block> extends StandardBlockModel<T>
             TextureRegistry.getTexture("minecraft:block/crops_wheat/stage7")
     };
 
-    public CropsWheatBlockModel(Block block) {
+    public BlockModelCropsWheat(Block block) {
         super(block);
-        assert growthStageTextures.length == CropsWheatBlock.MAX_GROWTH_STATE + 1 : "There must be a texture for each wheat growth stage!";
+        assert growthStageTextures.length == BlockCropsWheat.MAX_GROWTH_STATE + 1 : "There must be a texture for each wheat growth stage!";
     }
 
     @Override
diff --git a/src/main/java/net/minecraft/client/render/block/model/CrossedSquaresBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelCrossedSquares.java
similarity index 98%
rename from src/main/java/net/minecraft/client/render/block/model/CrossedSquaresBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelCrossedSquares.java
index c5876dba9..59349f711 100644
--- a/src/main/java/net/minecraft/client/render/block/model/CrossedSquaresBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelCrossedSquares.java
@@ -10,8 +10,8 @@ import net.minecraft.core.util.helper.Side;
 import org.jetbrains.annotations.Nullable;
 import org.lwjgl.opengl.GL11;
 
-public class CrossedSquaresBlockModel<T extends Block> extends StandardBlockModel<T> {
-    public CrossedSquaresBlockModel(Block block) {
+public class BlockModelCrossedSquares<T extends Block> extends BlockModelStandard<T> {
+    public BlockModelCrossedSquares(Block block) {
         super(block);
     }
     @Override
diff --git a/src/main/java/net/minecraft/client/render/block/model/BlockModelDispatcher.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelDispatcher.java
index d82b4aed1..c1627e09f 100644
--- a/src/main/java/net/minecraft/client/render/block/model/BlockModelDispatcher.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelDispatcher.java
@@ -13,7 +13,7 @@ public class BlockModelDispatcher
     {
         return instance;
     }
-    public static EmptyBlockModel modelEmpty = new EmptyBlockModel(null);
+    public static BlockModelEmpty modelEmpty = new BlockModelEmpty(null);
     public void addDispatch(BlockModel dispatchable)
     {
         addDispatch(dispatchable.block, dispatchable);
@@ -34,441 +34,441 @@ public class BlockModelDispatcher
     private BlockModelDispatcher()
     {
         instance = this;
-        addDispatch(new StandardBlockModel<>(Blocks.STONE).withTextures("minecraft:block/stone"));
-        addDispatch(new StandardBlockModel<>(Blocks.BASALT).withTextures("minecraft:block/basalt"));
-        addDispatch(new StandardBlockModel<>(Blocks.LIMESTONE).withTextures("minecraft:block/limestone"));
-        addDispatch(new StandardBlockModel<>(Blocks.GRANITE).withTextures("minecraft:block/granite"));
-        addDispatch(new StandardBlockModel<>(Blocks.MARBLE).withTextures("minecraft:block/marble"));
-        addDispatch(new StandardBlockModel<>(Blocks.SLATE).withTextures("minecraft:block/slate_top", "minecraft:block/slate_side"));
-        addDispatch(new StandardBlockModel<>(Blocks.PERMAFROST).withTextures("minecraft:block/permafrost"));
-
-        addDispatch(new StandardBlockModel<>(Blocks.COBBLE_STONE).withTextures("minecraft:block/cobbled_stone"));
-        addDispatch(new StandardBlockModel<>(Blocks.COBBLE_STONE_MOSSY).withTextures("minecraft:block/cobbled_stone_mossy"));
-        addDispatch(new StandardBlockModel<>(Blocks.COBBLE_BASALT).withTextures("minecraft:block/cobbled_basalt"));
-        addDispatch(new StandardBlockModel<>(Blocks.COBBLE_LIMESTONE).withTextures("minecraft:block/cobbled_limestone"));
-        addDispatch(new StandardBlockModel<>(Blocks.COBBLE_GRANITE).withTextures("minecraft:block/cobbled_granite"));
-        addDispatch(new StandardBlockModel<>(Blocks.COBBLE_PERMAFROST).withTextures("minecraft:block/cobbled_permafrost"));
-
-        addDispatch(new StandardBlockModel<>(Blocks.STONE_POLISHED).withTextures("minecraft:block/polished_stone_top", "minecraft:block/polished_stone_side"));
-        addDispatch(new StandardBlockModel<>(Blocks.GRANITE_POLISHED).withTextures("minecraft:block/polished_granite_top", "minecraft:block/polished_granite_side"));
-        addDispatch(new StandardBlockModel<>(Blocks.LIMESTONE_POLISHED).withTextures("minecraft:block/polished_limestone_top", "minecraft:block/polished_limestone_side"));
-        addDispatch(new StandardBlockModel<>(Blocks.BASALT_POLISHED).withTextures("minecraft:block/polished_basalt_top", "minecraft:block/polished_basalt_side"));
-        addDispatch(new StandardBlockModel<>(Blocks.SLATE_POLISHED).withTextures("minecraft:block/polished_slate_top", "minecraft:block/polished_slate_side"));
-        addDispatch(new StandardBlockModel<>(Blocks.PERMAFROST_POLISHED).withTextures("minecraft:block/polished_permafrost_top", "minecraft:block/polished_permafrost_side"));
-        addDispatch(new StandardBlockModel<>(Blocks.NETHERRACK_POLISHED).withTextures("minecraft:block/polished_netherrack_top", "minecraft:block/polished_netherrack_side"));
-
-        addDispatch(new AxisAlignedBlockModel<>(Blocks.PILLAR_MARBLE).withTextures("minecraft:block/pillar_marble/top", "minecraft:block/pillar_marble/side"));
-        addDispatch(new StandardBlockModel<>(Blocks.CAPSTONE_MARBLE).withTextures("minecraft:block/capstone_marble/top", "minecraft:block/capstone_marble/side"));
-
-        addDispatch(new StandardBlockModel<>(Blocks.SANDSTONE).withTextures("minecraft:block/sandstone/top", "minecraft:block/sandstone/bottom", "minecraft:block/sandstone/side"));
-
-        addDispatch(new StandardBlockModel<>(Blocks.STONE_CARVED).withTextures("minecraft:block/polished_stone_top", "minecraft:block/carved_stone"));
-        addDispatch(new StandardBlockModel<>(Blocks.GRANITE_CARVED).withTextures("minecraft:block/polished_granite_top", "minecraft:block/carved_granite"));
-        addDispatch(new StandardBlockModel<>(Blocks.LIMESTONE_CARVED).withTextures("minecraft:block/polished_limestone_top", "minecraft:block/carved_limestone"));
-        addDispatch(new StandardBlockModel<>(Blocks.BASALT_CARVED).withTextures("minecraft:block/polished_basalt_top", "minecraft:block/carved_basalt"));
-        addDispatch(new StandardBlockModel<>(Blocks.PERMAFROST_CARVED).withTextures("minecraft:block/polished_permafrost_top", "minecraft:block/carved_permafrost"));
-        addDispatch(new StandardBlockModel<>(Blocks.NETHERRACK_CARVED).withTextures("minecraft:block/polished_netherrack_top", "minecraft:block/carved_netherrack"));
-
-        addDispatch(new StandardBlockModel<>(Blocks.PLANKS_OAK).withTextures("minecraft:block/planks/oak"));
-        addDispatch(new PlanksPaintedBlockModel<>(Blocks.PLANKS_OAK_PAINTED));
-
-        addDispatch(new TorchBlockModel<>(Blocks.TORCH_COAL).withTextures("minecraft:block/torch_coal"));
-
-        addDispatch(new LadderBlockModel<>(Blocks.LADDER_OAK).withTextures("minecraft:block/ladder"));
-
-        addDispatch(new FenceBlockModel<>(Blocks.FENCE_PLANKS_OAK).withTextures("minecraft:block/planks/oak"));
-        addDispatch(new FencePaintedBlockModel<>(Blocks.FENCE_PLANKS_OAK_PAINTED));
-
-        addDispatch(new FenceGateBlockModel<>(Blocks.FENCE_GATE_PLANKS_OAK).withTextures("minecraft:block/planks/oak"));
-        addDispatch(new FenceGatePaintedBlockModel<>(Blocks.FENCE_GATE_PLANKS_OAK_PAINTED));
-
-        addDispatch(new StandardBlockModel<>(Blocks.BOOKSHELF_PLANKS_OAK).withTextures("minecraft:block/bookshelf/top", "minecraft:block/bookshelf/side"));
-
-        addDispatch(new WoolBlockModel<>(Blocks.WOOL));
-        addDispatch(new RopeBlockModel<>(Blocks.ROPE).withTextures("minecraft:block/rope"));
-
-        addDispatch(new StandardBlockModel<>(Blocks.BRICK_CLAY).withTextures("minecraft:block/brick_clay"));
-        addDispatch(new StandardBlockModel<>(Blocks.BRICK_STONE_POLISHED).withTextures("minecraft:block/brick_polished_stone"));
-        addDispatch(new StandardBlockModel<>(Blocks.BRICK_STONE_POLISHED_MOSSY).withTextures("minecraft:block/brick_polished_stone_mossy"));
-        addDispatch(new StandardBlockModel<>(Blocks.BRICK_SANDSTONE).withTextures("minecraft:block/brick_sandstone"));
-        addDispatch(new StandardBlockModel<>(Blocks.BRICK_GOLD).withTextures("minecraft:block/brick_gold"));
-        addDispatch(new StandardBlockModel<>(Blocks.BRICK_LAPIS).withTextures("minecraft:block/brick_lapis"));
-        addDispatch(new StandardBlockModel<>(Blocks.BRICK_BASALT).withTextures("minecraft:block/brick_basalt"));
-        addDispatch(new StandardBlockModel<>(Blocks.BRICK_LIMESTONE).withTextures("minecraft:block/brick_limestone"));
-        addDispatch(new StandardBlockModel<>(Blocks.BRICK_GRANITE).withTextures("minecraft:block/brick_granite"));
-        addDispatch(new StandardBlockModel<>(Blocks.BRICK_MARBLE).withTextures("minecraft:block/brick_marble"));
-        addDispatch(new StandardBlockModel<>(Blocks.BRICK_SLATE).withTextures("minecraft:block/brick_slate"));
-        addDispatch(new StandardBlockModel<>(Blocks.BRICK_STONE).withTextures("minecraft:block/brick_stone"));
-        addDispatch(new StandardBlockModel<>(Blocks.BRICK_PERMAFROST).withTextures("minecraft:block/brick_permafrost"));
-        addDispatch(new StandardBlockModel<>(Blocks.BRICK_IRON).withTextures("minecraft:block/brick_iron"));
-        addDispatch(new StandardBlockModel<>(Blocks.BRICK_STEEL).withTextures("minecraft:block/brick_steel"));
-
-        addDispatch(new SlabBlockModel<>(Blocks.SLAB_PLANKS_OAK));
-        addDispatch(new SlabBlockModel<>(Blocks.SLAB_COBBLE_STONE));
-        addDispatch(new SlabBlockModel<>(Blocks.SLAB_SANDSTONE));
-        addDispatch(new SlabBlockModel<>(Blocks.SLAB_BRICK_STONE_POLISHED));
-        addDispatch(new SlabBlockModel<>(Blocks.SLAB_STONE_POLISHED));
-        addDispatch(new SlabBlockModel<>(Blocks.SLAB_BRICK_MARBLE));
-        addDispatch(new SlabBlockModel<>(Blocks.SLAB_BRICK_CLAY));
-        addDispatch(new SlabMarbleBlockModel<>(Blocks.SLAB_CAPSTONE_MARBLE));
-        addDispatch(new SlabBlockModel<>(Blocks.SLAB_COBBLE_BASALT));
-        addDispatch(new SlabBlockModel<>(Blocks.SLAB_COBBLE_LIMESTONE));
-        addDispatch(new SlabBlockModel<>(Blocks.SLAB_COBBLE_GRANITE));
-        addDispatch(new SlabBlockModel<>(Blocks.SLAB_BRICK_BASALT));
-        addDispatch(new SlabBlockModel<>(Blocks.SLAB_BRICK_LIMESTONE));
-        addDispatch(new SlabBlockModel<>(Blocks.SLAB_BRICK_GRANITE));
-        addDispatch(new SlabPaintedBlockModel<>(Blocks.SLAB_PLANKS_PAINTED));
-        addDispatch(new SlabBlockModel<>(Blocks.SLAB_BRICK_SLATE));
-        addDispatch(new SlabBlockModel<>(Blocks.SLAB_BRICK_STONE));
-        addDispatch(new SlabBlockModel<>(Blocks.SLAB_GRANITE_POLISHED));
-        addDispatch(new SlabBlockModel<>(Blocks.SLAB_LIMESTONE_POLISHED));
-        addDispatch(new SlabBlockModel<>(Blocks.SLAB_BASALT_POLISHED));
-        addDispatch(new SlabBlockModel<>(Blocks.SLAB_PERMAFROST_POLISHED));
-        addDispatch(new SlabBlockModel<>(Blocks.SLAB_COBBLE_PERMAFROST));
-        addDispatch(new SlabBlockModel<>(Blocks.SLAB_BRICK_SANDSTONE));
-        addDispatch(new SlabBlockModel<>(Blocks.SLAB_BRICK_PERMAFROST));
-
-        addDispatch(new StairsBlockModel<>(Blocks.STAIRS_PLANKS_OAK));
-        addDispatch(new StairsBlockModel<>(Blocks.STAIRS_COBBLE_STONE));
-        addDispatch(new StairsBlockModel<>(Blocks.STAIRS_BRICK_STONE_POLISHED));
-        addDispatch(new StairsBlockModel<>(Blocks.STAIRS_BRICK_MARBLE));
-        addDispatch(new StairsBlockModel<>(Blocks.STAIRS_COBBLE_BASALT));
-        addDispatch(new StairsBlockModel<>(Blocks.STAIRS_COBBLE_LIMESTONE));
-        addDispatch(new StairsBlockModel<>(Blocks.STAIRS_COBBLE_GRANITE));
-        addDispatch(new StairsBlockModel<>(Blocks.STAIRS_BRICK_BASALT));
-        addDispatch(new StairsBlockModel<>(Blocks.STAIRS_BRICK_LIMESTONE));
-        addDispatch(new StairsBlockModel<>(Blocks.STAIRS_BRICK_GRANITE));
-        addDispatch(new StairsBlockModel<>(Blocks.STAIRS_BRICK_CLAY));
-        addDispatch(new StairsPaintedBlockModel<>(Blocks.STAIRS_PLANKS_PAINTED));
-        addDispatch(new StairsBlockModel<>(Blocks.STAIRS_BRICK_SLATE));
-        addDispatch(new StairsBlockModel<>(Blocks.STAIRS_BRICK_STONE));
-        addDispatch(new StairsBlockModel<>(Blocks.STAIRS_SANDSTONE));
-        addDispatch(new StairsBlockModel<>(Blocks.STAIRS_COBBLE_PERMAFROST));
-        addDispatch(new StairsBlockModel<>(Blocks.STAIRS_BRICK_SANDSTONE));
-        addDispatch(new StairsBlockModel<>(Blocks.STAIRS_BRICK_PERMAFROST));
-
-        addDispatch(new StandardBlockModel<>(Blocks.OBSIDIAN).withTextures("minecraft:block/obsidian"));
-
-        addDispatch(new TransparentBlockModel<>(Blocks.GLASS, false).withTextures("minecraft:block/glass"));
-        addDispatch(new TransparentBlockModel<>(Blocks.GLASS_TINTED, false).withTextures("minecraft:block/glass_tinted"));
-        addDispatch(new TransparentBlockModel<>(Blocks.GLASS_STEEL, false).withTextures("minecraft:block/glass_steel"));
-
-        addDispatch(new GrassBlockModel<>(Blocks.GRASS).withTextures("minecraft:block/grass/top", "minecraft:block/grass/bottom", "minecraft:block/grass/side"));
-        addDispatch(new StandardBlockModel<>(Blocks.GRASS_RETRO).withTextures("minecraft:block/grass_retro/top", "minecraft:block/grass_retro/bottom", "minecraft:block/grass_retro/side"));
-        addDispatch(new StandardBlockModel<>(Blocks.GRASS_SCORCHED).withTextures("minecraft:block/grass_scorched/top", "minecraft:block/grass_scorched/bottom", "minecraft:block/grass_scorched/side"));
-
-        addDispatch(new StandardBlockModel<>(Blocks.PATH_DIRT).withTextures("minecraft:block/grass_path/top", "minecraft:block/grass_path/bottom", "minecraft:block/grass_path/side"));
-
-        addDispatch(new StandardBlockModel<>(Blocks.DIRT).withTextures("minecraft:block/dirt"));
-        addDispatch(new StandardBlockModel<>(Blocks.DIRT_SCORCHED).withTextures("minecraft:block/dirt_scorched"));
-        addDispatch(new StandardBlockModel<>(Blocks.DIRT_SCORCHED_RICH).withTextures("minecraft:block/dirt_scorched_rich"));
-
-        addDispatch(new StandardBlockModel<>(Blocks.MUD).withTextures("minecraft:block/mud"));
-        addDispatch(new StandardBlockModel<>(Blocks.MUD_BAKED).withTextures("minecraft:block/mud_baked"));
-
-        addDispatch(new StandardBlockModel<>(Blocks.SPONGE_DRY).withTextures("minecraft:block/sponge"));
-        addDispatch(new StandardBlockModel<>(Blocks.SPONGE_WET).withTextures("minecraft:block/sponge_wet"));
-        addDispatch(new PumiceBlockModel<>(Blocks.PUMICE_DRY).withTextures("minecraft:block/pumice"));
-        addDispatch(new PumiceBlockModel<>(Blocks.PUMICE_WET).withTextures("minecraft:block/pumice_overlay"));
-
-        addDispatch(new MossyStoneBlockModel<>(Blocks.MOSS_STONE).withTextures("minecraft:block/stone"));
-        addDispatch(new MossyStoneBlockModel<>(Blocks.MOSS_BASALT).withTextures("minecraft:block/basalt"));
-        addDispatch(new MossyStoneBlockModel<>(Blocks.MOSS_LIMESTONE).withTextures("minecraft:block/limestone"));
-        addDispatch(new MossyStoneBlockModel<>(Blocks.MOSS_GRANITE).withTextures("minecraft:block/granite"));
-
-        addDispatch(new StandardBlockModel<>(Blocks.SAND).withTextures("minecraft:block/sand"));
-        addDispatch(new StandardBlockModel<>(Blocks.GRAVEL).withTextures("minecraft:block/gravel"));
-
-        addDispatch(new StandardBlockModel<>(Blocks.BEDROCK).withTextures("minecraft:block/bedrock"));
-        addDispatch(new FullRotatableBlockModel<>(Blocks.BONESHALE).withTextures("minecraft:block/bone_shale/top", "minecraft:block/bone_shale/bottom", "minecraft:block/bone_shale/side"));
-
-        addDispatch(new FluidBlockModel<>(Blocks.FLUID_WATER_FLOWING).withTextures("minecraft:block/water_still", "minecraft:block/water_flowing", "minecraft:block/water_flowing"));
-        addDispatch(new FluidBlockModel<>(Blocks.FLUID_WATER_STILL).withTextures("minecraft:block/water_still", "minecraft:block/water_flowing"));
-        addDispatch(new FluidBlockModel<>(Blocks.FLUID_LAVA_FLOWING).withTextures("minecraft:block/lava_still", "minecraft:block/lava_flowing", "minecraft:block/lava_flowing"));
-        addDispatch(new FluidBlockModel<>(Blocks.FLUID_LAVA_STILL).withTextures("minecraft:block/lava_still", "minecraft:block/lava_flowing"));
-
-        addDispatch(new AxisAlignedBlockModel<>(Blocks.LOG_OAK).withTextures("minecraft:block/log/oak_top", "minecraft:block/log/oak_side"));
-        addDispatch(new AxisAlignedBlockModel<>(Blocks.LOG_PINE).withTextures("minecraft:block/log/pine_top", "minecraft:block/log/pine_side"));
-        addDispatch(new AxisAlignedBlockModel<>(Blocks.LOG_BIRCH).withTextures("minecraft:block/log/birch_top", "minecraft:block/log/birch_side"));
-        addDispatch(new AxisAlignedBlockModel<>(Blocks.LOG_CHERRY).withTextures("minecraft:block/log/cherry_top", "minecraft:block/log/cherry_side"));
-        addDispatch(new AxisAlignedBlockModel<>(Blocks.LOG_EUCALYPTUS).withTextures("minecraft:block/log/eucalyptus_top", "minecraft:block/log/eucalyptus_side"));
-        addDispatch(new AxisAlignedBlockModel<>(Blocks.LOG_OAK_MOSSY).withTextures("minecraft:block/log/oak_mossy_top", "minecraft:block/log/oak_mossy_side"));
-        addDispatch(new AxisAlignedBlockModel<>(Blocks.LOG_THORN).withTextures("minecraft:block/log/thorn_top", "minecraft:block/log/thorn_side"));
-        addDispatch(new AxisAlignedBlockModel<>(Blocks.LOG_PALM).withTextures("minecraft:block/log/palm_top", "minecraft:block/log/palm_side"));
-
-        addDispatch(new LeavesBlockModel<>(Blocks.LEAVES_OAK, "minecraft:block/leaves/oak"));
-        addDispatch(new LeavesBlockModel<>(Blocks.LEAVES_OAK_RETRO, "minecraft:block/leaves/oak_retro"));
-        addDispatch(new LeavesBlockModel<>(Blocks.LEAVES_PINE, "minecraft:block/leaves/pine"));
-        addDispatch(new LeavesBlockModel<>(Blocks.LEAVES_BIRCH, "minecraft:block/leaves/birch"));
-        addDispatch(new LeavesBlockModel<>(Blocks.LEAVES_CHERRY, "minecraft:block/leaves/cherry"));
-        addDispatch(new LeavesBlockModel<>(Blocks.LEAVES_EUCALYPTUS, "minecraft:block/leaves/eucalyptus"));
-        addDispatch(new LeavesBlockModel<>(Blocks.LEAVES_SHRUB, "minecraft:block/leaves/shrub"));
-        addDispatch(new FloweringCherryLeavesBlockModel<>(Blocks.LEAVES_CHERRY_FLOWERING));
-        addDispatch(new CacaoLeavesBlockModel<>(Blocks.LEAVES_CACAO));
-        addDispatch(new LeavesBlockModel<>(Blocks.LEAVES_THORN, "minecraft:block/leaves/caatinga"));
-        addDispatch(new LeavesBlockModel<>(Blocks.LEAVES_PALM, "minecraft:block/leaves/palm"));
-
-        addDispatch(new CrossedSquaresBlockModel<>(Blocks.SAPLING_OAK).withTextures("minecraft:block/sapling/oak"));
-        addDispatch(new CrossedSquaresBlockModel<>(Blocks.SAPLING_OAK_RETRO).withTextures("minecraft:block/sapling/oak_retro"));
-        addDispatch(new CrossedSquaresBlockModel<>(Blocks.SAPLING_PINE).withTextures("minecraft:block/sapling/pine"));
-        addDispatch(new CrossedSquaresBlockModel<>(Blocks.SAPLING_BIRCH).withTextures("minecraft:block/sapling/birch"));
-        addDispatch(new CrossedSquaresBlockModel<>(Blocks.SAPLING_CHERRY).withTextures("minecraft:block/sapling/cherry"));
-        addDispatch(new CrossedSquaresBlockModel<>(Blocks.SAPLING_EUCALYPTUS).withTextures("minecraft:block/sapling/eucalyptus"));
-        addDispatch(new CrossedSquaresBlockModel<>(Blocks.SAPLING_SHRUB).withTextures("minecraft:block/sapling/shrub"));
-        addDispatch(new CrossedSquaresBlockModel<>(Blocks.SAPLING_CACAO).withTextures("minecraft:block/sapling/cacao"));
-        addDispatch(new CrossedSquaresBlockModel<>(Blocks.SAPLING_THORN).withTextures("minecraft:block/sapling/thorn"));
-        addDispatch(new CrossedSquaresBlockModel<>(Blocks.SAPLING_PALM).withTextures("minecraft:block/sapling/palm"));
-
-        addDispatch(new CrossedSquaresBlockModel<>(Blocks.TALLGRASS).withTextures("minecraft:block/tallgrass"));
-        addDispatch(new CrossedSquaresBlockModel<>(Blocks.TALLGRASS_FERN).withTextures("minecraft:block/fern"));
-        addDispatch(new CrossedSquaresBlockModel<>(Blocks.DEADBUSH).withTextures("minecraft:block/deadbush"));
-        addDispatch(new CrossedSquaresBlockModel<>(Blocks.SPINIFEX).withTextures("minecraft:block/spinifex"));
-        addDispatch(new AlgaeBlockModel<>(Blocks.ALGAE).withTextures("minecraft:block/algae").withCustomItemBounds(0.0f, 0.01f, 0.0f, 1.0f, 0.0125f, 1.0f));
-
-        addDispatch(new StackedFlowerBlockModel<>(Blocks.FLOWER_YELLOW, "minecraft:block/flower_yellow/"));
-        addDispatch(new StackedFlowerBlockModel<>(Blocks.FLOWER_RED, "minecraft:block/flower_red/"));
-        addDispatch(new StackedFlowerBlockModel<>(Blocks.FLOWER_PINK, "minecraft:block/flower_pink/"));
-        addDispatch(new StackedFlowerBlockModel<>(Blocks.FLOWER_PURPLE, "minecraft:block/flower_purple/"));
-        addDispatch(new StackedFlowerBlockModel<>(Blocks.FLOWER_LIGHT_BLUE, "minecraft:block/flower_lightblue/"));
-        addDispatch(new StackedFlowerBlockModel<>(Blocks.FLOWER_ORANGE, "minecraft:block/flower_orange/"));
-
-        addDispatch(new CrossedSquaresBlockModel<>(Blocks.MUSHROOM_BROWN).withTextures("minecraft:block/mushroom_brown"));
-        addDispatch(new CrossedSquaresBlockModel<>(Blocks.MUSHROOM_RED).withTextures("minecraft:block/mushroom_red"));
-
-        addDispatch(new StandardBlockModel<>(Blocks.ORE_COAL_STONE).withTextures("minecraft:block/ore/coal/stone"));
-        addDispatch(new StandardBlockModel<>(Blocks.ORE_COAL_BASALT).withTextures("minecraft:block/ore/coal/basalt"));
-        addDispatch(new StandardBlockModel<>(Blocks.ORE_COAL_LIMESTONE).withTextures("minecraft:block/ore/coal/limestone"));
-        addDispatch(new StandardBlockModel<>(Blocks.ORE_COAL_GRANITE).withTextures("minecraft:block/ore/coal/granite"));
-        addDispatch(new StandardBlockModel<>(Blocks.ORE_COAL_PERMAFROST).withTextures("minecraft:block/ore/coal/permafrost"));
-
-        addDispatch(new StandardBlockModel<>(Blocks.ORE_IRON_STONE).withTextures("minecraft:block/ore/iron/stone"));
-        addDispatch(new StandardBlockModel<>(Blocks.ORE_IRON_BASALT).withTextures("minecraft:block/ore/iron/basalt"));
-        addDispatch(new StandardBlockModel<>(Blocks.ORE_IRON_LIMESTONE).withTextures("minecraft:block/ore/iron/limestone"));
-        addDispatch(new StandardBlockModel<>(Blocks.ORE_IRON_GRANITE).withTextures("minecraft:block/ore/iron/granite"));
-        addDispatch(new StandardBlockModel<>(Blocks.ORE_IRON_PERMAFROST).withTextures("minecraft:block/ore/iron/permafrost"));
-
-        addDispatch(new StandardBlockModel<>(Blocks.ORE_GOLD_STONE).withTextures("minecraft:block/ore/gold/stone"));
-        addDispatch(new StandardBlockModel<>(Blocks.ORE_GOLD_BASALT).withTextures("minecraft:block/ore/gold/basalt"));
-        addDispatch(new StandardBlockModel<>(Blocks.ORE_GOLD_LIMESTONE).withTextures("minecraft:block/ore/gold/limestone"));
-        addDispatch(new StandardBlockModel<>(Blocks.ORE_GOLD_GRANITE).withTextures("minecraft:block/ore/gold/granite"));
-        addDispatch(new StandardBlockModel<>(Blocks.ORE_GOLD_PERMAFROST).withTextures("minecraft:block/ore/gold/permafrost"));
-
-        addDispatch(new StandardBlockModel<>(Blocks.ORE_LAPIS_STONE).withTextures("minecraft:block/ore/lapis/stone"));
-        addDispatch(new StandardBlockModel<>(Blocks.ORE_LAPIS_BASALT).withTextures("minecraft:block/ore/lapis/basalt"));
-        addDispatch(new StandardBlockModel<>(Blocks.ORE_LAPIS_LIMESTONE).withTextures("minecraft:block/ore/lapis/limestone"));
-        addDispatch(new StandardBlockModel<>(Blocks.ORE_LAPIS_GRANITE).withTextures("minecraft:block/ore/lapis/granite"));
-        addDispatch(new StandardBlockModel<>(Blocks.ORE_LAPIS_PERMAFROST).withTextures("minecraft:block/ore/lapis/permafrost"));
-
-        addDispatch(new StandardBlockModel<>(Blocks.ORE_REDSTONE_STONE).withTextures("minecraft:block/ore/redstone/stone"));
-        addDispatch(new StandardBlockModel<>(Blocks.ORE_REDSTONE_BASALT).withTextures("minecraft:block/ore/redstone/basalt"));
-        addDispatch(new StandardBlockModel<>(Blocks.ORE_REDSTONE_LIMESTONE).withTextures("minecraft:block/ore/redstone/limestone"));
-        addDispatch(new StandardBlockModel<>(Blocks.ORE_REDSTONE_GRANITE).withTextures("minecraft:block/ore/redstone/granite"));
-        addDispatch(new StandardBlockModel<>(Blocks.ORE_REDSTONE_PERMAFROST).withTextures("minecraft:block/ore/redstone/permafrost"));
-
-        addDispatch(new StandardBlockModel<>(Blocks.ORE_REDSTONE_GLOWING_STONE).withTextures("minecraft:block/ore/redstone/stone").withOverbrightTexture("minecraft:block/ore/redstone/overlay"));
-        addDispatch(new StandardBlockModel<>(Blocks.ORE_REDSTONE_GLOWING_BASALT).withTextures("minecraft:block/ore/redstone/basalt").withOverbrightTexture("minecraft:block/ore/redstone/overlay"));
-        addDispatch(new StandardBlockModel<>(Blocks.ORE_REDSTONE_GLOWING_LIMESTONE).withTextures("minecraft:block/ore/redstone/limestone").withOverbrightTexture("minecraft:block/ore/redstone/overlay"));
-        addDispatch(new StandardBlockModel<>(Blocks.ORE_REDSTONE_GLOWING_GRANITE).withTextures("minecraft:block/ore/redstone/granite").withOverbrightTexture("minecraft:block/ore/redstone/overlay"));
-        addDispatch(new StandardBlockModel<>(Blocks.ORE_REDSTONE_GLOWING_PERMAFROST).withTextures("minecraft:block/ore/redstone/permafrost").withOverbrightTexture("minecraft:block/ore/redstone/overlay"));
-
-        addDispatch(new StandardBlockModel<>(Blocks.ORE_DIAMOND_STONE).withTextures("minecraft:block/ore/diamond/stone"));
-        addDispatch(new StandardBlockModel<>(Blocks.ORE_DIAMOND_BASALT).withTextures("minecraft:block/ore/diamond/basalt"));
-        addDispatch(new StandardBlockModel<>(Blocks.ORE_DIAMOND_LIMESTONE).withTextures("minecraft:block/ore/diamond/limestone"));
-        addDispatch(new StandardBlockModel<>(Blocks.ORE_DIAMOND_GRANITE).withTextures("minecraft:block/ore/diamond/granite"));
-        addDispatch(new StandardBlockModel<>(Blocks.ORE_DIAMOND_PERMAFROST).withTextures("minecraft:block/ore/diamond/permafrost"));
-
-        addDispatch(new StandardBlockModel<>(Blocks.ORE_NETHERCOAL_NETHERRACK).withTextures("minecraft:block/ore/nethercoal/netherrack").withOverbrightTexture("minecraft:block/ore/nethercoal/netherrack_overlay"));
-
-        addDispatch(new StandardBlockModel<>(Blocks.BLOCK_COAL).withTextures("minecraft:block/block_coal"));
-        addDispatch(new StandardBlockModel<>(Blocks.BLOCK_IRON).withTextures("minecraft:block/block_iron/top", "minecraft:block/block_iron/bottom", "minecraft:block/block_iron/side"));
-        addDispatch(new StandardBlockModel<>(Blocks.BLOCK_GOLD).withTextures("minecraft:block/block_gold/top", "minecraft:block/block_gold/bottom", "minecraft:block/block_gold/side"));
-        addDispatch(new StandardBlockModel<>(Blocks.BLOCK_LAPIS).withTextures("minecraft:block/block_lapis"));
-        addDispatch(new StandardBlockModel<>(Blocks.BLOCK_REDSTONE).withTextures("minecraft:block/block_redstone"));
-        addDispatch(new StandardBlockModel<>(Blocks.BLOCK_DIAMOND).withTextures("minecraft:block/block_diamond/top", "minecraft:block/block_diamond/bottom", "minecraft:block/block_diamond/side"));
-        addDispatch(new StandardBlockModel<>(Blocks.BLOCK_NETHER_COAL).withTextures("minecraft:block/block_nethercoal").withOverbrightTexture("minecraft:block/block_nethercoal_overlay"));
-        addDispatch(new StandardBlockModel<>(Blocks.BLOCK_STEEL).withTextures("minecraft:block/block_steel/top", "minecraft:block/block_steel/bottom", "minecraft:block/block_steel/side"));
-        addDispatch(new StandardBlockModel<>(Blocks.BLOCK_QUARTZ).withTextures("minecraft:block/block_quartz"));
-        addDispatch(new StandardBlockModel<>(Blocks.BLOCK_OLIVINE).withTextures("minecraft:block/block_olivine"));
-        addDispatch(new StandardBlockModel<>(Blocks.BLOCK_CHARCOAL).withTextures("minecraft:block/block_charcoal"));
-
-        addDispatch(new RedstoneWireBlockModel<>(Blocks.WIRE_REDSTONE));
-
-        addDispatch(new TorchRedstoneBlockModel(Blocks.TORCH_REDSTONE_IDLE).withTextures("minecraft:block/torch_redstone_idle"));
-        addDispatch(new TorchRedstoneBlockModel(Blocks.TORCH_REDSTONE_ACTIVE).withTextures("minecraft:block/torch_redstone_active"));
+        addDispatch(new BlockModelStandard<>(Blocks.STONE).withTextures("minecraft:block/stone"));
+        addDispatch(new BlockModelStandard<>(Blocks.BASALT).withTextures("minecraft:block/basalt"));
+        addDispatch(new BlockModelStandard<>(Blocks.LIMESTONE).withTextures("minecraft:block/limestone"));
+        addDispatch(new BlockModelStandard<>(Blocks.GRANITE).withTextures("minecraft:block/granite"));
+        addDispatch(new BlockModelStandard<>(Blocks.MARBLE).withTextures("minecraft:block/marble"));
+        addDispatch(new BlockModelStandard<>(Blocks.SLATE).withTextures("minecraft:block/slate_top", "minecraft:block/slate_side"));
+        addDispatch(new BlockModelStandard<>(Blocks.PERMAFROST).withTextures("minecraft:block/permafrost"));
+
+        addDispatch(new BlockModelStandard<>(Blocks.COBBLE_STONE).withTextures("minecraft:block/cobbled_stone"));
+        addDispatch(new BlockModelStandard<>(Blocks.COBBLE_STONE_MOSSY).withTextures("minecraft:block/cobbled_stone_mossy"));
+        addDispatch(new BlockModelStandard<>(Blocks.COBBLE_BASALT).withTextures("minecraft:block/cobbled_basalt"));
+        addDispatch(new BlockModelStandard<>(Blocks.COBBLE_LIMESTONE).withTextures("minecraft:block/cobbled_limestone"));
+        addDispatch(new BlockModelStandard<>(Blocks.COBBLE_GRANITE).withTextures("minecraft:block/cobbled_granite"));
+        addDispatch(new BlockModelStandard<>(Blocks.COBBLE_PERMAFROST).withTextures("minecraft:block/cobbled_permafrost"));
+
+        addDispatch(new BlockModelStandard<>(Blocks.STONE_POLISHED).withTextures("minecraft:block/polished_stone_top", "minecraft:block/polished_stone_side"));
+        addDispatch(new BlockModelStandard<>(Blocks.GRANITE_POLISHED).withTextures("minecraft:block/polished_granite_top", "minecraft:block/polished_granite_side"));
+        addDispatch(new BlockModelStandard<>(Blocks.LIMESTONE_POLISHED).withTextures("minecraft:block/polished_limestone_top", "minecraft:block/polished_limestone_side"));
+        addDispatch(new BlockModelStandard<>(Blocks.BASALT_POLISHED).withTextures("minecraft:block/polished_basalt_top", "minecraft:block/polished_basalt_side"));
+        addDispatch(new BlockModelStandard<>(Blocks.SLATE_POLISHED).withTextures("minecraft:block/polished_slate_top", "minecraft:block/polished_slate_side"));
+        addDispatch(new BlockModelStandard<>(Blocks.PERMAFROST_POLISHED).withTextures("minecraft:block/polished_permafrost_top", "minecraft:block/polished_permafrost_side"));
+        addDispatch(new BlockModelStandard<>(Blocks.NETHERRACK_POLISHED).withTextures("minecraft:block/polished_netherrack_top", "minecraft:block/polished_netherrack_side"));
+
+        addDispatch(new BlockModelAxisAligned<>(Blocks.PILLAR_MARBLE).withTextures("minecraft:block/pillar_marble/top", "minecraft:block/pillar_marble/side"));
+        addDispatch(new BlockModelStandard<>(Blocks.CAPSTONE_MARBLE).withTextures("minecraft:block/capstone_marble/top", "minecraft:block/capstone_marble/side"));
+
+        addDispatch(new BlockModelStandard<>(Blocks.SANDSTONE).withTextures("minecraft:block/sandstone/top", "minecraft:block/sandstone/bottom", "minecraft:block/sandstone/side"));
+
+        addDispatch(new BlockModelStandard<>(Blocks.STONE_CARVED).withTextures("minecraft:block/polished_stone_top", "minecraft:block/carved_stone"));
+        addDispatch(new BlockModelStandard<>(Blocks.GRANITE_CARVED).withTextures("minecraft:block/polished_granite_top", "minecraft:block/carved_granite"));
+        addDispatch(new BlockModelStandard<>(Blocks.LIMESTONE_CARVED).withTextures("minecraft:block/polished_limestone_top", "minecraft:block/carved_limestone"));
+        addDispatch(new BlockModelStandard<>(Blocks.BASALT_CARVED).withTextures("minecraft:block/polished_basalt_top", "minecraft:block/carved_basalt"));
+        addDispatch(new BlockModelStandard<>(Blocks.PERMAFROST_CARVED).withTextures("minecraft:block/polished_permafrost_top", "minecraft:block/carved_permafrost"));
+        addDispatch(new BlockModelStandard<>(Blocks.NETHERRACK_CARVED).withTextures("minecraft:block/polished_netherrack_top", "minecraft:block/carved_netherrack"));
+
+        addDispatch(new BlockModelStandard<>(Blocks.PLANKS_OAK).withTextures("minecraft:block/planks/oak"));
+        addDispatch(new BlockModelPlanksPainted<>(Blocks.PLANKS_OAK_PAINTED));
+
+        addDispatch(new BlockModelTorch<>(Blocks.TORCH_COAL).withTextures("minecraft:block/torch_coal"));
+
+        addDispatch(new BlockModelLadder<>(Blocks.LADDER_OAK).withTextures("minecraft:block/ladder"));
+
+        addDispatch(new BlockModelFence<>(Blocks.FENCE_PLANKS_OAK).withTextures("minecraft:block/planks/oak"));
+        addDispatch(new BlockModelFencePainted<>(Blocks.FENCE_PLANKS_OAK_PAINTED));
+
+        addDispatch(new BlockModelFenceGate<>(Blocks.FENCE_GATE_PLANKS_OAK).withTextures("minecraft:block/planks/oak"));
+        addDispatch(new BlockModelFenceGatePainted<>(Blocks.FENCE_GATE_PLANKS_OAK_PAINTED));
+
+        addDispatch(new BlockModelStandard<>(Blocks.BOOKSHELF_PLANKS_OAK).withTextures("minecraft:block/bookshelf/top", "minecraft:block/bookshelf/side"));
+
+        addDispatch(new BlockModelWool<>(Blocks.WOOL));
+        addDispatch(new BlockModelRope<>(Blocks.ROPE).withTextures("minecraft:block/rope"));
+
+        addDispatch(new BlockModelStandard<>(Blocks.BRICK_CLAY).withTextures("minecraft:block/brick_clay"));
+        addDispatch(new BlockModelStandard<>(Blocks.BRICK_STONE_POLISHED).withTextures("minecraft:block/brick_polished_stone"));
+        addDispatch(new BlockModelStandard<>(Blocks.BRICK_STONE_POLISHED_MOSSY).withTextures("minecraft:block/brick_polished_stone_mossy"));
+        addDispatch(new BlockModelStandard<>(Blocks.BRICK_SANDSTONE).withTextures("minecraft:block/brick_sandstone"));
+        addDispatch(new BlockModelStandard<>(Blocks.BRICK_GOLD).withTextures("minecraft:block/brick_gold"));
+        addDispatch(new BlockModelStandard<>(Blocks.BRICK_LAPIS).withTextures("minecraft:block/brick_lapis"));
+        addDispatch(new BlockModelStandard<>(Blocks.BRICK_BASALT).withTextures("minecraft:block/brick_basalt"));
+        addDispatch(new BlockModelStandard<>(Blocks.BRICK_LIMESTONE).withTextures("minecraft:block/brick_limestone"));
+        addDispatch(new BlockModelStandard<>(Blocks.BRICK_GRANITE).withTextures("minecraft:block/brick_granite"));
+        addDispatch(new BlockModelStandard<>(Blocks.BRICK_MARBLE).withTextures("minecraft:block/brick_marble"));
+        addDispatch(new BlockModelStandard<>(Blocks.BRICK_SLATE).withTextures("minecraft:block/brick_slate"));
+        addDispatch(new BlockModelStandard<>(Blocks.BRICK_STONE).withTextures("minecraft:block/brick_stone"));
+        addDispatch(new BlockModelStandard<>(Blocks.BRICK_PERMAFROST).withTextures("minecraft:block/brick_permafrost"));
+        addDispatch(new BlockModelStandard<>(Blocks.BRICK_IRON).withTextures("minecraft:block/brick_iron"));
+        addDispatch(new BlockModelStandard<>(Blocks.BRICK_STEEL).withTextures("minecraft:block/brick_steel"));
+
+        addDispatch(new BlockModelSlab<>(Blocks.SLAB_PLANKS_OAK));
+        addDispatch(new BlockModelSlab<>(Blocks.SLAB_COBBLE_STONE));
+        addDispatch(new BlockModelSlab<>(Blocks.SLAB_SANDSTONE));
+        addDispatch(new BlockModelSlab<>(Blocks.SLAB_BRICK_STONE_POLISHED));
+        addDispatch(new BlockModelSlab<>(Blocks.SLAB_STONE_POLISHED));
+        addDispatch(new BlockModelSlab<>(Blocks.SLAB_BRICK_MARBLE));
+        addDispatch(new BlockModelSlab<>(Blocks.SLAB_BRICK_CLAY));
+        addDispatch(new BlockModelSlabMarble<>(Blocks.SLAB_CAPSTONE_MARBLE));
+        addDispatch(new BlockModelSlab<>(Blocks.SLAB_COBBLE_BASALT));
+        addDispatch(new BlockModelSlab<>(Blocks.SLAB_COBBLE_LIMESTONE));
+        addDispatch(new BlockModelSlab<>(Blocks.SLAB_COBBLE_GRANITE));
+        addDispatch(new BlockModelSlab<>(Blocks.SLAB_BRICK_BASALT));
+        addDispatch(new BlockModelSlab<>(Blocks.SLAB_BRICK_LIMESTONE));
+        addDispatch(new BlockModelSlab<>(Blocks.SLAB_BRICK_GRANITE));
+        addDispatch(new BlockModelSlabPainted<>(Blocks.SLAB_PLANKS_PAINTED));
+        addDispatch(new BlockModelSlab<>(Blocks.SLAB_BRICK_SLATE));
+        addDispatch(new BlockModelSlab<>(Blocks.SLAB_BRICK_STONE));
+        addDispatch(new BlockModelSlab<>(Blocks.SLAB_GRANITE_POLISHED));
+        addDispatch(new BlockModelSlab<>(Blocks.SLAB_LIMESTONE_POLISHED));
+        addDispatch(new BlockModelSlab<>(Blocks.SLAB_BASALT_POLISHED));
+        addDispatch(new BlockModelSlab<>(Blocks.SLAB_PERMAFROST_POLISHED));
+        addDispatch(new BlockModelSlab<>(Blocks.SLAB_COBBLE_PERMAFROST));
+        addDispatch(new BlockModelSlab<>(Blocks.SLAB_BRICK_SANDSTONE));
+        addDispatch(new BlockModelSlab<>(Blocks.SLAB_BRICK_PERMAFROST));
+
+        addDispatch(new BlockModelStairs<>(Blocks.STAIRS_PLANKS_OAK));
+        addDispatch(new BlockModelStairs<>(Blocks.STAIRS_COBBLE_STONE));
+        addDispatch(new BlockModelStairs<>(Blocks.STAIRS_BRICK_STONE_POLISHED));
+        addDispatch(new BlockModelStairs<>(Blocks.STAIRS_BRICK_MARBLE));
+        addDispatch(new BlockModelStairs<>(Blocks.STAIRS_COBBLE_BASALT));
+        addDispatch(new BlockModelStairs<>(Blocks.STAIRS_COBBLE_LIMESTONE));
+        addDispatch(new BlockModelStairs<>(Blocks.STAIRS_COBBLE_GRANITE));
+        addDispatch(new BlockModelStairs<>(Blocks.STAIRS_BRICK_BASALT));
+        addDispatch(new BlockModelStairs<>(Blocks.STAIRS_BRICK_LIMESTONE));
+        addDispatch(new BlockModelStairs<>(Blocks.STAIRS_BRICK_GRANITE));
+        addDispatch(new BlockModelStairs<>(Blocks.STAIRS_BRICK_CLAY));
+        addDispatch(new BlockModelStairsPainted<>(Blocks.STAIRS_PLANKS_PAINTED));
+        addDispatch(new BlockModelStairs<>(Blocks.STAIRS_BRICK_SLATE));
+        addDispatch(new BlockModelStairs<>(Blocks.STAIRS_BRICK_STONE));
+        addDispatch(new BlockModelStairs<>(Blocks.STAIRS_SANDSTONE));
+        addDispatch(new BlockModelStairs<>(Blocks.STAIRS_COBBLE_PERMAFROST));
+        addDispatch(new BlockModelStairs<>(Blocks.STAIRS_BRICK_SANDSTONE));
+        addDispatch(new BlockModelStairs<>(Blocks.STAIRS_BRICK_PERMAFROST));
+
+        addDispatch(new BlockModelStandard<>(Blocks.OBSIDIAN).withTextures("minecraft:block/obsidian"));
+
+        addDispatch(new BlockModelTransparent<>(Blocks.GLASS, false).withTextures("minecraft:block/glass"));
+        addDispatch(new BlockModelTransparent<>(Blocks.GLASS_TINTED, false).withTextures("minecraft:block/glass_tinted"));
+        addDispatch(new BlockModelTransparent<>(Blocks.GLASS_STEEL, false).withTextures("minecraft:block/glass_steel"));
+
+        addDispatch(new BlockModelGrass<>(Blocks.GRASS).withTextures("minecraft:block/grass/top", "minecraft:block/grass/bottom", "minecraft:block/grass/side"));
+        addDispatch(new BlockModelStandard<>(Blocks.GRASS_RETRO).withTextures("minecraft:block/grass_retro/top", "minecraft:block/grass_retro/bottom", "minecraft:block/grass_retro/side"));
+        addDispatch(new BlockModelStandard<>(Blocks.GRASS_SCORCHED).withTextures("minecraft:block/grass_scorched/top", "minecraft:block/grass_scorched/bottom", "minecraft:block/grass_scorched/side"));
+
+        addDispatch(new BlockModelStandard<>(Blocks.PATH_DIRT).withTextures("minecraft:block/grass_path/top", "minecraft:block/grass_path/bottom", "minecraft:block/grass_path/side"));
+
+        addDispatch(new BlockModelStandard<>(Blocks.DIRT).withTextures("minecraft:block/dirt"));
+        addDispatch(new BlockModelStandard<>(Blocks.DIRT_SCORCHED).withTextures("minecraft:block/dirt_scorched"));
+        addDispatch(new BlockModelStandard<>(Blocks.DIRT_SCORCHED_RICH).withTextures("minecraft:block/dirt_scorched_rich"));
+
+        addDispatch(new BlockModelStandard<>(Blocks.MUD).withTextures("minecraft:block/mud"));
+        addDispatch(new BlockModelStandard<>(Blocks.MUD_BAKED).withTextures("minecraft:block/mud_baked"));
+
+        addDispatch(new BlockModelStandard<>(Blocks.SPONGE_DRY).withTextures("minecraft:block/sponge"));
+        addDispatch(new BlockModelStandard<>(Blocks.SPONGE_WET).withTextures("minecraft:block/sponge_wet"));
+        addDispatch(new BlockModelPumice<>(Blocks.PUMICE_DRY).withTextures("minecraft:block/pumice"));
+        addDispatch(new BlockModelPumice<>(Blocks.PUMICE_WET).withTextures("minecraft:block/pumice_overlay"));
+
+        addDispatch(new BlockModelStoneMossy<>(Blocks.MOSS_STONE).withTextures("minecraft:block/stone"));
+        addDispatch(new BlockModelStoneMossy<>(Blocks.MOSS_BASALT).withTextures("minecraft:block/basalt"));
+        addDispatch(new BlockModelStoneMossy<>(Blocks.MOSS_LIMESTONE).withTextures("minecraft:block/limestone"));
+        addDispatch(new BlockModelStoneMossy<>(Blocks.MOSS_GRANITE).withTextures("minecraft:block/granite"));
+
+        addDispatch(new BlockModelStandard<>(Blocks.SAND).withTextures("minecraft:block/sand"));
+        addDispatch(new BlockModelStandard<>(Blocks.GRAVEL).withTextures("minecraft:block/gravel"));
+
+        addDispatch(new BlockModelStandard<>(Blocks.BEDROCK).withTextures("minecraft:block/bedrock"));
+        addDispatch(new BlockModelFullyRotatable<>(Blocks.BONESHALE).withTextures("minecraft:block/bone_shale/top", "minecraft:block/bone_shale/bottom", "minecraft:block/bone_shale/side"));
+
+        addDispatch(new BlockModelFluid<>(Blocks.FLUID_WATER_FLOWING).withTextures("minecraft:block/water_still", "minecraft:block/water_flowing", "minecraft:block/water_flowing"));
+        addDispatch(new BlockModelFluid<>(Blocks.FLUID_WATER_STILL).withTextures("minecraft:block/water_still", "minecraft:block/water_flowing"));
+        addDispatch(new BlockModelFluid<>(Blocks.FLUID_LAVA_FLOWING).withTextures("minecraft:block/lava_still", "minecraft:block/lava_flowing", "minecraft:block/lava_flowing"));
+        addDispatch(new BlockModelFluid<>(Blocks.FLUID_LAVA_STILL).withTextures("minecraft:block/lava_still", "minecraft:block/lava_flowing"));
+
+        addDispatch(new BlockModelAxisAligned<>(Blocks.LOG_OAK).withTextures("minecraft:block/log/oak_top", "minecraft:block/log/oak_side"));
+        addDispatch(new BlockModelAxisAligned<>(Blocks.LOG_PINE).withTextures("minecraft:block/log/pine_top", "minecraft:block/log/pine_side"));
+        addDispatch(new BlockModelAxisAligned<>(Blocks.LOG_BIRCH).withTextures("minecraft:block/log/birch_top", "minecraft:block/log/birch_side"));
+        addDispatch(new BlockModelAxisAligned<>(Blocks.LOG_CHERRY).withTextures("minecraft:block/log/cherry_top", "minecraft:block/log/cherry_side"));
+        addDispatch(new BlockModelAxisAligned<>(Blocks.LOG_EUCALYPTUS).withTextures("minecraft:block/log/eucalyptus_top", "minecraft:block/log/eucalyptus_side"));
+        addDispatch(new BlockModelAxisAligned<>(Blocks.LOG_OAK_MOSSY).withTextures("minecraft:block/log/oak_mossy_top", "minecraft:block/log/oak_mossy_side"));
+        addDispatch(new BlockModelAxisAligned<>(Blocks.LOG_THORN).withTextures("minecraft:block/log/thorn_top", "minecraft:block/log/thorn_side"));
+        addDispatch(new BlockModelAxisAligned<>(Blocks.LOG_PALM).withTextures("minecraft:block/log/palm_top", "minecraft:block/log/palm_side"));
+
+        addDispatch(new BlockModelLeaves<>(Blocks.LEAVES_OAK, "minecraft:block/leaves/oak"));
+        addDispatch(new BlockModelLeaves<>(Blocks.LEAVES_OAK_RETRO, "minecraft:block/leaves/oak_retro"));
+        addDispatch(new BlockModelLeaves<>(Blocks.LEAVES_PINE, "minecraft:block/leaves/pine"));
+        addDispatch(new BlockModelLeaves<>(Blocks.LEAVES_BIRCH, "minecraft:block/leaves/birch"));
+        addDispatch(new BlockModelLeaves<>(Blocks.LEAVES_CHERRY, "minecraft:block/leaves/cherry"));
+        addDispatch(new BlockModelLeaves<>(Blocks.LEAVES_EUCALYPTUS, "minecraft:block/leaves/eucalyptus"));
+        addDispatch(new BlockModelLeaves<>(Blocks.LEAVES_SHRUB, "minecraft:block/leaves/shrub"));
+        addDispatch(new BlockModelLeavesCherryFlowering<>(Blocks.LEAVES_CHERRY_FLOWERING));
+        addDispatch(new BlockModelLeavesCacao<>(Blocks.LEAVES_CACAO));
+        addDispatch(new BlockModelLeaves<>(Blocks.LEAVES_THORN, "minecraft:block/leaves/caatinga"));
+        addDispatch(new BlockModelLeaves<>(Blocks.LEAVES_PALM, "minecraft:block/leaves/palm"));
+
+        addDispatch(new BlockModelCrossedSquares<>(Blocks.SAPLING_OAK).withTextures("minecraft:block/sapling/oak"));
+        addDispatch(new BlockModelCrossedSquares<>(Blocks.SAPLING_OAK_RETRO).withTextures("minecraft:block/sapling/oak_retro"));
+        addDispatch(new BlockModelCrossedSquares<>(Blocks.SAPLING_PINE).withTextures("minecraft:block/sapling/pine"));
+        addDispatch(new BlockModelCrossedSquares<>(Blocks.SAPLING_BIRCH).withTextures("minecraft:block/sapling/birch"));
+        addDispatch(new BlockModelCrossedSquares<>(Blocks.SAPLING_CHERRY).withTextures("minecraft:block/sapling/cherry"));
+        addDispatch(new BlockModelCrossedSquares<>(Blocks.SAPLING_EUCALYPTUS).withTextures("minecraft:block/sapling/eucalyptus"));
+        addDispatch(new BlockModelCrossedSquares<>(Blocks.SAPLING_SHRUB).withTextures("minecraft:block/sapling/shrub"));
+        addDispatch(new BlockModelCrossedSquares<>(Blocks.SAPLING_CACAO).withTextures("minecraft:block/sapling/cacao"));
+        addDispatch(new BlockModelCrossedSquares<>(Blocks.SAPLING_THORN).withTextures("minecraft:block/sapling/thorn"));
+        addDispatch(new BlockModelCrossedSquares<>(Blocks.SAPLING_PALM).withTextures("minecraft:block/sapling/palm"));
+
+        addDispatch(new BlockModelCrossedSquares<>(Blocks.TALLGRASS).withTextures("minecraft:block/tallgrass"));
+        addDispatch(new BlockModelCrossedSquares<>(Blocks.TALLGRASS_FERN).withTextures("minecraft:block/fern"));
+        addDispatch(new BlockModelCrossedSquares<>(Blocks.DEADBUSH).withTextures("minecraft:block/deadbush"));
+        addDispatch(new BlockModelCrossedSquares<>(Blocks.SPINIFEX).withTextures("minecraft:block/spinifex"));
+        addDispatch(new BlockModelAlgae<>(Blocks.ALGAE).withTextures("minecraft:block/algae").withCustomItemBounds(0.0f, 0.01f, 0.0f, 1.0f, 0.0125f, 1.0f));
+
+        addDispatch(new BlockModelFlowerStackable<>(Blocks.FLOWER_YELLOW, "minecraft:block/flower_yellow/"));
+        addDispatch(new BlockModelFlowerStackable<>(Blocks.FLOWER_RED, "minecraft:block/flower_red/"));
+        addDispatch(new BlockModelFlowerStackable<>(Blocks.FLOWER_PINK, "minecraft:block/flower_pink/"));
+        addDispatch(new BlockModelFlowerStackable<>(Blocks.FLOWER_PURPLE, "minecraft:block/flower_purple/"));
+        addDispatch(new BlockModelFlowerStackable<>(Blocks.FLOWER_LIGHT_BLUE, "minecraft:block/flower_lightblue/"));
+        addDispatch(new BlockModelFlowerStackable<>(Blocks.FLOWER_ORANGE, "minecraft:block/flower_orange/"));
+
+        addDispatch(new BlockModelCrossedSquares<>(Blocks.MUSHROOM_BROWN).withTextures("minecraft:block/mushroom_brown"));
+        addDispatch(new BlockModelCrossedSquares<>(Blocks.MUSHROOM_RED).withTextures("minecraft:block/mushroom_red"));
+
+        addDispatch(new BlockModelStandard<>(Blocks.ORE_COAL_STONE).withTextures("minecraft:block/ore/coal/stone"));
+        addDispatch(new BlockModelStandard<>(Blocks.ORE_COAL_BASALT).withTextures("minecraft:block/ore/coal/basalt"));
+        addDispatch(new BlockModelStandard<>(Blocks.ORE_COAL_LIMESTONE).withTextures("minecraft:block/ore/coal/limestone"));
+        addDispatch(new BlockModelStandard<>(Blocks.ORE_COAL_GRANITE).withTextures("minecraft:block/ore/coal/granite"));
+        addDispatch(new BlockModelStandard<>(Blocks.ORE_COAL_PERMAFROST).withTextures("minecraft:block/ore/coal/permafrost"));
+
+        addDispatch(new BlockModelStandard<>(Blocks.ORE_IRON_STONE).withTextures("minecraft:block/ore/iron/stone"));
+        addDispatch(new BlockModelStandard<>(Blocks.ORE_IRON_BASALT).withTextures("minecraft:block/ore/iron/basalt"));
+        addDispatch(new BlockModelStandard<>(Blocks.ORE_IRON_LIMESTONE).withTextures("minecraft:block/ore/iron/limestone"));
+        addDispatch(new BlockModelStandard<>(Blocks.ORE_IRON_GRANITE).withTextures("minecraft:block/ore/iron/granite"));
+        addDispatch(new BlockModelStandard<>(Blocks.ORE_IRON_PERMAFROST).withTextures("minecraft:block/ore/iron/permafrost"));
+
+        addDispatch(new BlockModelStandard<>(Blocks.ORE_GOLD_STONE).withTextures("minecraft:block/ore/gold/stone"));
+        addDispatch(new BlockModelStandard<>(Blocks.ORE_GOLD_BASALT).withTextures("minecraft:block/ore/gold/basalt"));
+        addDispatch(new BlockModelStandard<>(Blocks.ORE_GOLD_LIMESTONE).withTextures("minecraft:block/ore/gold/limestone"));
+        addDispatch(new BlockModelStandard<>(Blocks.ORE_GOLD_GRANITE).withTextures("minecraft:block/ore/gold/granite"));
+        addDispatch(new BlockModelStandard<>(Blocks.ORE_GOLD_PERMAFROST).withTextures("minecraft:block/ore/gold/permafrost"));
+
+        addDispatch(new BlockModelStandard<>(Blocks.ORE_LAPIS_STONE).withTextures("minecraft:block/ore/lapis/stone"));
+        addDispatch(new BlockModelStandard<>(Blocks.ORE_LAPIS_BASALT).withTextures("minecraft:block/ore/lapis/basalt"));
+        addDispatch(new BlockModelStandard<>(Blocks.ORE_LAPIS_LIMESTONE).withTextures("minecraft:block/ore/lapis/limestone"));
+        addDispatch(new BlockModelStandard<>(Blocks.ORE_LAPIS_GRANITE).withTextures("minecraft:block/ore/lapis/granite"));
+        addDispatch(new BlockModelStandard<>(Blocks.ORE_LAPIS_PERMAFROST).withTextures("minecraft:block/ore/lapis/permafrost"));
+
+        addDispatch(new BlockModelStandard<>(Blocks.ORE_REDSTONE_STONE).withTextures("minecraft:block/ore/redstone/stone"));
+        addDispatch(new BlockModelStandard<>(Blocks.ORE_REDSTONE_BASALT).withTextures("minecraft:block/ore/redstone/basalt"));
+        addDispatch(new BlockModelStandard<>(Blocks.ORE_REDSTONE_LIMESTONE).withTextures("minecraft:block/ore/redstone/limestone"));
+        addDispatch(new BlockModelStandard<>(Blocks.ORE_REDSTONE_GRANITE).withTextures("minecraft:block/ore/redstone/granite"));
+        addDispatch(new BlockModelStandard<>(Blocks.ORE_REDSTONE_PERMAFROST).withTextures("minecraft:block/ore/redstone/permafrost"));
+
+        addDispatch(new BlockModelStandard<>(Blocks.ORE_REDSTONE_GLOWING_STONE).withTextures("minecraft:block/ore/redstone/stone").withOverbrightTexture("minecraft:block/ore/redstone/overlay"));
+        addDispatch(new BlockModelStandard<>(Blocks.ORE_REDSTONE_GLOWING_BASALT).withTextures("minecraft:block/ore/redstone/basalt").withOverbrightTexture("minecraft:block/ore/redstone/overlay"));
+        addDispatch(new BlockModelStandard<>(Blocks.ORE_REDSTONE_GLOWING_LIMESTONE).withTextures("minecraft:block/ore/redstone/limestone").withOverbrightTexture("minecraft:block/ore/redstone/overlay"));
+        addDispatch(new BlockModelStandard<>(Blocks.ORE_REDSTONE_GLOWING_GRANITE).withTextures("minecraft:block/ore/redstone/granite").withOverbrightTexture("minecraft:block/ore/redstone/overlay"));
+        addDispatch(new BlockModelStandard<>(Blocks.ORE_REDSTONE_GLOWING_PERMAFROST).withTextures("minecraft:block/ore/redstone/permafrost").withOverbrightTexture("minecraft:block/ore/redstone/overlay"));
+
+        addDispatch(new BlockModelStandard<>(Blocks.ORE_DIAMOND_STONE).withTextures("minecraft:block/ore/diamond/stone"));
+        addDispatch(new BlockModelStandard<>(Blocks.ORE_DIAMOND_BASALT).withTextures("minecraft:block/ore/diamond/basalt"));
+        addDispatch(new BlockModelStandard<>(Blocks.ORE_DIAMOND_LIMESTONE).withTextures("minecraft:block/ore/diamond/limestone"));
+        addDispatch(new BlockModelStandard<>(Blocks.ORE_DIAMOND_GRANITE).withTextures("minecraft:block/ore/diamond/granite"));
+        addDispatch(new BlockModelStandard<>(Blocks.ORE_DIAMOND_PERMAFROST).withTextures("minecraft:block/ore/diamond/permafrost"));
+
+        addDispatch(new BlockModelStandard<>(Blocks.ORE_NETHERCOAL_NETHERRACK).withTextures("minecraft:block/ore/nethercoal/netherrack").withOverbrightTexture("minecraft:block/ore/nethercoal/netherrack_overlay"));
+
+        addDispatch(new BlockModelStandard<>(Blocks.BLOCK_COAL).withTextures("minecraft:block/block_coal"));
+        addDispatch(new BlockModelStandard<>(Blocks.BLOCK_IRON).withTextures("minecraft:block/block_iron/top", "minecraft:block/block_iron/bottom", "minecraft:block/block_iron/side"));
+        addDispatch(new BlockModelStandard<>(Blocks.BLOCK_GOLD).withTextures("minecraft:block/block_gold/top", "minecraft:block/block_gold/bottom", "minecraft:block/block_gold/side"));
+        addDispatch(new BlockModelStandard<>(Blocks.BLOCK_LAPIS).withTextures("minecraft:block/block_lapis"));
+        addDispatch(new BlockModelStandard<>(Blocks.BLOCK_REDSTONE).withTextures("minecraft:block/block_redstone"));
+        addDispatch(new BlockModelStandard<>(Blocks.BLOCK_DIAMOND).withTextures("minecraft:block/block_diamond/top", "minecraft:block/block_diamond/bottom", "minecraft:block/block_diamond/side"));
+        addDispatch(new BlockModelStandard<>(Blocks.BLOCK_NETHER_COAL).withTextures("minecraft:block/block_nethercoal").withOverbrightTexture("minecraft:block/block_nethercoal_overlay"));
+        addDispatch(new BlockModelStandard<>(Blocks.BLOCK_STEEL).withTextures("minecraft:block/block_steel/top", "minecraft:block/block_steel/bottom", "minecraft:block/block_steel/side"));
+        addDispatch(new BlockModelStandard<>(Blocks.BLOCK_QUARTZ).withTextures("minecraft:block/block_quartz"));
+        addDispatch(new BlockModelStandard<>(Blocks.BLOCK_OLIVINE).withTextures("minecraft:block/block_olivine"));
+        addDispatch(new BlockModelStandard<>(Blocks.BLOCK_CHARCOAL).withTextures("minecraft:block/block_charcoal"));
+
+        addDispatch(new BlockModelWireRedstone<>(Blocks.WIRE_REDSTONE));
+
+        addDispatch(new BlockModelTorchRedstone(Blocks.TORCH_REDSTONE_IDLE).withTextures("minecraft:block/torch_redstone_idle"));
+        addDispatch(new BlockModelTorchRedstone(Blocks.TORCH_REDSTONE_ACTIVE).withTextures("minecraft:block/torch_redstone_active"));
 
         final float width = 0.1875F;
         final float height = 0.125F;
         final float depth = 0.125F;
-        addDispatch(new StandardBlockModel<>(Blocks.BUTTON_STONE).withTextures("minecraft:block/stone").withCustomItemBounds(0.5F - width, 0.5F - height, 0.5F - depth, 0.5F + width, 0.5F + height, 0.5F + depth));
+        addDispatch(new BlockModelStandard<>(Blocks.BUTTON_STONE).withTextures("minecraft:block/stone").withCustomItemBounds(0.5F - width, 0.5F - height, 0.5F - depth, 0.5F + width, 0.5F + height, 0.5F + depth));
 
-        addDispatch(new LeverBlockModel<>(Blocks.LEVER_COBBLE_STONE).withTextures("minecraft:block/lever_cobbled_stone"));
+        addDispatch(new BlockModelLever<>(Blocks.LEVER_COBBLE_STONE).withTextures("minecraft:block/lever_cobbled_stone"));
 
         final float f = 0.5F;
         final float f1 = 0.125F;
         final float f2 = 0.5F;
-        addDispatch(new StandardBlockModel<>(Blocks.PRESSURE_PLATE_STONE).withTextures("minecraft:block/stone").withCustomItemBounds(0.5F - f, 0.5F - f1, 0.5F - f2, 0.5F + f, 0.5F + f1, 0.5F + f2));
-        addDispatch(new StandardBlockModel<>(Blocks.PRESSURE_PLATE_PLANKS_OAK).withTextures("minecraft:block/planks/oak").withCustomItemBounds(0.5F - f, 0.5F - f1, 0.5F - f2, 0.5F + f, 0.5F + f1, 0.5F + f2));
-        addDispatch(new StandardBlockModel<>(Blocks.PRESSURE_PLATE_COBBLE_STONE).withTextures("minecraft:block/cobbled_stone").withCustomItemBounds(0.5F - f, 0.5F - f1, 0.5F - f2, 0.5F + f, 0.5F + f1, 0.5F + f2));
+        addDispatch(new BlockModelStandard<>(Blocks.PRESSURE_PLATE_STONE).withTextures("minecraft:block/stone").withCustomItemBounds(0.5F - f, 0.5F - f1, 0.5F - f2, 0.5F + f, 0.5F + f1, 0.5F + f2));
+        addDispatch(new BlockModelStandard<>(Blocks.PRESSURE_PLATE_PLANKS_OAK).withTextures("minecraft:block/planks/oak").withCustomItemBounds(0.5F - f, 0.5F - f1, 0.5F - f2, 0.5F + f, 0.5F + f1, 0.5F + f2));
+        addDispatch(new BlockModelStandard<>(Blocks.PRESSURE_PLATE_COBBLE_STONE).withTextures("minecraft:block/cobbled_stone").withCustomItemBounds(0.5F - f, 0.5F - f1, 0.5F - f2, 0.5F + f, 0.5F + f1, 0.5F + f2));
 
-        addDispatch(new MotionSensorBlockModel(Blocks.MOTION_SENSOR_IDLE).withTextures("minecraft:block/motion_sensor/side", "minecraft:block/motion_sensor/side", "minecraft:block/motion_sensor/side", "minecraft:block/motion_sensor/side", "minecraft:block/motion_sensor/idle_front", "minecraft:block/motion_sensor/side"));
-        addDispatch(new MotionSensorBlockModel(Blocks.MOTION_SENSOR_ACTIVE).withTextures("minecraft:block/motion_sensor/side", "minecraft:block/motion_sensor/side", "minecraft:block/motion_sensor/side", "minecraft:block/motion_sensor/side", "minecraft:block/motion_sensor/active_front", "minecraft:block/motion_sensor/side"));
+        addDispatch(new BlockModelMotionSensor(Blocks.MOTION_SENSOR_IDLE).withTextures("minecraft:block/motion_sensor/side", "minecraft:block/motion_sensor/side", "minecraft:block/motion_sensor/side", "minecraft:block/motion_sensor/side", "minecraft:block/motion_sensor/idle_front", "minecraft:block/motion_sensor/side"));
+        addDispatch(new BlockModelMotionSensor(Blocks.MOTION_SENSOR_ACTIVE).withTextures("minecraft:block/motion_sensor/side", "minecraft:block/motion_sensor/side", "minecraft:block/motion_sensor/side", "minecraft:block/motion_sensor/side", "minecraft:block/motion_sensor/active_front", "minecraft:block/motion_sensor/side"));
 
-        addDispatch(new RepeaterBlockModel(Blocks.REPEATER_IDLE).withTextures("minecraft:block/repeater/idle_top", "minecraft:block/polished_stone_top"));
-        addDispatch(new RepeaterBlockModel(Blocks.REPEATER_ACTIVE).withTextures("minecraft:block/repeater/active_top", "minecraft:block/polished_stone_top").withOverbrightTexture("minecraft:block/repeater/active_overlay"));
+        addDispatch(new BlockModelRepeater(Blocks.REPEATER_IDLE).withTextures("minecraft:block/repeater/idle_top", "minecraft:block/polished_stone_top"));
+        addDispatch(new BlockModelRepeater(Blocks.REPEATER_ACTIVE).withTextures("minecraft:block/repeater/active_top", "minecraft:block/polished_stone_top").withOverbrightTexture("minecraft:block/repeater/active_overlay"));
 
-        addDispatch(new PistonBlockModel<>(Blocks.PISTON_BASE,
+        addDispatch(new BlockModelPiston<>(Blocks.PISTON_BASE,
             TextureRegistry.getTexture("minecraft:block/piston/face"))
             .setPistonTextures("minecraft:block/piston/side", "minecraft:block/piston/top", "minecraft:block/piston/bottom")
             .withTextures("minecraft:block/piston/face")
             .withCustomItemBounds(0,0,0,1,1,1));
-        addDispatch(new PistonBlockModel<>(Blocks.PISTON_BASE_STICKY,
+        addDispatch(new BlockModelPiston<>(Blocks.PISTON_BASE_STICKY,
             TextureRegistry.getTexture("minecraft:block/piston_sticky/face"))
             .setPistonTextures("minecraft:block/piston_sticky/side", "minecraft:block/piston_sticky/top", "minecraft:block/piston_sticky/bottom")
             .withTextures("minecraft:block/piston_sticky/face")
             .withCustomItemBounds(0,0,0,1,1,1));
-        addDispatch(new PistonBlockModel<>(Blocks.PISTON_BASE_STEEL,
+        addDispatch(new BlockModelPiston<>(Blocks.PISTON_BASE_STEEL,
             TextureRegistry.getTexture("minecraft:block/piston_steel/face"), 6/16d)
             .setPistonTextures("minecraft:block/piston_steel/side", "minecraft:block/piston_steel/top", "minecraft:block/piston_steel/bottom")
             .withTextures("minecraft:block/piston_steel/face")
             .withCustomItemBounds(0,0,0,1,1,1));
 
-        addDispatch(new PistonHeadBlockModel(Blocks.PISTON_HEAD, TextureRegistry.getTexture("minecraft:block/piston/side")).withTextures("minecraft:block/piston/face"));
-        addDispatch(new EmptyBlockModel(Blocks.PISTON_MOVING));
-        addDispatch(new PistonHeadBlockModel(Blocks.PISTON_HEAD_STEEL, TextureRegistry.getTexture("minecraft:block/piston_steel/side"), 6/16d).withTextures("minecraft:block/piston_steel/face"));
+        addDispatch(new BlockModelPistonHead(Blocks.PISTON_HEAD, TextureRegistry.getTexture("minecraft:block/piston/side")).withTextures("minecraft:block/piston/face"));
+        addDispatch(new BlockModelEmpty(Blocks.PISTON_MOVING));
+        addDispatch(new BlockModelPistonHead(Blocks.PISTON_HEAD_STEEL, TextureRegistry.getTexture("minecraft:block/piston_steel/side"), 6/16d).withTextures("minecraft:block/piston_steel/face"));
 
-        addDispatch(new StandardBlockModel<>(Blocks.NOTEBLOCK).withTextures("minecraft:block/noteblock"));
+        addDispatch(new BlockModelStandard<>(Blocks.NOTEBLOCK).withTextures("minecraft:block/noteblock"));
 
-        addDispatch(new RailBlockModel<>(Blocks.RAIL).withTextures("minecraft:block/rail/straight"));
-        addDispatch(new RailBlockModel<>(Blocks.RAIL_POWERED).withTextures("minecraft:block/rail_powered/idle"));
-        addDispatch(new RailBlockModel<>(Blocks.RAIL_DETECTOR).withTextures("minecraft:block/rail_detector/straight"));
+        addDispatch(new BlockModelRail<>(Blocks.RAIL).withTextures("minecraft:block/rail/straight"));
+        addDispatch(new BlockModelRail<>(Blocks.RAIL_POWERED).withTextures("minecraft:block/rail_powered/idle"));
+        addDispatch(new BlockModelRail<>(Blocks.RAIL_DETECTOR).withTextures("minecraft:block/rail_detector/straight"));
 
-        addDispatch(new SpikesBlockModel<>(Blocks.SPIKES).withTextures("minecraft:block/spikes/top", "minecraft:block/spikes/bottom", "minecraft:block/spikes/side"));
+        addDispatch(new BlockModelSpikes<>(Blocks.SPIKES).withTextures("minecraft:block/spikes/top", "minecraft:block/spikes/bottom", "minecraft:block/spikes/side"));
 
-        addDispatch(new VeryRotatableBlockModel<>(Blocks.DISPENSER_COBBLE_STONE).withTextures("minecraft:block/dispenser/top", "minecraft:block/dispenser/bottom", "minecraft:block/dispenser/side", "minecraft:block/dispenser/side", "minecraft:block/dispenser/front", "minecraft:block/dispenser/side"));
-        addDispatch(new ActivatorBlockModel(Blocks.ACTIVATOR_COBBLE_NETHERRACK).withTextures("minecraft:block/activator/top", "minecraft:block/activator/bottom", "minecraft:block/activator/side", "minecraft:block/activator/side", "minecraft:block/activator/front", "minecraft:block/activator/side"));
+        addDispatch(new BlockModelVeryRotatable<>(Blocks.DISPENSER_COBBLE_STONE).withTextures("minecraft:block/dispenser/top", "minecraft:block/dispenser/bottom", "minecraft:block/dispenser/side", "minecraft:block/dispenser/side", "minecraft:block/dispenser/front", "minecraft:block/dispenser/side"));
+        addDispatch(new BlockModelActivator(Blocks.ACTIVATOR_COBBLE_NETHERRACK).withTextures("minecraft:block/activator/top", "minecraft:block/activator/bottom", "minecraft:block/activator/side", "minecraft:block/activator/side", "minecraft:block/activator/front", "minecraft:block/activator/side"));
 
-        addDispatch(new TrapDoorBlockModel<>(Blocks.TRAPDOOR_PLANKS_OAK).withTextures("minecraft:block/trapdoor/planks/top", "minecraft:block/trapdoor/planks/side"));
-        addDispatch(new TrapDoorBlockModel<>(Blocks.TRAPDOOR_IRON).withTextures("minecraft:block/trapdoor/iron/top", "minecraft:block/trapdoor/iron/side"));
-        addDispatch(new TrapDoorBlockModel<>(Blocks.TRAPDOOR_GLASS).withTextures("minecraft:block/trapdoor/glass/top", "minecraft:block/trapdoor/glass/side"));
-        addDispatch(new TrapDoorPaintedBlockModel<>(Blocks.TRAPDOOR_PLANKS_PAINTED));
-        addDispatch(new TrapDoorBlockModel<>(Blocks.TRAPDOOR_STEEL).withTextures("minecraft:block/trapdoor/steel/top", "minecraft:block/trapdoor/steel/side"));
+        addDispatch(new BlockModelTrapDoor<>(Blocks.TRAPDOOR_PLANKS_OAK).withTextures("minecraft:block/trapdoor/planks/top", "minecraft:block/trapdoor/planks/side"));
+        addDispatch(new BlockModelTrapDoor<>(Blocks.TRAPDOOR_IRON).withTextures("minecraft:block/trapdoor/iron/top", "minecraft:block/trapdoor/iron/side"));
+        addDispatch(new BlockModelTrapDoor<>(Blocks.TRAPDOOR_GLASS).withTextures("minecraft:block/trapdoor/glass/top", "minecraft:block/trapdoor/glass/side"));
+        addDispatch(new BlockModelTrapDoorPainted<>(Blocks.TRAPDOOR_PLANKS_PAINTED));
+        addDispatch(new BlockModelTrapDoor<>(Blocks.TRAPDOOR_STEEL).withTextures("minecraft:block/trapdoor/steel/top", "minecraft:block/trapdoor/steel/side"));
 
-        addDispatch(new StandardBlockModel<>(Blocks.TNT).withTextures("minecraft:block/tnt/top", "minecraft:block/tnt/bottom", "minecraft:block/tnt/side"));
+        addDispatch(new BlockModelStandard<>(Blocks.TNT).withTextures("minecraft:block/tnt/top", "minecraft:block/tnt/bottom", "minecraft:block/tnt/side"));
 
-        addDispatch(new DoorBlockModel<>(Blocks.DOOR_PLANKS_OAK_BOTTOM).withTextures("minecraft:block/door/planks/frame_top", "minecraft:block/door/planks/bottom"));
-        addDispatch(new DoorBlockModel<>(Blocks.DOOR_PLANKS_OAK_TOP).withTextures("minecraft:block/door/planks/frame_top", "minecraft:block/door/planks/top"));
-        addDispatch(new DoorBlockModel<>(Blocks.DOOR_IRON_BOTTOM).withTextures("minecraft:block/door/iron/frame_top", "minecraft:block/door/iron/bottom"));
-        addDispatch(new DoorBlockModel<>(Blocks.DOOR_IRON_TOP).withTextures("minecraft:block/door/iron/frame_top", "minecraft:block/door/iron/top"));
-        addDispatch(new PaintedDoorBlockModel<>(Blocks.DOOR_PLANKS_PAINTED_BOTTOM, false).withTextures("minecraft:block/door/planks/frame_top", "minecraft:block/door/planks/bottom"));
-        addDispatch(new PaintedDoorBlockModel<>(Blocks.DOOR_PLANKS_PAINTED_TOP, true).withTextures("minecraft:block/door/planks/frame_top", "minecraft:block/door/planks/top"));
-        addDispatch(new GlassDoorBlockModel<>(Blocks.DOOR_GLASS_BOTTOM).withTextures("minecraft:block/door/glass/frame_top", "minecraft:block/door/glass/bottom"));
-        addDispatch(new GlassDoorBlockModel<>(Blocks.DOOR_GLASS_TOP).withTextures("minecraft:block/door/glass/frame_top", "minecraft:block/door/glass/top"));
-        addDispatch(new DoorBlockModel<>(Blocks.DOOR_STEEL_BOTTOM).withTextures("minecraft:block/door/steel/frame_top", "minecraft:block/door/steel/bottom"));
-        addDispatch(new DoorBlockModel<>(Blocks.DOOR_STEEL_TOP).withTextures("minecraft:block/door/steel/frame_top", "minecraft:block/door/steel/top"));
+        addDispatch(new BlockModelDoor<>(Blocks.DOOR_PLANKS_OAK_BOTTOM).withTextures("minecraft:block/door/planks/frame_top", "minecraft:block/door/planks/bottom"));
+        addDispatch(new BlockModelDoor<>(Blocks.DOOR_PLANKS_OAK_TOP).withTextures("minecraft:block/door/planks/frame_top", "minecraft:block/door/planks/top"));
+        addDispatch(new BlockModelDoor<>(Blocks.DOOR_IRON_BOTTOM).withTextures("minecraft:block/door/iron/frame_top", "minecraft:block/door/iron/bottom"));
+        addDispatch(new BlockModelDoor<>(Blocks.DOOR_IRON_TOP).withTextures("minecraft:block/door/iron/frame_top", "minecraft:block/door/iron/top"));
+        addDispatch(new BlockModelDoorPainted<>(Blocks.DOOR_PLANKS_PAINTED_BOTTOM, false).withTextures("minecraft:block/door/planks/frame_top", "minecraft:block/door/planks/bottom"));
+        addDispatch(new BlockModelDoorPainted<>(Blocks.DOOR_PLANKS_PAINTED_TOP, true).withTextures("minecraft:block/door/planks/frame_top", "minecraft:block/door/planks/top"));
+        addDispatch(new BlockModelDoorGlass<>(Blocks.DOOR_GLASS_BOTTOM).withTextures("minecraft:block/door/glass/frame_top", "minecraft:block/door/glass/bottom"));
+        addDispatch(new BlockModelDoorGlass<>(Blocks.DOOR_GLASS_TOP).withTextures("minecraft:block/door/glass/frame_top", "minecraft:block/door/glass/top"));
+        addDispatch(new BlockModelDoor<>(Blocks.DOOR_STEEL_BOTTOM).withTextures("minecraft:block/door/steel/frame_top", "minecraft:block/door/steel/bottom"));
+        addDispatch(new BlockModelDoor<>(Blocks.DOOR_STEEL_TOP).withTextures("minecraft:block/door/steel/frame_top", "minecraft:block/door/steel/top"));
 
-        addDispatch(new TransparentBlockModel<>(Blocks.MESH, true).withTextures("minecraft:block/mesh"));
-        addDispatch(new TransparentBlockModel<>(Blocks.MESH_GOLD, true).withTextures("minecraft:block/mesh_gold"));
+        addDispatch(new BlockModelTransparent<>(Blocks.MESH, true).withTextures("minecraft:block/mesh"));
+        addDispatch(new BlockModelTransparent<>(Blocks.MESH_GOLD, true).withTextures("minecraft:block/mesh_gold"));
 
-        addDispatch(new BedBlockModel<>(Blocks.BED));
-        addDispatch(new SeatBlockModel<>(Blocks.SEAT).withTextures("minecraft:block/seat/top", "minecraft:block/seat/bottom", "minecraft:block/seat/side"));
+        addDispatch(new BlockModelBed<>(Blocks.BED));
+        addDispatch(new BlockModelSeat<>(Blocks.SEAT).withTextures("minecraft:block/seat/top", "minecraft:block/seat/bottom", "minecraft:block/seat/side"));
 
-        addDispatch(new CrossedSquaresBlockModel<>(Blocks.COBWEB).withTextures("minecraft:block/cobweb"));
-        addDispatch(new FireBlockModel<>(Blocks.FIRE).withTextures("minecraft:block/fire"));
-        addDispatch(new BrazierBlockModel<>(Blocks.BRAZIER_INACTIVE).withTextures("minecraft:block/brazier/base", "minecraft:block/brazier/side"));
-        addDispatch(new BrazierBlockModel<>(Blocks.BRAZIER_ACTIVE).withTextures("minecraft:block/brazier/base", "minecraft:block/brazier/side"));
+        addDispatch(new BlockModelCrossedSquares<>(Blocks.COBWEB).withTextures("minecraft:block/cobweb"));
+        addDispatch(new BlockModelFire<>(Blocks.FIRE).withTextures("minecraft:block/fire"));
+        addDispatch(new BlockModelBrazier<>(Blocks.BRAZIER_INACTIVE).withTextures("minecraft:block/brazier/base", "minecraft:block/brazier/side"));
+        addDispatch(new BlockModelBrazier<>(Blocks.BRAZIER_ACTIVE).withTextures("minecraft:block/brazier/base", "minecraft:block/brazier/side"));
 
-        addDispatch(new StandardBlockModel<>(Blocks.MOBSPAWNER).withTextures("minecraft:block/mobspawner"));
-        addDispatch(new TransparentBlockModel<>(Blocks.MOBSPAWNER_DEACTIVATED, true).withTextures("minecraft:block/mobspawner"));
+        addDispatch(new BlockModelStandard<>(Blocks.MOBSPAWNER).withTextures("minecraft:block/mobspawner"));
+        addDispatch(new BlockModelTransparent<>(Blocks.MOBSPAWNER_DEACTIVATED, true).withTextures("minecraft:block/mobspawner"));
 
-        addDispatch(new StandardBlockModel<>(Blocks.WORKBENCH).withTextures("minecraft:block/workbench/top", "minecraft:block/workbench/bottom", "minecraft:block/workbench/front", "minecraft:block/workbench/side", "minecraft:block/workbench/front", "minecraft:block/workbench/side"));
+        addDispatch(new BlockModelStandard<>(Blocks.WORKBENCH).withTextures("minecraft:block/workbench/top", "minecraft:block/workbench/bottom", "minecraft:block/workbench/front", "minecraft:block/workbench/side", "minecraft:block/workbench/front", "minecraft:block/workbench/side"));
 
-        addDispatch(new FurnaceBlockModel<>(Blocks.FURNACE_STONE_IDLE).withTextures("minecraft:block/furnace_stone/top", "minecraft:block/furnace_stone/bottom", "minecraft:block/furnace_stone/idle_front", "minecraft:block/furnace_stone/side", "minecraft:block/furnace_stone/side", "minecraft:block/furnace_stone/side"));
-        addDispatch(new FurnaceBlockModel<>(Blocks.FURNACE_STONE_ACTIVE).withTextures("minecraft:block/furnace_stone/top", "minecraft:block/furnace_stone/bottom", "minecraft:block/furnace_stone/active_front", "minecraft:block/furnace_stone/side", "minecraft:block/furnace_stone/side", "minecraft:block/furnace_stone/side"));
-        addDispatch(new FurnaceBlockModel<>(Blocks.FURNACE_BLAST_IDLE).withTextures("minecraft:block/furnace_blast/top", "minecraft:block/furnace_blast/bottom", "minecraft:block/furnace_blast/idle_front", "minecraft:block/furnace_blast/side", "minecraft:block/furnace_blast/side", "minecraft:block/furnace_blast/side"));
-        addDispatch(new FurnaceBlockModel<>(Blocks.FURNACE_BLAST_ACTIVE).withTextures("minecraft:block/furnace_blast/top", "minecraft:block/furnace_blast/bottom", "minecraft:block/furnace_blast/active_front", "minecraft:block/furnace_blast/side", "minecraft:block/furnace_blast/side", "minecraft:block/furnace_blast/side"));
+        addDispatch(new BlockModelFurnace<>(Blocks.FURNACE_STONE_IDLE).withTextures("minecraft:block/furnace_stone/top", "minecraft:block/furnace_stone/bottom", "minecraft:block/furnace_stone/idle_front", "minecraft:block/furnace_stone/side", "minecraft:block/furnace_stone/side", "minecraft:block/furnace_stone/side"));
+        addDispatch(new BlockModelFurnace<>(Blocks.FURNACE_STONE_ACTIVE).withTextures("minecraft:block/furnace_stone/top", "minecraft:block/furnace_stone/bottom", "minecraft:block/furnace_stone/active_front", "minecraft:block/furnace_stone/side", "minecraft:block/furnace_stone/side", "minecraft:block/furnace_stone/side"));
+        addDispatch(new BlockModelFurnace<>(Blocks.FURNACE_BLAST_IDLE).withTextures("minecraft:block/furnace_blast/top", "minecraft:block/furnace_blast/bottom", "minecraft:block/furnace_blast/idle_front", "minecraft:block/furnace_blast/side", "minecraft:block/furnace_blast/side", "minecraft:block/furnace_blast/side"));
+        addDispatch(new BlockModelFurnace<>(Blocks.FURNACE_BLAST_ACTIVE).withTextures("minecraft:block/furnace_blast/top", "minecraft:block/furnace_blast/bottom", "minecraft:block/furnace_blast/active_front", "minecraft:block/furnace_blast/side", "minecraft:block/furnace_blast/side", "minecraft:block/furnace_blast/side"));
 
-        addDispatch(new HorizontalRotationBlockModel<>(Blocks.TROMMEL_IDLE).withTextures("minecraft:block/trommel/top", "minecraft:block/trommel/top", "minecraft:block/trommel/idle_front", "minecraft:block/trommel/side_slot", "minecraft:block/trommel/idle_front", "minecraft:block/trommel/side"));
-        addDispatch(new HorizontalRotationBlockModel<>(Blocks.TROMMEL_ACTIVE).withTextures("minecraft:block/trommel/top", "minecraft:block/trommel/top", "minecraft:block/trommel/active_front", "minecraft:block/trommel/side_slot", "minecraft:block/trommel/active_back", "minecraft:block/trommel/side"));
+        addDispatch(new BlockModelHorizontalRotation<>(Blocks.TROMMEL_IDLE).withTextures("minecraft:block/trommel/top", "minecraft:block/trommel/top", "minecraft:block/trommel/idle_front", "minecraft:block/trommel/side_slot", "minecraft:block/trommel/idle_front", "minecraft:block/trommel/side"));
+        addDispatch(new BlockModelHorizontalRotation<>(Blocks.TROMMEL_ACTIVE).withTextures("minecraft:block/trommel/top", "minecraft:block/trommel/top", "minecraft:block/trommel/active_front", "minecraft:block/trommel/side_slot", "minecraft:block/trommel/active_back", "minecraft:block/trommel/side"));
 
-        addDispatch(new StandardBlockModel<>(Blocks.CHEST_LEGACY).withTextures("minecraft:block/chest/planks/top"));
-        addDispatch(new StandardBlockModel<>(Blocks.CHEST_LEGACY_PAINTED).withTextures("minecraft:block/chest/planks/top"));
-        addDispatch(new ChestBlockModel<>(Blocks.CHEST_PLANKS_OAK, "minecraft:block/chest/planks/").withTextures("minecraft:block/chest/planks/top"));
-        addDispatch(new PaintedChestBlockModel<>(Blocks.CHEST_PLANKS_OAK_PAINTED).withTextures("minecraft:block/chest/planks/top"));
+        addDispatch(new BlockModelStandard<>(Blocks.CHEST_LEGACY).withTextures("minecraft:block/chest/planks/top"));
+        addDispatch(new BlockModelStandard<>(Blocks.CHEST_LEGACY_PAINTED).withTextures("minecraft:block/chest/planks/top"));
+        addDispatch(new BlockModelChest<>(Blocks.CHEST_PLANKS_OAK, "minecraft:block/chest/planks/").withTextures("minecraft:block/chest/planks/top"));
+        addDispatch(new BlockModelChestPainted<>(Blocks.CHEST_PLANKS_OAK_PAINTED).withTextures("minecraft:block/chest/planks/top"));
 
-        addDispatch(new CropsWheatBlockModel<>(Blocks.CROPS_WHEAT));
-        addDispatch(new CropsPumpkinBlockModel<>(Blocks.CROPS_PUMPKIN));
+        addDispatch(new BlockModelCropsWheat<>(Blocks.CROPS_WHEAT));
+        addDispatch(new BlockModelCropsPumpkin<>(Blocks.CROPS_PUMPKIN));
 
-        addDispatch(new FarmlandBlockModel<>(Blocks.FARMLAND_DIRT).withTextures("minecraft:block/farmland/dry"));
+        addDispatch(new BlockModelFarmland<>(Blocks.FARMLAND_DIRT).withTextures("minecraft:block/farmland/dry"));
 
-        addDispatch(new EmptyBlockModel(Blocks.SIGN_POST_PLANKS_OAK).withTextures("minecraft:block/planks/oak"));
-        addDispatch(new EmptyBlockModel(Blocks.SIGN_WALL_PLANKS_OAK).withTextures("minecraft:block/planks/oak"));
-        addDispatch(new EmptyBlockModel(Blocks.FLAG).withTextures("minecraft:block/planks/oak"));
+        addDispatch(new BlockModelEmpty(Blocks.SIGN_POST_PLANKS_OAK).withTextures("minecraft:block/planks/oak"));
+        addDispatch(new BlockModelEmpty(Blocks.SIGN_WALL_PLANKS_OAK).withTextures("minecraft:block/planks/oak"));
+        addDispatch(new BlockModelEmpty(Blocks.FLAG).withTextures("minecraft:block/planks/oak"));
 
-        addDispatch(new LayerBlockModel<>(Blocks.LAYER_SNOW).withTextures("minecraft:block/block_snow"));
-        addDispatch(new LayerBlockModel<>(Blocks.LAYER_LEAVES_OAK).withTextures("minecraft:block/leaves/oak_fancy"));
-        addDispatch(new LayerBlockModel<>(Blocks.LAYER_SLATE).withTextures("minecraft:block/slate_top", "minecraft:block/slate_side"));
+        addDispatch(new BlockModelLayer<>(Blocks.LAYER_SNOW).withTextures("minecraft:block/block_snow"));
+        addDispatch(new BlockModelLayer<>(Blocks.LAYER_LEAVES_OAK).withTextures("minecraft:block/leaves/oak_fancy"));
+        addDispatch(new BlockModelLayer<>(Blocks.LAYER_SLATE).withTextures("minecraft:block/slate_top", "minecraft:block/slate_side"));
 
-        addDispatch(new IceBlockModel<>(Blocks.ICE).withTextures("minecraft:block/ice"));
-        addDispatch(new StandardBlockModel<>(Blocks.PERMAICE).withTextures("minecraft:block/permaice"));
+        addDispatch(new BlockModelIce<>(Blocks.ICE).withTextures("minecraft:block/ice"));
+        addDispatch(new BlockModelStandard<>(Blocks.PERMAICE).withTextures("minecraft:block/permaice"));
 
-        addDispatch(new StandardBlockModel<>(Blocks.BLOCK_SNOW).withTextures("minecraft:block/block_snow"));
+        addDispatch(new BlockModelStandard<>(Blocks.BLOCK_SNOW).withTextures("minecraft:block/block_snow"));
 
-        addDispatch(new CactusBlockModel<>(Blocks.CACTUS).withTextures("minecraft:block/cactus/top", "minecraft:block/cactus/bottom", "minecraft:block/cactus/side"));
+        addDispatch(new BlockModelCactus<>(Blocks.CACTUS).withTextures("minecraft:block/cactus/top", "minecraft:block/cactus/bottom", "minecraft:block/cactus/side"));
 
-        addDispatch(new StandardBlockModel<>(Blocks.BLOCK_CLAY).withTextures("minecraft:block/block_clay"));
+        addDispatch(new BlockModelStandard<>(Blocks.BLOCK_CLAY).withTextures("minecraft:block/block_clay"));
 
-        addDispatch(new CrossedSquaresBlockModel<>(Blocks.SUGARCANE).withTextures("minecraft:block/sugarcane"));
+        addDispatch(new BlockModelCrossedSquares<>(Blocks.SUGARCANE).withTextures("minecraft:block/sugarcane"));
 
-        addDispatch(new AxisAlignedBlockModel<>(Blocks.BLOCK_SUGARCANE).withTextures("minecraft:block/block_sugarcane/top", "minecraft:block/block_sugarcane/side"));
-        addDispatch(new AxisAlignedBlockModel<>(Blocks.BLOCK_SUGARCANE_BAKED).withTextures("minecraft:block/block_baked_sugarcane/top", "minecraft:block/block_baked_sugarcane/side"));
+        addDispatch(new BlockModelAxisAligned<>(Blocks.BLOCK_SUGARCANE).withTextures("minecraft:block/block_sugarcane/top", "minecraft:block/block_sugarcane/side"));
+        addDispatch(new BlockModelAxisAligned<>(Blocks.BLOCK_SUGARCANE_BAKED).withTextures("minecraft:block/block_baked_sugarcane/top", "minecraft:block/block_baked_sugarcane/side"));
 
-        addDispatch(new StandardBlockModel<>(Blocks.JUKEBOX).withTextures("minecraft:block/jukebox/top", "minecraft:block/jukebox/bottom", "minecraft:block/jukebox/side"));
+        addDispatch(new BlockModelStandard<>(Blocks.JUKEBOX).withTextures("minecraft:block/jukebox/top", "minecraft:block/jukebox/bottom", "minecraft:block/jukebox/side"));
 
-        addDispatch(new HorizontalRotationBlockModel<>(Blocks.PUMPKIN).withTextures("minecraft:block/pumpkin/top", "minecraft:block/pumpkin/bottom", "minecraft:block/pumpkin/side"));
-        addDispatch(new HorizontalRotationBlockModel<>(Blocks.PUMPKIN_CARVED_IDLE).withTextures("minecraft:block/pumpkin_carved/top", "minecraft:block/pumpkin_carved/bottom", "minecraft:block/pumpkin_carved/front", "minecraft:block/pumpkin_carved/side", "minecraft:block/pumpkin_carved/side", "minecraft:block/pumpkin_carved/side"));
-        addDispatch(new HorizontalRotationBlockModel<>(Blocks.PUMPKIN_CARVED_ACTIVE).withTextures("minecraft:block/pumpkin_carved_lit/top", "minecraft:block/pumpkin_carved_lit/bottom", "minecraft:block/pumpkin_carved_lit/front", "minecraft:block/pumpkin_carved_lit/side", "minecraft:block/pumpkin_carved_lit/side", "minecraft:block/pumpkin_carved_lit/side"));
-        addDispatch(new RedstonePumpkinBlockModel(Blocks.PUMPKIN_REDSTONE).withTextures("minecraft:block/pumpkin_redstone/top", "minecraft:block/pumpkin_redstone/bottom", "minecraft:block/pumpkin_redstone/front", "minecraft:block/pumpkin_redstone/side", "minecraft:block/pumpkin_redstone/side", "minecraft:block/pumpkin_redstone/side"));
+        addDispatch(new BlockModelHorizontalRotation<>(Blocks.PUMPKIN).withTextures("minecraft:block/pumpkin/top", "minecraft:block/pumpkin/bottom", "minecraft:block/pumpkin/side"));
+        addDispatch(new BlockModelHorizontalRotation<>(Blocks.PUMPKIN_CARVED_IDLE).withTextures("minecraft:block/pumpkin_carved/top", "minecraft:block/pumpkin_carved/bottom", "minecraft:block/pumpkin_carved/front", "minecraft:block/pumpkin_carved/side", "minecraft:block/pumpkin_carved/side", "minecraft:block/pumpkin_carved/side"));
+        addDispatch(new BlockModelHorizontalRotation<>(Blocks.PUMPKIN_CARVED_ACTIVE).withTextures("minecraft:block/pumpkin_carved_lit/top", "minecraft:block/pumpkin_carved_lit/bottom", "minecraft:block/pumpkin_carved_lit/front", "minecraft:block/pumpkin_carved_lit/side", "minecraft:block/pumpkin_carved_lit/side", "minecraft:block/pumpkin_carved_lit/side"));
+        addDispatch(new BlockModelPumpkinRedstone(Blocks.PUMPKIN_REDSTONE).withTextures("minecraft:block/pumpkin_redstone/top", "minecraft:block/pumpkin_redstone/bottom", "minecraft:block/pumpkin_redstone/front", "minecraft:block/pumpkin_redstone/side", "minecraft:block/pumpkin_redstone/side", "minecraft:block/pumpkin_redstone/side"));
 
 
-        addDispatch(new StandardBlockModel<>(Blocks.COBBLE_NETHERRACK).withTextures("minecraft:block/cobbled_netherrack"));
-        addDispatch(new StandardBlockModel<>(Blocks.COBBLE_NETHERRACK_IGNEOUS).withTextures("minecraft:block/cobbled_netherrack_igneous").withOverbrightTexture("minecraft:block/cobbled_netherrack_igneous_overlay"));
-        addDispatch(new StandardBlockModel<>(Blocks.COBBLE_NETHERRACK_MOSSY).withTextures("minecraft:block/cobbled_netherrack_mossy"));
-        addDispatch(new StandardBlockModel<>(Blocks.NETHERRACK).withTextures("minecraft:block/netherrack"));
-        addDispatch(new StandardBlockModel<>(Blocks.BRICK_NETHERRACK).withTextures("minecraft:block/brick_netherrack"));
-        addDispatch(new SlabBlockModel<>(Blocks.SLAB_NETHERRACK_POLISHED));
-        addDispatch(new SlabBlockModel<>(Blocks.SLAB_COBBLE_NETHERRACK));
-        addDispatch(new SlabBlockModel<>(Blocks.SLAB_BRICK_NETHERRACK));
-        addDispatch(new StairsBlockModel<>(Blocks.STAIRS_COBBLE_NETHERRACK));
-        addDispatch(new StairsBlockModel<>(Blocks.STAIRS_BRICK_NETHERRACK));
+        addDispatch(new BlockModelStandard<>(Blocks.COBBLE_NETHERRACK).withTextures("minecraft:block/cobbled_netherrack"));
+        addDispatch(new BlockModelStandard<>(Blocks.COBBLE_NETHERRACK_IGNEOUS).withTextures("minecraft:block/cobbled_netherrack_igneous").withOverbrightTexture("minecraft:block/cobbled_netherrack_igneous_overlay"));
+        addDispatch(new BlockModelStandard<>(Blocks.COBBLE_NETHERRACK_MOSSY).withTextures("minecraft:block/cobbled_netherrack_mossy"));
+        addDispatch(new BlockModelStandard<>(Blocks.NETHERRACK).withTextures("minecraft:block/netherrack"));
+        addDispatch(new BlockModelStandard<>(Blocks.BRICK_NETHERRACK).withTextures("minecraft:block/brick_netherrack"));
+        addDispatch(new BlockModelSlab<>(Blocks.SLAB_NETHERRACK_POLISHED));
+        addDispatch(new BlockModelSlab<>(Blocks.SLAB_COBBLE_NETHERRACK));
+        addDispatch(new BlockModelSlab<>(Blocks.SLAB_BRICK_NETHERRACK));
+        addDispatch(new BlockModelStairs<>(Blocks.STAIRS_COBBLE_NETHERRACK));
+        addDispatch(new BlockModelStairs<>(Blocks.STAIRS_BRICK_NETHERRACK));
 
-        addDispatch(new StandardBlockModel<>(Blocks.SOULSAND).withTextures("minecraft:block/soulsand"));
-        addDispatch(new StandardBlockModel<>(Blocks.SOULSCHIST).withTextures("minecraft:block/soulschist"));
+        addDispatch(new BlockModelStandard<>(Blocks.SOULSAND).withTextures("minecraft:block/soulsand"));
+        addDispatch(new BlockModelStandard<>(Blocks.SOULSCHIST).withTextures("minecraft:block/soulschist"));
 
-        addDispatch(new StandardBlockModel<>(Blocks.GLOWSTONE).withTextures("minecraft:block/glowstone"));
+        addDispatch(new BlockModelStandard<>(Blocks.GLOWSTONE).withTextures("minecraft:block/glowstone"));
 
-        addDispatch(new PortalBlockModel<>(Blocks.PORTAL_NETHER, "minecraft:block/portal_nether/").withTextures("minecraft:block/portal_nether"));
-        addDispatch(new PortalBlockModel<>(Blocks.PORTAL_PARADISE, "minecraft:block/portal_paradise/").withTextures("minecraft:block/portal_nether"));
+        addDispatch(new BlockModelPortal<>(Blocks.PORTAL_NETHER, "minecraft:block/portal_nether/").withTextures("minecraft:block/portal_nether"));
+        addDispatch(new BlockModelPortal<>(Blocks.PORTAL_PARADISE, "minecraft:block/portal_paradise/").withTextures("minecraft:block/portal_nether"));
 
-        addDispatch(new CakeBlockModel<>(Blocks.CAKE).withTextures("minecraft:block/cake/top", "minecraft:block/cake/bottom", "minecraft:block/cake/side"));
-        addDispatch(new PumpkinPieBlockModel<>(Blocks.PUMPKIN_PIE).withTextures("minecraft:block/pumpkin_pie/top", "minecraft:block/pumpkin_pie/bottom", "minecraft:block/pumpkin_pie/side"));
+        addDispatch(new BlockModelCake<>(Blocks.CAKE).withTextures("minecraft:block/cake/top", "minecraft:block/cake/bottom", "minecraft:block/cake/side"));
+        addDispatch(new BlockModelPiePumpkin<>(Blocks.PUMPKIN_PIE).withTextures("minecraft:block/pumpkin_pie/top", "minecraft:block/pumpkin_pie/bottom", "minecraft:block/pumpkin_pie/side"));
 
-        addDispatch(new LampBlockModel<>(Blocks.LAMP_IDLE));
-        addDispatch(new LampBlockModel<>(Blocks.LAMP_ACTIVE));
+        addDispatch(new BlockModelLamp<>(Blocks.LAMP_IDLE));
+        addDispatch(new BlockModelLamp<>(Blocks.LAMP_ACTIVE));
 
-        addDispatch(new LanternBlockModel<>(Blocks.LANTERN_FIREFLY_GREEN).withTextures("minecraft:block/lantern_firefly/green"));
-        addDispatch(new LanternBlockModel<>(Blocks.LANTERN_FIREFLY_BLUE).withTextures("minecraft:block/lantern_firefly/blue"));
-        addDispatch(new LanternBlockModel<>(Blocks.LANTERN_FIREFLY_ORANGE).withTextures("minecraft:block/lantern_firefly/orange"));
-        addDispatch(new LanternBlockModel<>(Blocks.LANTERN_FIREFLY_RED).withTextures("minecraft:block/lantern_firefly/red"));
-        addDispatch(new JarBlockModel<>(Blocks.JAR_GLASS));
+        addDispatch(new BlockModelLantern<>(Blocks.LANTERN_FIREFLY_GREEN).withTextures("minecraft:block/lantern_firefly/green"));
+        addDispatch(new BlockModelLantern<>(Blocks.LANTERN_FIREFLY_BLUE).withTextures("minecraft:block/lantern_firefly/blue"));
+        addDispatch(new BlockModelLantern<>(Blocks.LANTERN_FIREFLY_ORANGE).withTextures("minecraft:block/lantern_firefly/orange"));
+        addDispatch(new BlockModelLantern<>(Blocks.LANTERN_FIREFLY_RED).withTextures("minecraft:block/lantern_firefly/red"));
+        addDispatch(new BlockModelJar<>(Blocks.JAR_GLASS));
 
-        addDispatch(new PebblesBlockModel<>(Blocks.OVERLAY_PEBBLES));
+        addDispatch(new BlockModelPebbles<>(Blocks.OVERLAY_PEBBLES));
 
-        addDispatch(new FenceThinBlockModel<>(Blocks.FENCE_CHAINLINK,TextureRegistry.getTexture("minecraft:block/fence_chain/center"), null, TextureRegistry.getTexture("minecraft:block/fence_chain/top"), TextureRegistry.getTexture("minecraft:block/fence_chain/column")).withTextures("minecraft:block/fence_chain/center"));
-        addDispatch(new FenceThinBlockModel<>(Blocks.FENCE_PAPER_WALL,TextureRegistry.getTexture("minecraft:block/fence_paper/center"), null, null, TextureRegistry.getTexture("minecraft:block/fence_paper/column")).withTextures("minecraft:block/fence_paper/center"));
-        addDispatch(new FenceThinBlockModel<>(Blocks.FENCE_STEEL,TextureRegistry.getTexture("minecraft:block/fence_steel/center"), null, TextureRegistry.getTexture("minecraft:block/fence_steel/top"), TextureRegistry.getTexture("minecraft:block/fence_steel/column")).withTextures("minecraft:block/fence_steel/center"));
+        addDispatch(new BlockModelFenceThin<>(Blocks.FENCE_CHAINLINK,TextureRegistry.getTexture("minecraft:block/fence_chain/center"), null, TextureRegistry.getTexture("minecraft:block/fence_chain/top"), TextureRegistry.getTexture("minecraft:block/fence_chain/column")).withTextures("minecraft:block/fence_chain/center"));
+        addDispatch(new BlockModelFenceThin<>(Blocks.FENCE_PAPER_WALL,TextureRegistry.getTexture("minecraft:block/fence_paper/center"), null, null, TextureRegistry.getTexture("minecraft:block/fence_paper/column")).withTextures("minecraft:block/fence_paper/center"));
+        addDispatch(new BlockModelFenceThin<>(Blocks.FENCE_STEEL,TextureRegistry.getTexture("minecraft:block/fence_steel/center"), null, TextureRegistry.getTexture("minecraft:block/fence_steel/top"), TextureRegistry.getTexture("minecraft:block/fence_steel/column")).withTextures("minecraft:block/fence_steel/center"));
 
-        addDispatch(new BasketBlockModel<>(Blocks.BASKET).withTextures("minecraft:block/basket/bottom", "minecraft:block/basket/side"));
+        addDispatch(new BlockModelBasket<>(Blocks.BASKET).withTextures("minecraft:block/basket/bottom", "minecraft:block/basket/side"));
 
-        addDispatch(new StandardBlockModel<>(Blocks.PAPER_WALL).withTextures("minecraft:block/paperwall"));
+        addDispatch(new BlockModelStandard<>(Blocks.PAPER_WALL).withTextures("minecraft:block/paperwall"));
     }
 }
diff --git a/src/main/java/net/minecraft/client/render/block/model/DoorBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelDoor.java
similarity index 95%
rename from src/main/java/net/minecraft/client/render/block/model/DoorBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelDoor.java
index 7af28c992..a3ca032ef 100644
--- a/src/main/java/net/minecraft/client/render/block/model/DoorBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelDoor.java
@@ -5,11 +5,11 @@ import net.minecraft.client.render.RenderBlocks;
 import net.minecraft.client.render.texture.stitcher.IconCoordinate;
 import net.minecraft.client.render.tessellator.Tessellator;
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.DoorBlock;
+import net.minecraft.core.block.BlockDoor;
 import net.minecraft.core.util.helper.Side;
 
-public class DoorBlockModel<T extends DoorBlock> extends StandardBlockModel<T> {
-    public DoorBlockModel(Block block) {
+public class BlockModelDoor<T extends BlockDoor> extends BlockModelStandard<T> {
+    public BlockModelDoor(Block block) {
         super(block);
     }
     
@@ -43,8 +43,8 @@ public class DoorBlockModel<T extends DoorBlock> extends StandardBlockModel<T> {
 			sideEastWest = 0.6f;
 		}
 		
-		boolean aboveIsDoor = renderBlocks.blockAccess.getBlock(x, y + 1, z) instanceof DoorBlock;
-		boolean belowIsDoor = renderBlocks.blockAccess.getBlock(x, y - 1, z) instanceof DoorBlock;
+		boolean aboveIsDoor = renderBlocks.blockAccess.getBlock(x, y + 1, z) instanceof BlockDoor;
+		boolean belowIsDoor = renderBlocks.blockAccess.getBlock(x, y - 1, z) instanceof BlockDoor;
 
 		int meta = renderBlocks.blockAccess.getBlockMetadata(x, y, z);
 		
diff --git a/src/main/java/net/minecraft/client/render/block/model/GlassDoorBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelDoorGlass.java
similarity index 61%
rename from src/main/java/net/minecraft/client/render/block/model/GlassDoorBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelDoorGlass.java
index 2e7b055ad..a2c5ba964 100644
--- a/src/main/java/net/minecraft/client/render/block/model/GlassDoorBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelDoorGlass.java
@@ -1,11 +1,11 @@
 package net.minecraft.client.render.block.model;
 
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.DoorBlock;
+import net.minecraft.core.block.BlockDoor;
 import net.minecraft.core.util.helper.Side;
 
-public class GlassDoorBlockModel<T extends DoorBlock> extends DoorBlockModel<T> {
-    public GlassDoorBlockModel(Block block) {
+public class BlockModelDoorGlass<T extends BlockDoor> extends BlockModelDoor<T> {
+    public BlockModelDoorGlass(Block block) {
         super(block);
     }
     @Override
diff --git a/src/main/java/net/minecraft/client/render/block/model/PaintedDoorBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelDoorPainted.java
similarity index 89%
rename from src/main/java/net/minecraft/client/render/block/model/PaintedDoorBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelDoorPainted.java
index 790e71498..61dd40e60 100644
--- a/src/main/java/net/minecraft/client/render/block/model/PaintedDoorBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelDoorPainted.java
@@ -3,12 +3,12 @@ package net.minecraft.client.render.block.model;
 import net.minecraft.client.render.texture.stitcher.IconCoordinate;
 import net.minecraft.client.render.texture.stitcher.TextureRegistry;
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.DoorBlock;
+import net.minecraft.core.block.BlockDoor;
 import net.minecraft.core.util.helper.Axis;
 import net.minecraft.core.util.helper.DyeColor;
 import net.minecraft.core.util.helper.Side;
 
-public class PaintedDoorBlockModel<T extends DoorBlock> extends DoorBlockModel<T> {
+public class BlockModelDoorPainted<T extends BlockDoor> extends BlockModelDoor<T> {
     public static final IconCoordinate[] doorBottomTextures = new IconCoordinate[DyeColor.COLOR_AMOUNT];
     public static final IconCoordinate[] doorTopTextures = new IconCoordinate[DyeColor.COLOR_AMOUNT];
     public static final IconCoordinate[] frameTopTextures = new IconCoordinate[DyeColor.COLOR_AMOUNT];
@@ -21,7 +21,7 @@ public class PaintedDoorBlockModel<T extends DoorBlock> extends DoorBlockModel<T
         }
     }
     private final boolean isTop;
-    public PaintedDoorBlockModel(Block block, boolean isTop) {
+    public BlockModelDoorPainted(Block block, boolean isTop) {
         super(block);
         this.isTop = isTop;
     }
diff --git a/src/main/java/net/minecraft/client/render/block/model/EmptyBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelEmpty.java
similarity index 88%
rename from src/main/java/net/minecraft/client/render/block/model/EmptyBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelEmpty.java
index 0ebe57995..4364c2b58 100644
--- a/src/main/java/net/minecraft/client/render/block/model/EmptyBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelEmpty.java
@@ -6,8 +6,8 @@ import net.minecraft.core.block.Block;
 import net.minecraft.core.util.helper.Side;
 import org.jetbrains.annotations.Nullable;
 
-public class EmptyBlockModel extends StandardBlockModel<Block> {
-    public EmptyBlockModel(Block block) {
+public class BlockModelEmpty extends BlockModelStandard<Block> {
+    public BlockModelEmpty(Block block) {
         super(block);
     }
 
diff --git a/src/main/java/net/minecraft/client/render/block/model/FarmlandBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelFarmland.java
similarity index 86%
rename from src/main/java/net/minecraft/client/render/block/model/FarmlandBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelFarmland.java
index bf777338d..3d01103ac 100644
--- a/src/main/java/net/minecraft/client/render/block/model/FarmlandBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelFarmland.java
@@ -4,26 +4,26 @@ import net.minecraft.client.render.texture.stitcher.IconCoordinate;
 import net.minecraft.client.render.texture.stitcher.TextureRegistry;
 import net.minecraft.core.block.Block;
 import net.minecraft.core.block.Blocks;
-import net.minecraft.core.block.FarmlandBlock;
+import net.minecraft.core.block.BlockFarmland;
 import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.world.WorldSource;
 
-public class FarmlandBlockModel<T extends Block> extends StandardBlockModel<T> {
+public class BlockModelFarmland<T extends Block> extends BlockModelStandard<T> {
     protected IconCoordinate topWet = TextureRegistry.getTexture("minecraft:block/farmland/wet_top");
     protected IconCoordinate topWetFertilized = TextureRegistry.getTexture("minecraft:block/farmland/wet_fertilized_top");
     protected IconCoordinate topDry = TextureRegistry.getTexture("minecraft:block/farmland/dry_top");
     protected IconCoordinate topDryFertilized = TextureRegistry.getTexture("minecraft:block/farmland/dry_fertilized_top");
     protected IconCoordinate mud = TextureRegistry.getTexture("minecraft:block/farmland/wet");
 
-    public FarmlandBlockModel(Block block) {
+    public BlockModelFarmland(Block block) {
         super(block);
     }
 
     @Override
     public IconCoordinate getBlockTextureFromSideAndMetadata(Side side, final int data)
     {
-        boolean isWet = FarmlandBlock.isWet(data);
-        boolean isFertilized = FarmlandBlock.isFertilized(data);
+        boolean isWet = BlockFarmland.isWet(data);
+        boolean isFertilized = BlockFarmland.isFertilized(data);
 
         if (side == Side.TOP) {
             if (isWet && isFertilized) {
diff --git a/src/main/java/net/minecraft/client/render/block/model/FenceBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelFence.java
similarity index 97%
rename from src/main/java/net/minecraft/client/render/block/model/FenceBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelFence.java
index c9b06bace..4829a7b28 100644
--- a/src/main/java/net/minecraft/client/render/block/model/FenceBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelFence.java
@@ -3,13 +3,13 @@ package net.minecraft.client.render.block.model;
 import net.minecraft.client.render.block.color.BlockColorDispatcher;
 import net.minecraft.client.render.tessellator.Tessellator;
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.FenceBlock;
+import net.minecraft.core.block.BlockFence;
 import net.minecraft.core.util.helper.Side;
 import org.jetbrains.annotations.Nullable;
 import org.lwjgl.opengl.GL11;
 
-public class FenceBlockModel<T  extends FenceBlock> extends StandardBlockModel<T> {
-    public FenceBlockModel(Block block) {
+public class BlockModelFence<T  extends BlockFence> extends BlockModelStandard<T> {
+    public BlockModelFence(Block block) {
         super(block);
     }
 
diff --git a/src/main/java/net/minecraft/client/render/block/model/FenceGateBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelFenceGate.java
similarity index 97%
rename from src/main/java/net/minecraft/client/render/block/model/FenceGateBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelFenceGate.java
index ebfcf58ea..d9b674c8a 100644
--- a/src/main/java/net/minecraft/client/render/block/model/FenceGateBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelFenceGate.java
@@ -3,13 +3,13 @@ package net.minecraft.client.render.block.model;
 import net.minecraft.client.render.block.color.BlockColorDispatcher;
 import net.minecraft.client.render.tessellator.Tessellator;
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.FenceGateBlock;
+import net.minecraft.core.block.BlockFenceGate;
 import net.minecraft.core.util.helper.Side;
 import org.jetbrains.annotations.Nullable;
 import org.lwjgl.opengl.GL11;
 
-public class FenceGateBlockModel<T extends FenceGateBlock> extends StandardBlockModel<T> {
-    public FenceGateBlockModel(Block block) {
+public class BlockModelFenceGate<T extends BlockFenceGate> extends BlockModelStandard<T> {
+    public BlockModelFenceGate(Block block) {
         super(block);
     }
 
@@ -18,8 +18,8 @@ public class FenceGateBlockModel<T extends FenceGateBlock> extends StandardBlock
         block.setBlockBoundsBasedOnState(renderBlocks.blockAccess, x, y, z);
         boolean flag = true;
         int l = renderBlocks.blockAccess.getBlockMetadata(x, y, z);
-        boolean flag1 = FenceGateBlock.isOpen(l);
-        int i1 = FenceGateBlock.getDirection(l);
+        boolean flag1 = BlockFenceGate.isOpen(l);
+        int i1 = BlockFenceGate.getDirection(l);
         if(i1 == 3 || i1 == 1)
         {
             float f = 0.4375F;
diff --git a/src/main/java/net/minecraft/client/render/block/model/FenceGatePaintedBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelFenceGatePainted.java
similarity index 57%
rename from src/main/java/net/minecraft/client/render/block/model/FenceGatePaintedBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelFenceGatePainted.java
index 9e0419584..d9603f8fc 100644
--- a/src/main/java/net/minecraft/client/render/block/model/FenceGatePaintedBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelFenceGatePainted.java
@@ -2,17 +2,17 @@ package net.minecraft.client.render.block.model;
 
 import net.minecraft.client.render.texture.stitcher.IconCoordinate;
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.FenceGateBlock;
+import net.minecraft.core.block.BlockFenceGate;
 import net.minecraft.core.util.helper.Side;
 
-public class FenceGatePaintedBlockModel<T extends FenceGateBlock> extends FenceGateBlockModel<T> {
-    public FenceGatePaintedBlockModel(Block block) {
+public class BlockModelFenceGatePainted<T extends BlockFenceGate> extends BlockModelFenceGate<T> {
+    public BlockModelFenceGatePainted(Block block) {
         super(block);
     }
 
     @Override
     public IconCoordinate getBlockTextureFromSideAndMetadata(Side side, int meta) {
         meta = meta >> 4;
-        return PlanksPaintedBlockModel.texCoords[meta & 0x0F];
+        return BlockModelPlanksPainted.texCoords[meta & 0x0F];
     }
 }
diff --git a/src/main/java/net/minecraft/client/render/block/model/FencePaintedBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelFencePainted.java
similarity index 58%
rename from src/main/java/net/minecraft/client/render/block/model/FencePaintedBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelFencePainted.java
index 86aca6978..10ef9687a 100644
--- a/src/main/java/net/minecraft/client/render/block/model/FencePaintedBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelFencePainted.java
@@ -2,18 +2,18 @@ package net.minecraft.client.render.block.model;
 
 import net.minecraft.client.render.texture.stitcher.IconCoordinate;
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.FenceBlock;
+import net.minecraft.core.block.BlockFence;
 import net.minecraft.core.util.helper.Side;
 
-public class FencePaintedBlockModel<T extends FenceBlock> extends FenceBlockModel<T> {
+public class BlockModelFencePainted<T extends BlockFence> extends BlockModelFence<T> {
 
 
-    public FencePaintedBlockModel(Block block) {
+    public BlockModelFencePainted(Block block) {
         super(block);
     }
 
     @Override
     public IconCoordinate getBlockTextureFromSideAndMetadata(Side side, int meta) {
-        return PlanksPaintedBlockModel.texCoords[meta & 15];
+        return BlockModelPlanksPainted.texCoords[meta & 15];
     }
 }
diff --git a/src/main/java/net/minecraft/client/render/block/model/FenceThinBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelFenceThin.java
similarity index 98%
rename from src/main/java/net/minecraft/client/render/block/model/FenceThinBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelFenceThin.java
index 9dd8e40a6..6127db045 100644
--- a/src/main/java/net/minecraft/client/render/block/model/FenceThinBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelFenceThin.java
@@ -6,18 +6,18 @@ import net.minecraft.client.render.block.color.BlockColorDispatcher;
 import net.minecraft.client.render.texture.stitcher.IconCoordinate;
 import net.minecraft.client.render.tessellator.Tessellator;
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.ThinFenceBlock;
+import net.minecraft.core.block.BlockFenceThin;
 import net.minecraft.core.util.helper.Direction;
 import org.jetbrains.annotations.Nullable;
 import org.lwjgl.opengl.GL11;
 
-public class FenceThinBlockModel<T extends ThinFenceBlock> extends StandardBlockModel<T> {
+public class BlockModelFenceThin<T extends BlockFenceThin> extends BlockModelStandard<T> {
     private final IconCoordinate texIndex;
     private final IconCoordinate bottomTexIndex;
     private final IconCoordinate topTexIndex;
     private final IconCoordinate columnTexIndex;
 
-    public FenceThinBlockModel(Block block, IconCoordinate texIndex, IconCoordinate bottomTexIndex, IconCoordinate topTexIndex, IconCoordinate columnTexIndex){
+    public BlockModelFenceThin(Block block, IconCoordinate texIndex, IconCoordinate bottomTexIndex, IconCoordinate topTexIndex, IconCoordinate columnTexIndex){
         super(block);
         this.texIndex = texIndex;
         this.bottomTexIndex = bottomTexIndex;
diff --git a/src/main/java/net/minecraft/client/render/block/model/FireBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelFire.java
similarity index 94%
rename from src/main/java/net/minecraft/client/render/block/model/FireBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelFire.java
index c5030e9a7..0bbe850cb 100644
--- a/src/main/java/net/minecraft/client/render/block/model/FireBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelFire.java
@@ -5,17 +5,17 @@ import net.minecraft.client.render.texture.stitcher.IconCoordinate;
 import net.minecraft.client.render.tessellator.Tessellator;
 import net.minecraft.core.block.Block;
 import net.minecraft.core.block.Blocks;
-import net.minecraft.core.block.FireBlock;
+import net.minecraft.core.block.BlockFire;
 import net.minecraft.core.enums.LightLayer;
 import net.minecraft.core.util.helper.Side;
 
-public class FireBlockModel<T extends Block> extends StandardBlockModel<T> {
+public class BlockModelFire<T extends Block> extends BlockModelStandard<T> {
     private final boolean overrideRender;
-    public FireBlockModel(Block block) {
+    public BlockModelFire(Block block) {
         this(block, false);
     }
 
-    public FireBlockModel(Block block, boolean overrideRender) {
+    public BlockModelFire(Block block, boolean overrideRender) {
         super(block);
         this.overrideRender = overrideRender;
     }
@@ -40,7 +40,7 @@ public class FireBlockModel<T extends Block> extends StandardBlockModel<T> {
         double vMin = tex.getIconVMin();
         double vMax = tex.getIconVMax();
         final float yOffset = 1.4F;
-        if(overrideRender || renderBlocks.blockAccess.isBlockNormalCube(x, y - 1, z) || ((FireBlock)Blocks.FIRE).canBurn(renderBlocks.blockAccess, x, y - 1, z))
+        if(overrideRender || renderBlocks.blockAccess.isBlockNormalCube(x, y - 1, z) || ((BlockFire)Blocks.FIRE).canBurn(renderBlocks.blockAccess, x, y - 1, z))
         {
             double d8 = (double)x + 0.5D + 0.2D;
             double d9 = ((double)x + 0.5D) - 0.2D;
@@ -115,7 +115,7 @@ public class FireBlockModel<T extends Block> extends StandardBlockModel<T> {
                 uMax = uMin;
                 uMin = d10;
             }
-            if(((FireBlock)Blocks.FIRE).canBurn(renderBlocks.blockAccess, x - 1, y, z))
+            if(((BlockFire)Blocks.FIRE).canBurn(renderBlocks.blockAccess, x - 1, y, z))
             {
                 tessellator.addVertexWithUV((float)x + f3, (float)y + yOffset + f4, z + 1, uMax, vMin);
                 tessellator.addVertexWithUV(x, (float)(y) + f4, z + 1, uMax, vMax);
@@ -126,7 +126,7 @@ public class FireBlockModel<T extends Block> extends StandardBlockModel<T> {
                 tessellator.addVertexWithUV(x, (float)(y) + f4, z + 1, uMax, vMax);
                 tessellator.addVertexWithUV((float)x + f3, (float)y + yOffset + f4, z + 1, uMax, vMin);
             }
-            if(((FireBlock)Blocks.FIRE).canBurn(renderBlocks.blockAccess, x + 1, y, z))
+            if(((BlockFire)Blocks.FIRE).canBurn(renderBlocks.blockAccess, x + 1, y, z))
             {
                 tessellator.addVertexWithUV((float)(x + 1) - f3, (float)y + yOffset + f4, z, uMin, vMin);
                 tessellator.addVertexWithUV((x + 1), (float)(y) + f4, z, uMin, vMax);
@@ -137,7 +137,7 @@ public class FireBlockModel<T extends Block> extends StandardBlockModel<T> {
                 tessellator.addVertexWithUV((x + 1), (float)(y) + f4, z, uMin, vMax);
                 tessellator.addVertexWithUV((float)(x + 1) - f3, (float)y + yOffset + f4, z, uMin, vMin);
             }
-            if(((FireBlock)Blocks.FIRE).canBurn(renderBlocks.blockAccess, x, y, z - 1))
+            if(((BlockFire)Blocks.FIRE).canBurn(renderBlocks.blockAccess, x, y, z - 1))
             {
                 tessellator.addVertexWithUV(x, (float)y + yOffset + f4, (float)z + f3, uMax, vMin);
                 tessellator.addVertexWithUV(x, (float)(y) + f4, z, uMax, vMax);
@@ -148,7 +148,7 @@ public class FireBlockModel<T extends Block> extends StandardBlockModel<T> {
                 tessellator.addVertexWithUV(x, (float)(y) + f4, z, uMax, vMax);
                 tessellator.addVertexWithUV(x, (float)y + yOffset + f4, (float)z + f3, uMax, vMin);
             }
-            if(((FireBlock)Blocks.FIRE).canBurn(renderBlocks.blockAccess, x, y, z + 1))
+            if(((BlockFire)Blocks.FIRE).canBurn(renderBlocks.blockAccess, x, y, z + 1))
             {
                 tessellator.addVertexWithUV(x + 1, (float)y + yOffset + f4, (float)(z + 1) - f3, uMin, vMin);
                 tessellator.addVertexWithUV(x + 1, (float)(y) + f4, (z + 1), uMin, vMax);
@@ -159,7 +159,7 @@ public class FireBlockModel<T extends Block> extends StandardBlockModel<T> {
                 tessellator.addVertexWithUV(x + 1, (float)(y) + f4, (z + 1), uMin, vMax);
                 tessellator.addVertexWithUV(x + 1, (float)y + yOffset + f4, (float)(z + 1) - f3, uMin, vMin);
             }
-            if(((FireBlock)Blocks.FIRE).canBurn(renderBlocks.blockAccess, x, y + 1, z))
+            if(((BlockFire)Blocks.FIRE).canBurn(renderBlocks.blockAccess, x, y + 1, z))
             {
                 double d11 = (double)x + 0.5D + 0.5D;
                 double d13 = ((double)x + 0.5D) - 0.5D;
diff --git a/src/main/java/net/minecraft/client/render/block/model/StackedFlowerBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelFlowerStackable.java
similarity index 76%
rename from src/main/java/net/minecraft/client/render/block/model/StackedFlowerBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelFlowerStackable.java
index 8112551f7..41b48e2f2 100644
--- a/src/main/java/net/minecraft/client/render/block/model/StackedFlowerBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelFlowerStackable.java
@@ -1,30 +1,30 @@
-package net.minecraft.client.render.block.model;
-
-import net.minecraft.client.render.texture.stitcher.IconCoordinate;
-import net.minecraft.client.render.texture.stitcher.TextureRegistry;
-import net.minecraft.core.block.Block;
-import net.minecraft.core.block.StackedFlowerBlock;
-import net.minecraft.core.util.helper.Side;
-
-public class StackedFlowerBlockModel<T extends StackedFlowerBlock> extends CrossedSquaresBlockModel<T> {
-    private final IconCoordinate[] ICONS;
-
-    public StackedFlowerBlockModel(Block block, String baseTexture) {
-        super(block);
-
-        ICONS = new IconCoordinate[T.MAX_STACK_COUNT + 1];
-        for (int i = 0; i < T.MAX_STACK_COUNT + 1; i++) {
-            ICONS[i] = TextureRegistry.getTexture(baseTexture + i);
-        }
-    }
-
-    @Override
-    public IconCoordinate getBlockTextureFromSideAndMetadata(Side side, int data) {
-        final int stackCount = T.getStackCount(data);
-        if (stackCount > T.MAX_STACK_COUNT) {
-            return ICONS[0];
-        }
-
-        return ICONS[stackCount];
-    }
-}
+package net.minecraft.client.render.block.model;
+
+import net.minecraft.client.render.texture.stitcher.IconCoordinate;
+import net.minecraft.client.render.texture.stitcher.TextureRegistry;
+import net.minecraft.core.block.Block;
+import net.minecraft.core.block.BlockFlowerStackable;
+import net.minecraft.core.util.helper.Side;
+
+public class BlockModelFlowerStackable<T extends BlockFlowerStackable> extends BlockModelCrossedSquares<T> {
+    private final IconCoordinate[] ICONS;
+
+    public BlockModelFlowerStackable(Block block, String baseTexture) {
+        super(block);
+
+        ICONS = new IconCoordinate[T.MAX_STACK_COUNT + 1];
+        for (int i = 0; i < T.MAX_STACK_COUNT + 1; i++) {
+            ICONS[i] = TextureRegistry.getTexture(baseTexture + i);
+        }
+    }
+
+    @Override
+    public IconCoordinate getBlockTextureFromSideAndMetadata(Side side, int data) {
+        final int stackCount = T.getStackCount(data);
+        if (stackCount > T.MAX_STACK_COUNT) {
+            return ICONS[0];
+        }
+
+        return ICONS[stackCount];
+    }
+}
diff --git a/src/main/java/net/minecraft/client/render/block/model/FluidBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelFluid.java
similarity index 95%
rename from src/main/java/net/minecraft/client/render/block/model/FluidBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelFluid.java
index 648c2abbc..2f31f7fa6 100644
--- a/src/main/java/net/minecraft/client/render/block/model/FluidBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelFluid.java
@@ -5,14 +5,14 @@ import net.minecraft.client.render.block.color.BlockColorDispatcher;
 import net.minecraft.client.render.texture.stitcher.IconCoordinate;
 import net.minecraft.client.render.tessellator.Tessellator;
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.FluidBlock;
+import net.minecraft.core.block.BlockFluid;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.util.helper.MathHelper;
 import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.world.WorldSource;
 
-public class FluidBlockModel<T extends Block> extends StandardBlockModel<T> {
-    public FluidBlockModel(Block block) {
+public class BlockModelFluid<T extends Block> extends BlockModelStandard<T> {
+    public BlockModelFluid(Block block) {
         super(block);
     }
 
@@ -46,15 +46,15 @@ public class FluidBlockModel<T extends Block> extends StandardBlockModel<T> {
         final float yOff = 0.001f;
         Material material = block.blockMaterial;
         int meta = renderBlocks.blockAccess.getBlockMetadata(x, y, z);
-        float f7 = FluidBlock.getFluidHeight(renderBlocks.blockAccess, x, y, z, material);
-        float f8 = FluidBlock.getFluidHeight(renderBlocks.blockAccess, x, y, z + 1, material);
-        float f9 = FluidBlock.getFluidHeight(renderBlocks.blockAccess, x + 1, y, z + 1, material);
-        float f10 = FluidBlock.getFluidHeight(renderBlocks.blockAccess, x + 1, y, z, material);
+        float f7 = BlockFluid.getFluidHeight(renderBlocks.blockAccess, x, y, z, material);
+        float f8 = BlockFluid.getFluidHeight(renderBlocks.blockAccess, x, y, z + 1, material);
+        float f9 = BlockFluid.getFluidHeight(renderBlocks.blockAccess, x + 1, y, z + 1, material);
+        float f10 = BlockFluid.getFluidHeight(renderBlocks.blockAccess, x + 1, y, z, material);
         if(renderBlocks.renderAllFaces || renderTop)
         {
             didRender = true;
             IconCoordinate texture = getBlockTextureFromSideAndMetadata(Side.TOP, meta);
-            float rotation = (float) FluidBlock.getSlopeAngle(renderBlocks.blockAccess, x, y, z, material);
+            float rotation = (float) BlockFluid.getSlopeAngle(renderBlocks.blockAccess, x, y, z, material);
             if(rotation > -999F)
             {
                 texture = getBlockTextureFromSideAndMetadata(Side.NORTH, meta);
diff --git a/src/main/java/net/minecraft/client/render/block/model/FullRotatableBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelFullyRotatable.java
similarity index 85%
rename from src/main/java/net/minecraft/client/render/block/model/FullRotatableBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelFullyRotatable.java
index 02e606cd1..a1190075e 100644
--- a/src/main/java/net/minecraft/client/render/block/model/FullRotatableBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelFullyRotatable.java
@@ -1,75 +1,75 @@
-package net.minecraft.client.render.block.model;
-
-import net.minecraft.client.render.tessellator.Tessellator;
-import net.minecraft.client.render.texture.stitcher.IconCoordinate;
-import net.minecraft.core.block.Block;
-import net.minecraft.core.block.FullRotatableBlock;
-import net.minecraft.core.util.helper.Direction;
-import net.minecraft.core.util.helper.Side;
-import org.jetbrains.annotations.Nullable;
-
-public class FullRotatableBlockModel<T extends FullRotatableBlock> extends StandardBlockModel<T> {
-    public FullRotatableBlockModel(Block block) {
-        super(block);
-    }
-
-    @Override
-    public boolean render(Tessellator tessellator, int x, int y, int z) {
-        block.setBlockBoundsBasedOnState(renderBlocks.blockAccess, x, y, z);
-        final int meta = renderBlocks.blockAccess.getBlockMetadata(x, y, z);
-        final Direction dir = FullRotatableBlock.metaToDirection(meta);
-
-        switch (dir) {
-            case DOWN:
-                renderBlocks.uvRotateEast = 3;
-                renderBlocks.uvRotateWest = 3;
-                renderBlocks.uvRotateSouth = 3;
-                renderBlocks.uvRotateNorth = 3;
-                break;
-
-            case NORTH:
-                renderBlocks.uvRotateSouth = 1;
-                renderBlocks.uvRotateNorth = 2;
-                break;
-
-            case SOUTH:
-                renderBlocks.uvRotateSouth = 2;
-                renderBlocks.uvRotateNorth = 1;
-                renderBlocks.uvRotateTop = 3;
-                renderBlocks.uvRotateBottom = 3;
-                break;
-
-            case WEST:
-                renderBlocks.uvRotateEast = 1;
-                renderBlocks.uvRotateWest = 2;
-                renderBlocks.uvRotateTop = 2;
-                renderBlocks.uvRotateBottom = 1;
-                break;
-
-            case EAST:
-                renderBlocks.uvRotateEast = 2;
-                renderBlocks.uvRotateWest = 1;
-                renderBlocks.uvRotateTop = 1;
-                renderBlocks.uvRotateBottom = 2;
-                break;
-        }
-        final boolean result = renderStandardBlock(tessellator, block, x, y, z);
-        resetRenderBlocks();
-
-        return result;
-    }
-
-    @Override
-    public void renderBlockOnInventory(Tessellator tessellator, int metadata, float brightness, float alpha, @Nullable Integer lightmapCoordinate) {
-        super.renderBlockOnInventory(tessellator, 1, brightness, alpha, lightmapCoordinate);
-    }
-
-    @Override
-    public IconCoordinate getBlockTextureFromSideAndMetadata(Side side, int data) {
-        final Direction dir = FullRotatableBlock.metaToDirection(data);
-        if (side == dir.getSide()) {
-            return atlasIndices[Side.TOP.getId()];
-        }
-        return side.getDirection() != dir.getOpposite() ? atlasIndices[Side.NORTH.getId()] : atlasIndices[Side.BOTTOM.getId()];
-    }
-}
+package net.minecraft.client.render.block.model;
+
+import net.minecraft.client.render.tessellator.Tessellator;
+import net.minecraft.client.render.texture.stitcher.IconCoordinate;
+import net.minecraft.core.block.Block;
+import net.minecraft.core.block.BlockFullyRotatable;
+import net.minecraft.core.util.helper.Direction;
+import net.minecraft.core.util.helper.Side;
+import org.jetbrains.annotations.Nullable;
+
+public class BlockModelFullyRotatable<T extends BlockFullyRotatable> extends BlockModelStandard<T> {
+    public BlockModelFullyRotatable(Block block) {
+        super(block);
+    }
+
+    @Override
+    public boolean render(Tessellator tessellator, int x, int y, int z) {
+        block.setBlockBoundsBasedOnState(renderBlocks.blockAccess, x, y, z);
+        final int meta = renderBlocks.blockAccess.getBlockMetadata(x, y, z);
+        final Direction dir = BlockFullyRotatable.metaToDirection(meta);
+
+        switch (dir) {
+            case DOWN:
+                renderBlocks.uvRotateEast = 3;
+                renderBlocks.uvRotateWest = 3;
+                renderBlocks.uvRotateSouth = 3;
+                renderBlocks.uvRotateNorth = 3;
+                break;
+
+            case NORTH:
+                renderBlocks.uvRotateSouth = 1;
+                renderBlocks.uvRotateNorth = 2;
+                break;
+
+            case SOUTH:
+                renderBlocks.uvRotateSouth = 2;
+                renderBlocks.uvRotateNorth = 1;
+                renderBlocks.uvRotateTop = 3;
+                renderBlocks.uvRotateBottom = 3;
+                break;
+
+            case WEST:
+                renderBlocks.uvRotateEast = 1;
+                renderBlocks.uvRotateWest = 2;
+                renderBlocks.uvRotateTop = 2;
+                renderBlocks.uvRotateBottom = 1;
+                break;
+
+            case EAST:
+                renderBlocks.uvRotateEast = 2;
+                renderBlocks.uvRotateWest = 1;
+                renderBlocks.uvRotateTop = 1;
+                renderBlocks.uvRotateBottom = 2;
+                break;
+        }
+        final boolean result = renderStandardBlock(tessellator, block, x, y, z);
+        resetRenderBlocks();
+
+        return result;
+    }
+
+    @Override
+    public void renderBlockOnInventory(Tessellator tessellator, int metadata, float brightness, float alpha, @Nullable Integer lightmapCoordinate) {
+        super.renderBlockOnInventory(tessellator, 1, brightness, alpha, lightmapCoordinate);
+    }
+
+    @Override
+    public IconCoordinate getBlockTextureFromSideAndMetadata(Side side, int data) {
+        final Direction dir = BlockFullyRotatable.metaToDirection(data);
+        if (side == dir.getSide()) {
+            return atlasIndices[Side.TOP.getId()];
+        }
+        return side.getDirection() != dir.getOpposite() ? atlasIndices[Side.NORTH.getId()] : atlasIndices[Side.BOTTOM.getId()];
+    }
+}
diff --git a/src/main/java/net/minecraft/client/render/block/model/FurnaceBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelFurnace.java
similarity index 91%
rename from src/main/java/net/minecraft/client/render/block/model/FurnaceBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelFurnace.java
index 0324d511e..bbb864709 100644
--- a/src/main/java/net/minecraft/client/render/block/model/FurnaceBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelFurnace.java
@@ -8,10 +8,10 @@ import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.util.helper.Sides;
 import net.minecraft.core.world.WorldSource;
 
-public class FurnaceBlockModel<T extends Block>
-    extends HorizontalRotationBlockModel<T> {
+public class BlockModelFurnace<T extends Block>
+    extends BlockModelHorizontalRotation<T> {
 
-    public FurnaceBlockModel(Block block) {
+    public BlockModelFurnace(Block block) {
         super(block);
     }
 
diff --git a/src/main/java/net/minecraft/client/render/block/model/GrassBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelGrass.java
similarity index 98%
rename from src/main/java/net/minecraft/client/render/block/model/GrassBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelGrass.java
index 2a1808869..05fac8f56 100644
--- a/src/main/java/net/minecraft/client/render/block/model/GrassBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelGrass.java
@@ -13,7 +13,7 @@ import net.minecraft.core.world.WorldSource;
 import org.jetbrains.annotations.Nullable;
 import org.lwjgl.opengl.GL11;
 
-public class GrassBlockModel<T extends Block> extends StandardBlockModel<T> {
+public class BlockModelGrass<T extends Block> extends BlockModelStandard<T> {
     public static boolean useOverlay = false;
     private static final IconCoordinate[] overlayIndices = new IconCoordinate[]{
             null,
@@ -23,7 +23,7 @@ public class GrassBlockModel<T extends Block> extends StandardBlockModel<T> {
             TextureRegistry.getTexture("minecraft:block/grass/side_overlay"),
             TextureRegistry.getTexture("minecraft:block/grass/side_overlay")};
     protected IconCoordinate snowSide = TextureRegistry.getTexture("minecraft:block/grass/snowy_side");
-    public GrassBlockModel(Block block) {
+    public BlockModelGrass(Block block) {
         super(block);
     }
 
diff --git a/src/main/java/net/minecraft/client/render/block/model/HorizontalRotationBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelHorizontalRotation.java
similarity index 69%
rename from src/main/java/net/minecraft/client/render/block/model/HorizontalRotationBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelHorizontalRotation.java
index c79954cad..faaf02d26 100644
--- a/src/main/java/net/minecraft/client/render/block/model/HorizontalRotationBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelHorizontalRotation.java
@@ -2,19 +2,19 @@ package net.minecraft.client.render.block.model;
 
 import net.minecraft.client.render.texture.stitcher.IconCoordinate;
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.RotatableBlock;
+import net.minecraft.core.block.BlockRotatable;
 import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.util.helper.Sides;
 
-public class HorizontalRotationBlockModel<T extends Block> extends StandardBlockModel<T> {
-    public HorizontalRotationBlockModel(Block block) {
+public class BlockModelHorizontalRotation<T extends Block> extends BlockModelStandard<T> {
+    public BlockModelHorizontalRotation(Block block) {
         super(block);
     }
 
     @Override
     public IconCoordinate getBlockTextureFromSideAndMetadata(Side side, int data)
     {
-        int index = Sides.orientationLookUpHorizontal[6 * Math.min(data & RotatableBlock.MASK_DIRECTION, 5) + side.getId()];
+        int index = Sides.orientationLookUpHorizontal[6 * Math.min(data & BlockRotatable.MASK_DIRECTION, 5) + side.getId()];
         if (index >= Sides.orientationLookUpHorizontal.length) return atlasIndices[0];
         return atlasIndices[index];
     }
diff --git a/src/main/java/net/minecraft/client/render/block/model/IceBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelIce.java
similarity index 75%
rename from src/main/java/net/minecraft/client/render/block/model/IceBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelIce.java
index f0793e134..1dd6af6ef 100644
--- a/src/main/java/net/minecraft/client/render/block/model/IceBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelIce.java
@@ -3,8 +3,8 @@ package net.minecraft.client.render.block.model;
 import net.minecraft.core.block.Block;
 import net.minecraft.core.world.WorldSource;
 
-public class IceBlockModel<T extends Block> extends TransparentBlockModel<T> {
-    public IceBlockModel(Block block) {
+public class BlockModelIce<T extends Block> extends BlockModelTransparent<T> {
+    public BlockModelIce(Block block) {
         super(block, false);
     }
 
diff --git a/src/main/java/net/minecraft/client/render/block/model/JarBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelJar.java
similarity index 98%
rename from src/main/java/net/minecraft/client/render/block/model/JarBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelJar.java
index 2add4dbee..405e68ed7 100644
--- a/src/main/java/net/minecraft/client/render/block/model/JarBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelJar.java
@@ -7,10 +7,10 @@ import net.minecraft.client.render.tessellator.Tessellator;
 import net.minecraft.core.block.Block;
 import net.minecraft.core.util.helper.Side;
 
-public class JarBlockModel<T extends Block> extends StandardBlockModel<T> {
+public class BlockModelJar<T extends Block> extends BlockModelStandard<T> {
     protected IconCoordinate jarEmpty = TextureRegistry.getTexture("minecraft:block/jar");
     protected IconCoordinate jarFull = TextureRegistry.getTexture("minecraft:block/jar_dirt");
-    public JarBlockModel(Block block) {
+    public BlockModelJar(Block block) {
         super(block);
     }
 
diff --git a/src/main/java/net/minecraft/client/render/block/model/LadderBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelLadder.java
similarity index 96%
rename from src/main/java/net/minecraft/client/render/block/model/LadderBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelLadder.java
index cb1537d4b..34cdf4f63 100644
--- a/src/main/java/net/minecraft/client/render/block/model/LadderBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelLadder.java
@@ -6,8 +6,8 @@ import net.minecraft.client.render.tessellator.Tessellator;
 import net.minecraft.core.block.Block;
 import net.minecraft.core.util.helper.Side;
 
-public class LadderBlockModel<T extends Block> extends StandardBlockModel<T> {
-    public LadderBlockModel(Block block) {
+public class BlockModelLadder<T extends Block> extends BlockModelStandard<T> {
+    public BlockModelLadder(Block block) {
         super(block);
     }
 
diff --git a/src/main/java/net/minecraft/client/render/block/model/LampBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelLamp.java
similarity index 89%
rename from src/main/java/net/minecraft/client/render/block/model/LampBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelLamp.java
index 3eeae3dae..c4fde0924 100644
--- a/src/main/java/net/minecraft/client/render/block/model/LampBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelLamp.java
@@ -3,12 +3,12 @@ package net.minecraft.client.render.block.model;
 import net.minecraft.client.render.texture.stitcher.IconCoordinate;
 import net.minecraft.client.render.texture.stitcher.TextureRegistry;
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.LampBlock;
+import net.minecraft.core.block.BlockLamp;
 import net.minecraft.core.util.helper.DyeColor;
 import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.world.WorldSource;
 
-public class LampBlockModel<T extends LampBlock> extends StandardBlockModel<T> {
+public class BlockModelLamp<T extends BlockLamp> extends BlockModelStandard<T> {
     private static final IconCoordinate[] texCoordsInactive = new IconCoordinate[DyeColor.COLOR_AMOUNT];
     private static final IconCoordinate[] texCoordsActive = new IconCoordinate[DyeColor.COLOR_AMOUNT];
 
@@ -19,7 +19,7 @@ public class LampBlockModel<T extends LampBlock> extends StandardBlockModel<T> {
         }
     }
 
-    public LampBlockModel(Block block) {
+    public BlockModelLamp(Block block) {
         super(block);
     }
 
diff --git a/src/main/java/net/minecraft/client/render/block/model/LanternBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelLantern.java
similarity index 97%
rename from src/main/java/net/minecraft/client/render/block/model/LanternBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelLantern.java
index 970eb9922..96e85f80b 100644
--- a/src/main/java/net/minecraft/client/render/block/model/LanternBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelLantern.java
@@ -4,11 +4,11 @@ import net.minecraft.client.render.LightmapHelper;
 import net.minecraft.client.render.texture.stitcher.IconCoordinate;
 import net.minecraft.client.render.tessellator.Tessellator;
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.FireflyLanternBlock;
+import net.minecraft.core.block.BlockLanternFirefly;
 import net.minecraft.core.util.helper.Side;
 
-public class LanternBlockModel<T extends Block> extends StandardBlockModel<T> {
-    public LanternBlockModel(Block block) {
+public class BlockModelLantern<T extends Block> extends BlockModelStandard<T> {
+    public BlockModelLantern(Block block) {
         super(block);
     }
 
@@ -16,8 +16,8 @@ public class LanternBlockModel<T extends Block> extends StandardBlockModel<T> {
     public boolean render(Tessellator tessellator, int x, int y, int z) {
         block.setBlockBoundsBasedOnState(renderBlocks.blockAccess, x, y, z);
         int meta = renderBlocks.blockAccess.getBlockMetadata(x, y, z);
-        boolean isHanging = (meta & FireflyLanternBlock.MASK_HANGING) == 0;
-        boolean isAngled = (meta & FireflyLanternBlock.MASK_ANGLED) != 0;
+        boolean isHanging = (meta & BlockLanternFirefly.MASK_HANGING) == 0;
+        boolean isAngled = (meta & BlockLanternFirefly.MASK_ANGLED) != 0;
 
         float brightness = 1.0f;
         if(LightmapHelper.isLightmapEnabled()) {
diff --git a/src/main/java/net/minecraft/client/render/block/model/LayerBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelLayer.java
similarity index 89%
rename from src/main/java/net/minecraft/client/render/block/model/LayerBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelLayer.java
index 7eb176bc7..f6719d342 100644
--- a/src/main/java/net/minecraft/client/render/block/model/LayerBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelLayer.java
@@ -6,8 +6,8 @@ import net.minecraft.core.world.WorldSource;
 import org.jetbrains.annotations.Nullable;
 import org.lwjgl.opengl.GL11;
 
-public class LayerBlockModel<T extends Block> extends StandardBlockModel<T> {
-    public LayerBlockModel(Block block) {
+public class BlockModelLayer<T extends Block> extends BlockModelStandard<T> {
+    public BlockModelLayer(Block block) {
         super(block);
         withCustomItemBounds(0.0f, 0.0f, 0.0f, 1.0f, 2 / 16F, 1.0f);
     }
diff --git a/src/main/java/net/minecraft/client/render/block/model/LeavesBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelLeaves.java
similarity index 89%
rename from src/main/java/net/minecraft/client/render/block/model/LeavesBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelLeaves.java
index cccb0ff69..f6b4fbbc3 100644
--- a/src/main/java/net/minecraft/client/render/block/model/LeavesBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelLeaves.java
@@ -6,11 +6,11 @@ import net.minecraft.core.block.Block;
 import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.world.WorldSource;
 
-public class LeavesBlockModel<T extends Block> extends StandardBlockModel<T> {
+public class BlockModelLeaves<T extends Block> extends BlockModelStandard<T> {
     protected static boolean fancyGraphics;
     protected final IconCoordinate fancyLeavesTexture;
 
-    public LeavesBlockModel(Block block, String leavesTex) {
+    public BlockModelLeaves(Block block, String leavesTex) {
         super(block);
         withTextures(leavesTex);
         fancyLeavesTexture = TextureRegistry.getTexture(leavesTex + "_fancy");
diff --git a/src/main/java/net/minecraft/client/render/block/model/CacaoLeavesBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelLeavesCacao.java
similarity index 89%
rename from src/main/java/net/minecraft/client/render/block/model/CacaoLeavesBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelLeavesCacao.java
index 13784cbdd..b247f54cd 100644
--- a/src/main/java/net/minecraft/client/render/block/model/CacaoLeavesBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelLeavesCacao.java
@@ -5,26 +5,26 @@ import net.minecraft.client.render.texture.stitcher.IconCoordinate;
 import net.minecraft.client.render.texture.stitcher.TextureRegistry;
 import net.minecraft.client.render.tessellator.Tessellator;
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.CacaoLeavesBlock;
+import net.minecraft.core.block.BlockLeavesCacao;
 import org.jetbrains.annotations.Nullable;
 import org.lwjgl.opengl.GL11;
 
-public class CacaoLeavesBlockModel<T extends Block> extends LeavesBlockModel<T> {
+public class BlockModelLeavesCacao<T extends Block> extends BlockModelLeaves<T> {
     protected IconCoordinate[] growthStages = new IconCoordinate[]{
             TextureRegistry.getTexture("minecraft:block/leaves/cacao_bean_stage0"),
             TextureRegistry.getTexture("minecraft:block/leaves/cacao_bean_stage1"),
             TextureRegistry.getTexture("minecraft:block/leaves/cacao_bean_stage2"),
             TextureRegistry.getTexture("minecraft:block/leaves/cacao_bean_stage3")};
-    public CacaoLeavesBlockModel(Block block) {
+    public BlockModelLeavesCacao(Block block) {
         super(block, "minecraft:block/leaves/cacao");
-        assert growthStages.length == CacaoLeavesBlock.MAX_GROWTH_STATE : "There must be a texture associated with every cacao bean stage!";
+        assert growthStages.length == BlockLeavesCacao.MAX_GROWTH_STATE : "There must be a texture associated with every cacao bean stage!";
     }
 
     @Override
     public boolean render(Tessellator tessellator, int x, int y, int z) {
         super.render(tessellator, x, y, z);
 
-        final int growthRate = CacaoLeavesBlock.getGrowthRate(renderBlocks.blockAccess.getBlockMetadata(x, y, z));
+        final int growthRate = BlockLeavesCacao.getGrowthRate(renderBlocks.blockAccess.getBlockMetadata(x, y, z));
         float brightness = 1.0f;
         if(LightmapHelper.isLightmapEnabled()) {
             int lmc = block.getLightmapCoord(renderBlocks.blockAccess, x, y, z);
@@ -42,7 +42,7 @@ public class CacaoLeavesBlockModel<T extends Block> extends LeavesBlockModel<T>
         final float cNorthSouth = 0.8F;
         final float cEastWest = 0.6F;
         if (growthRate > 0) {
-            renderBlocks.overrideBlockTexture = growthStages[Math.min(growthRate - 1, CacaoLeavesBlock.MAX_GROWTH_STATE - 1)];
+            renderBlocks.overrideBlockTexture = growthStages[Math.min(growthRate - 1, BlockLeavesCacao.MAX_GROWTH_STATE - 1)];
             tessellator.setColorOpaque_F(cNorthSouth * brightness, cNorthSouth * brightness, cNorthSouth * brightness);
             renderNorthFace(tessellator, block, x, y, z, renderBlocks.overrideBlockTexture);
             renderSouthFace(tessellator, block, x, y, z, renderBlocks.overrideBlockTexture);
@@ -59,7 +59,7 @@ public class CacaoLeavesBlockModel<T extends Block> extends LeavesBlockModel<T>
         super.renderBlockOnInventory(tessellator, metadata, brightness, alpha, lightmapCoordinate);
         GL11.glTranslatef(-0.5F, -0.5F, -0.5F);
 
-        final IconCoordinate cacaoCoord = growthStages[CacaoLeavesBlock.MAX_GROWTH_STATE - 1];
+        final IconCoordinate cacaoCoord = growthStages[BlockLeavesCacao.MAX_GROWTH_STATE - 1];
         GL11.glColor4f(brightness, brightness, brightness, alpha);
 
         tessellator.startDrawingQuads();
diff --git a/src/main/java/net/minecraft/client/render/block/model/FloweringCherryLeavesBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelLeavesCherryFlowering.java
similarity index 91%
rename from src/main/java/net/minecraft/client/render/block/model/FloweringCherryLeavesBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelLeavesCherryFlowering.java
index 6fd3e7ef6..cc66d166e 100644
--- a/src/main/java/net/minecraft/client/render/block/model/FloweringCherryLeavesBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelLeavesCherryFlowering.java
@@ -4,14 +4,14 @@ import net.minecraft.client.render.texture.stitcher.IconCoordinate;
 import net.minecraft.client.render.texture.stitcher.TextureRegistry;
 import net.minecraft.client.render.tessellator.Tessellator;
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.FloweringCherryLeavesBlock;
+import net.minecraft.core.block.BlockLeavesCherryFlowering;
 import org.jetbrains.annotations.Nullable;
 import org.lwjgl.opengl.GL11;
 
-public class FloweringCherryLeavesBlockModel<T extends Block> extends LeavesBlockModel<T> {
+public class BlockModelLeavesCherryFlowering<T extends Block> extends BlockModelLeaves<T> {
     private final IconCoordinate grownCherryOverlay = TextureRegistry.getTexture("minecraft:block/leaves/cherry_overlay");
     private final IconCoordinate floweringCherryOverlay = TextureRegistry.getTexture("minecraft:block/leaves/cherry_flowering_overlay");
-    public FloweringCherryLeavesBlockModel(Block block) {
+    public BlockModelLeavesCherryFlowering(Block block) {
         super(block, "minecraft:block/leaves/cherry");
     }
 
@@ -19,7 +19,7 @@ public class FloweringCherryLeavesBlockModel<T extends Block> extends LeavesBloc
     public boolean render(Tessellator tessellator, int x, int y, int z) {
         super.render(tessellator, x, y, z);
 
-        int growthRate = FloweringCherryLeavesBlock.getGrowthRate(renderBlocks.blockAccess.getBlockMetadata(x, y, z));
+        int growthRate = BlockLeavesCherryFlowering.getGrowthRate(renderBlocks.blockAccess.getBlockMetadata(x, y, z));
         if(growthRate > 0) {
             renderBlocks.overrideBlockTexture = grownCherryOverlay;
         } else {
diff --git a/src/main/java/net/minecraft/client/render/block/model/LeverBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelLever.java
similarity index 98%
rename from src/main/java/net/minecraft/client/render/block/model/LeverBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelLever.java
index f66b7a892..e183d743d 100644
--- a/src/main/java/net/minecraft/client/render/block/model/LeverBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelLever.java
@@ -9,8 +9,8 @@ import net.minecraft.core.util.helper.MathHelper;
 import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.util.phys.Vec3;
 
-public class LeverBlockModel<T extends Block> extends StandardBlockModel<T> {
-    public LeverBlockModel(Block block) {
+public class BlockModelLever<T extends Block> extends BlockModelStandard<T> {
+    public BlockModelLever(Block block) {
         super(block);
     }
 
diff --git a/src/main/java/net/minecraft/client/render/block/model/MotionSensorBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelMotionSensor.java
similarity index 69%
rename from src/main/java/net/minecraft/client/render/block/model/MotionSensorBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelMotionSensor.java
index 609a4404e..377ca0d5a 100644
--- a/src/main/java/net/minecraft/client/render/block/model/MotionSensorBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelMotionSensor.java
@@ -3,13 +3,13 @@ package net.minecraft.client.render.block.model;
 import net.minecraft.client.render.texture.stitcher.IconCoordinate;
 import net.minecraft.client.render.texture.stitcher.TextureRegistry;
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.FullRotatableBlock;
-import net.minecraft.core.block.MotionSensorBlock;
+import net.minecraft.core.block.BlockFullyRotatable;
+import net.minecraft.core.block.BlockMotionSensor;
 import net.minecraft.core.util.helper.Side;
 
-public class MotionSensorBlockModel extends VeryRotatableBlockModel<MotionSensorBlock> {
+public class BlockModelMotionSensor extends BlockModelVeryRotatable<BlockMotionSensor> {
     protected IconCoordinate overlay = TextureRegistry.getTexture("minecraft:block/motion_sensor/active_front_overlay");
-    public MotionSensorBlockModel(Block block) {
+    public BlockModelMotionSensor(Block block) {
         super(block);
     }
 
@@ -18,7 +18,7 @@ public class MotionSensorBlockModel extends VeryRotatableBlockModel<MotionSensor
     {
         if (!block.isActive) return null;
 
-        if(side.getId() == FullRotatableBlock.metaToDirection(data).getSide().getId())
+        if(side.getId() == BlockFullyRotatable.metaToDirection(data).getSide().getId())
         {
             return overlay;
         }
diff --git a/src/main/java/net/minecraft/client/render/block/model/LeavesOverlayBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelOverlayLeaves.java
similarity index 94%
rename from src/main/java/net/minecraft/client/render/block/model/LeavesOverlayBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelOverlayLeaves.java
index e0a07750b..df4e575cf 100644
--- a/src/main/java/net/minecraft/client/render/block/model/LeavesOverlayBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelOverlayLeaves.java
@@ -7,9 +7,9 @@ import net.minecraft.core.block.Block;
 import org.jetbrains.annotations.Nullable;
 import org.lwjgl.opengl.GL11;
 
-public class LeavesOverlayBlockModel<T extends Block> extends LeavesBlockModel<T> {
+public class BlockModelOverlayLeaves<T extends Block> extends BlockModelLeaves<T> {
     protected final IconCoordinate overlayTexture;
-    public LeavesOverlayBlockModel(Block block, String leavesTex, String overlayTex) {
+    public BlockModelOverlayLeaves(Block block, String leavesTex, String overlayTex) {
         super(block, leavesTex);
         overlayTexture = TextureRegistry.getTexture(overlayTex);
     }
diff --git a/src/main/java/net/minecraft/client/render/block/model/PebblesBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelPebbles.java
similarity index 93%
rename from src/main/java/net/minecraft/client/render/block/model/PebblesBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelPebbles.java
index c0aca2b45..173e003cd 100644
--- a/src/main/java/net/minecraft/client/render/block/model/PebblesBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelPebbles.java
@@ -8,13 +8,13 @@ import net.minecraft.core.block.Block;
 import net.minecraft.core.util.helper.MathHelper;
 import net.minecraft.core.util.helper.Side;
 
-public class PebblesBlockModel<T extends Block> extends StandardBlockModel<T> {
+public class BlockModelPebbles<T extends Block> extends BlockModelStandard<T> {
     protected IconCoordinate[] pebbles = {
             TextureRegistry.getTexture("minecraft:block/pebbles/0"),
             TextureRegistry.getTexture("minecraft:block/pebbles/1"),
             TextureRegistry.getTexture("minecraft:block/pebbles/2")
     };
-    public PebblesBlockModel(Block block) {
+    public BlockModelPebbles(Block block) {
         super(block);
     }
 
diff --git a/src/main/java/net/minecraft/client/render/block/model/PumpkinPieBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelPiePumpkin.java
similarity index 93%
rename from src/main/java/net/minecraft/client/render/block/model/PumpkinPieBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelPiePumpkin.java
index 1396706b0..842c812d8 100644
--- a/src/main/java/net/minecraft/client/render/block/model/PumpkinPieBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelPiePumpkin.java
@@ -4,15 +4,15 @@ import net.minecraft.client.render.texture.stitcher.IconCoordinate;
 import net.minecraft.client.render.texture.stitcher.TextureRegistry;
 import net.minecraft.client.render.tessellator.Tessellator;
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.EdibleBlock;
+import net.minecraft.core.block.BlockEdible;
 import net.minecraft.core.util.helper.Side;
 
-public class PumpkinPieBlockModel<T extends Block> extends StandardBlockModel<T> {
+public class BlockModelPiePumpkin<T extends Block> extends BlockModelStandard<T> {
     protected IconCoordinate sideTexture = TextureRegistry.getTexture("minecraft:block/pumpkin_pie/side");
     protected IconCoordinate insideTexture = TextureRegistry.getTexture("minecraft:block/pumpkin_pie/inner");
     protected IconCoordinate topTexture = TextureRegistry.getTexture("minecraft:block/pumpkin_pie/top");
 
-    public PumpkinPieBlockModel(Block block) {
+    public BlockModelPiePumpkin(Block block) {
         super(block);
         float f = 0.0625F;
         float f1 = 0.375F;
@@ -47,7 +47,7 @@ public class PumpkinPieBlockModel<T extends Block> extends StandardBlockModel<T>
         boolean insideEast = sliceX == 0 ;
         boolean insideWest = sliceX == 1;
 
-        maxSlices = ((EdibleBlock) block).maxBites;
+        maxSlices = ((BlockEdible) block).maxBites;
         block.setBlockBounds(xMin + offsetXMin, 0.0F, zMin + offsetZMin, xMax - offsetXMax, 0.375F, zMax - offsetZMax);
         renderSide(tessellator, block, x, y, z, Side.TOP, 0);
         renderSide(tessellator, block, x, y, z, Side.BOTTOM, 0);
diff --git a/src/main/java/net/minecraft/client/render/block/model/PistonBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelPiston.java
similarity index 91%
rename from src/main/java/net/minecraft/client/render/block/model/PistonBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelPiston.java
index df6c8f903..8f3a9caa7 100644
--- a/src/main/java/net/minecraft/client/render/block/model/PistonBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelPiston.java
@@ -4,36 +4,36 @@ import net.minecraft.client.render.texture.stitcher.IconCoordinate;
 import net.minecraft.client.render.texture.stitcher.TextureRegistry;
 import net.minecraft.client.render.tessellator.Tessellator;
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.piston.PistonBaseBlock;
+import net.minecraft.core.block.piston.BlockPistonBase;
 import net.minecraft.core.util.helper.Direction;
 import net.minecraft.core.util.helper.Side;
 import org.jetbrains.annotations.Nullable;
 
-public class PistonBlockModel<T extends PistonBaseBlock> extends StandardBlockModel<T> {
+public class BlockModelPiston<T extends BlockPistonBase> extends BlockModelStandard<T> {
     private final IconCoordinate faceTexture;
     protected IconCoordinate sideTexture = TextureRegistry.getTexture("minecraft:block/piston/side");
     protected IconCoordinate topTexture = TextureRegistry.getTexture("minecraft:block/piston/top");
     protected IconCoordinate bottomTexture = TextureRegistry.getTexture("minecraft:block/piston/bottom");
 
     protected final double headThickness;
-    public PistonBlockModel(Block block, IconCoordinate faceTexture){
+    public BlockModelPiston(Block block, IconCoordinate faceTexture){
         this(block, faceTexture, 4/16d);
     }
 
-    public PistonBlockModel(Block block, IconCoordinate faceTexture, double headThickness){
+    public BlockModelPiston(Block block, IconCoordinate faceTexture, double headThickness){
         super(block);
         this.headThickness = headThickness;
         this.faceTexture = faceTexture;
     }
 
-    public PistonBlockModel<T> setPistonTextures(IconCoordinate sideTexture, IconCoordinate topTexture, IconCoordinate bottomTexture) {
+    public BlockModelPiston<T> setPistonTextures(IconCoordinate sideTexture, IconCoordinate topTexture, IconCoordinate bottomTexture) {
         this.sideTexture = sideTexture;
         this.topTexture = topTexture;
         this.bottomTexture = bottomTexture;
         return this;
     }
 
-    public PistonBlockModel<T> setPistonTextures(String sideTexture, String topTexture, String bottomTexture) {
+    public BlockModelPiston<T> setPistonTextures(String sideTexture, String topTexture, String bottomTexture) {
         return setPistonTextures(TextureRegistry.getTexture(sideTexture), TextureRegistry.getTexture(topTexture), TextureRegistry.getTexture(bottomTexture));
     }
 
@@ -52,7 +52,7 @@ public class PistonBlockModel<T extends PistonBaseBlock> extends StandardBlockMo
     protected boolean renderPistonBase(Tessellator tessellator, int x, int y, int z, boolean noCulling) {
         int meta = renderBlocks.blockAccess.getBlockMetadata(x, y, z);
         boolean extended = noCulling || (meta & 8) != 0;
-        Direction direction = PistonBaseBlock.getDirection(meta);
+        Direction direction = BlockPistonBase.getDirection(meta);
         if(extended)
         {
             switch(direction)
@@ -156,14 +156,14 @@ public class PistonBlockModel<T extends PistonBaseBlock> extends StandardBlockMo
     @Override
     public IconCoordinate getBlockTextureFromSideAndMetadata(Side side, int data)
     {
-        Direction direction = PistonBaseBlock.getDirection(data);
+        Direction direction = BlockPistonBase.getDirection(data);
         if (direction == Direction.NONE)
         {
             return atlasIndices[0];
         }
         if (side.getDirection() == direction)
         {
-            if (PistonBaseBlock.isPowered(data) || block.minX > 0.0D || block.minY > 0.0D || block.minZ > 0.0D || block.maxX < 1.0D || block.maxY < 1.0D || block.maxZ < 1.0D)
+            if (BlockPistonBase.isPowered(data) || block.minX > 0.0D || block.minY > 0.0D || block.minZ > 0.0D || block.maxX < 1.0D || block.maxY < 1.0D || block.maxZ < 1.0D)
             {
                 return topTexture;
             }
diff --git a/src/main/java/net/minecraft/client/render/block/model/PistonHeadBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelPistonHead.java
similarity index 94%
rename from src/main/java/net/minecraft/client/render/block/model/PistonHeadBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelPistonHead.java
index 9444fab51..023d23d46 100644
--- a/src/main/java/net/minecraft/client/render/block/model/PistonHeadBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelPistonHead.java
@@ -6,12 +6,12 @@ import net.minecraft.client.render.texture.stitcher.TextureRegistry;
 import net.minecraft.client.render.tessellator.Tessellator;
 import net.minecraft.core.block.Block;
 import net.minecraft.core.block.Blocks;
-import net.minecraft.core.block.piston.PistonHeadBlock;
+import net.minecraft.core.block.piston.BlockPistonHead;
 import net.minecraft.core.util.helper.Direction;
 import net.minecraft.core.util.helper.Side;
 import org.jetbrains.annotations.Nullable;
 
-public class PistonHeadBlockModel extends StandardBlockModel<PistonHeadBlock> {
+public class BlockModelPistonHead extends BlockModelStandard<BlockPistonHead> {
     protected IconCoordinate pistonSide;
     protected IconCoordinate pistonDry = TextureRegistry.getTexture("minecraft:block/piston/face");
     protected IconCoordinate pistonSticky = TextureRegistry.getTexture("minecraft:block/piston_sticky/face");
@@ -20,11 +20,11 @@ public class PistonHeadBlockModel extends StandardBlockModel<PistonHeadBlock> {
     public IconCoordinate faceTextureOverride;
 
     protected final double headThickness;
-    public PistonHeadBlockModel(Block block, IconCoordinate pistonSide) {
+    public BlockModelPistonHead(Block block, IconCoordinate pistonSide) {
         this(block, pistonSide, 4/16d);
     }
 
-    public PistonHeadBlockModel(Block block, IconCoordinate pistonSide, double headThickness) {
+    public BlockModelPistonHead(Block block, IconCoordinate pistonSide, double headThickness) {
         super(block);
         this.pistonSide = pistonSide;
         this.headThickness = headThickness;
@@ -35,7 +35,7 @@ public class PistonHeadBlockModel extends StandardBlockModel<PistonHeadBlock> {
         block.setBlockBoundsBasedOnState(renderBlocks.blockAccess, x, y, z);
         return renderPistonHead(tessellator, block, x, y, z, true);
     }
-    public void renderPistonHeadNoCulling(Tessellator tessellator, PistonHeadBlock block, int x, int y, int z, boolean flag) {
+    public void renderPistonHeadNoCulling(Tessellator tessellator, BlockPistonHead block, int x, int y, int z, boolean flag) {
         renderBlocks.renderAllFaces = true;
         renderPistonHead(tessellator, block, x, y, z, flag);
         renderBlocks.renderAllFaces = false;
@@ -43,9 +43,9 @@ public class PistonHeadBlockModel extends StandardBlockModel<PistonHeadBlock> {
     public void setFaceTextureOverride(@Nullable IconCoordinate faceTexture){
         faceTextureOverride = faceTexture;
     }
-    protected boolean renderPistonHead(Tessellator tessellator, PistonHeadBlock block, int x, int y, int z, boolean flag) {
+    protected boolean renderPistonHead(Tessellator tessellator, BlockPistonHead block, int x, int y, int z, boolean flag) {
         int metadata = renderBlocks.blockAccess.getBlockMetadata(x, y, z);
-        Direction direction = PistonHeadBlock.getDirectionFromMeta(metadata);
+        Direction direction = BlockPistonHead.getDirectionFromMeta(metadata);
         float brightness = 1.0f;
         if(LightmapHelper.isLightmapEnabled()) {
         	tessellator.setLightmapCoord(block.getLightmapCoord(renderBlocks.blockAccess, x, y, z));
@@ -192,19 +192,19 @@ public class PistonHeadBlockModel extends StandardBlockModel<PistonHeadBlock> {
     @Override
     public IconCoordinate getBlockTextureFromSideAndMetadata(Side side, int data)
     {
-        Direction direction = PistonHeadBlock.getDirectionFromMeta(data);
+        Direction direction = BlockPistonHead.getDirectionFromMeta(data);
         if(side.getDirection() == direction)
         {
             if(faceTextureOverride != null)
             {
                 return faceTextureOverride;
             }
-            switch (PistonHeadBlock.getPistonType(data)) {
-                case PistonHeadBlock.TYPE_NORMAL:
+            switch (BlockPistonHead.getPistonType(data)) {
+                case BlockPistonHead.TYPE_NORMAL:
                     return pistonDry;
-                case PistonHeadBlock.TYPE_STICKY:
+                case BlockPistonHead.TYPE_STICKY:
                     return pistonSticky;
-                case PistonHeadBlock.TYPE_STEEL:
+                case BlockPistonHead.TYPE_STEEL:
                     return pistonSteel;
             }
         }
diff --git a/src/main/java/net/minecraft/client/render/block/model/PlanksPaintedBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelPlanksPainted.java
similarity index 85%
rename from src/main/java/net/minecraft/client/render/block/model/PlanksPaintedBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelPlanksPainted.java
index 1a0bb8866..c8669f53f 100644
--- a/src/main/java/net/minecraft/client/render/block/model/PlanksPaintedBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelPlanksPainted.java
@@ -6,7 +6,7 @@ import net.minecraft.core.block.Block;
 import net.minecraft.core.util.helper.DyeColor;
 import net.minecraft.core.util.helper.Side;
 
-public class PlanksPaintedBlockModel<T extends Block> extends StandardBlockModel<T> {
+public class BlockModelPlanksPainted<T extends Block> extends BlockModelStandard<T> {
     public static final IconCoordinate[] texCoords = new IconCoordinate[DyeColor.COLOR_AMOUNT];
 
     static {
@@ -15,7 +15,7 @@ public class PlanksPaintedBlockModel<T extends Block> extends StandardBlockModel
         }
     }
 
-    public PlanksPaintedBlockModel(Block block) {
+    public BlockModelPlanksPainted(Block block) {
         super(block);
     }
 
diff --git a/src/main/java/net/minecraft/client/render/block/model/PortalBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelPortal.java
similarity index 84%
rename from src/main/java/net/minecraft/client/render/block/model/PortalBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelPortal.java
index 6384d6308..958aefa4a 100644
--- a/src/main/java/net/minecraft/client/render/block/model/PortalBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelPortal.java
@@ -3,14 +3,14 @@ package net.minecraft.client.render.block.model;
 import net.minecraft.client.render.texture.stitcher.IconCoordinate;
 import net.minecraft.client.render.texture.stitcher.TextureRegistry;
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.PortalBlock;
+import net.minecraft.core.block.BlockPortal;
 import net.minecraft.core.util.helper.DyeColor;
 import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.world.WorldSource;
 
-public class PortalBlockModel<T extends PortalBlock> extends TransparentBlockModel<T> {
+public class BlockModelPortal<T extends BlockPortal> extends BlockModelTransparent<T> {
     protected IconCoordinate[] colors = new IconCoordinate[16];
-    public PortalBlockModel(Block block, String rootTexKey) {
+    public BlockModelPortal(Block block, String rootTexKey) {
         super(block, false);
         for (DyeColor color : DyeColor.values()) {
             colors[color.blockMeta] = TextureRegistry.getTexture(rootTexKey + color.colorID);
diff --git a/src/main/java/net/minecraft/client/render/block/model/PumiceBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelPumice.java
similarity index 93%
rename from src/main/java/net/minecraft/client/render/block/model/PumiceBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelPumice.java
index 90f16ade1..e81fabc1e 100644
--- a/src/main/java/net/minecraft/client/render/block/model/PumiceBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelPumice.java
@@ -7,12 +7,11 @@ import net.minecraft.client.render.texture.stitcher.IconCoordinate;
 import net.minecraft.client.render.texture.stitcher.TextureRegistry;
 import net.minecraft.core.block.Block;
 import net.minecraft.core.util.helper.Side;
-import net.minecraft.core.world.WorldSource;
 import org.jetbrains.annotations.Nullable;
 
-public class PumiceBlockModel<T extends Block> extends StandardBlockModel<T>{
+public class BlockModelPumice<T extends Block> extends BlockModelStandard<T> {
     private boolean lavaFlag = false;
-    public PumiceBlockModel(Block block) {
+    public BlockModelPumice(Block block) {
         super(block);
     }
 
diff --git a/src/main/java/net/minecraft/client/render/block/model/RedstonePumpkinBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelPumpkinRedstone.java
similarity index 77%
rename from src/main/java/net/minecraft/client/render/block/model/RedstonePumpkinBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelPumpkinRedstone.java
index 343e27387..575e75c8d 100644
--- a/src/main/java/net/minecraft/client/render/block/model/RedstonePumpkinBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelPumpkinRedstone.java
@@ -3,12 +3,12 @@ package net.minecraft.client.render.block.model;
 import net.minecraft.client.render.texture.stitcher.IconCoordinate;
 import net.minecraft.client.render.texture.stitcher.TextureRegistry;
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.RedstonePumpkinBlock;
+import net.minecraft.core.block.BlockPumpkinRedstone;
 import net.minecraft.core.util.helper.Side;
 
-public class RedstonePumpkinBlockModel extends HorizontalRotationBlockModel<RedstonePumpkinBlock> {
+public class BlockModelPumpkinRedstone extends BlockModelHorizontalRotation<BlockPumpkinRedstone> {
     protected IconCoordinate overlay = TextureRegistry.getTexture("minecraft:block/pumpkin_redstone/front_overlay");
-    public RedstonePumpkinBlockModel(Block block) {
+    public BlockModelPumpkinRedstone(Block block) {
         super(block);
     }
 
diff --git a/src/main/java/net/minecraft/client/render/block/model/RailBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelRail.java
similarity index 96%
rename from src/main/java/net/minecraft/client/render/block/model/RailBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelRail.java
index 117022fb1..58563d3e0 100644
--- a/src/main/java/net/minecraft/client/render/block/model/RailBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelRail.java
@@ -5,19 +5,19 @@ import net.minecraft.client.render.texture.stitcher.IconCoordinate;
 import net.minecraft.client.render.texture.stitcher.TextureRegistry;
 import net.minecraft.client.render.tessellator.Tessellator;
 import net.minecraft.core.block.Block;
+import net.minecraft.core.block.BlockRail;
 import net.minecraft.core.block.Blocks;
-import net.minecraft.core.block.RailBlock;
 import net.minecraft.core.enums.LightLayer;
 import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.world.WorldSource;
 
-public class RailBlockModel<T extends RailBlock> extends StandardBlockModel<T> {
+public class BlockModelRail<T extends BlockRail> extends BlockModelStandard<T> {
     protected IconCoordinate railCurve = TextureRegistry.getTexture("minecraft:block/rail/turn");
     protected IconCoordinate powerActive = TextureRegistry.getTexture("minecraft:block/rail_powered/active");
     protected IconCoordinate powerActiveOverlay = TextureRegistry.getTexture("minecraft:block/rail_powered/active_overlay");
     protected IconCoordinate detectorActiveOverlay = TextureRegistry.getTexture("minecraft:block/rail_detector/active_overlay");
 
-    public RailBlockModel(Block block) {
+    public BlockModelRail(Block block) {
         super(block);
         this.hasOverbright = true;
     }
diff --git a/src/main/java/net/minecraft/client/render/block/model/RepeaterBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelRepeater.java
similarity index 82%
rename from src/main/java/net/minecraft/client/render/block/model/RepeaterBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelRepeater.java
index 4defe0983..0e0edf690 100644
--- a/src/main/java/net/minecraft/client/render/block/model/RepeaterBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelRepeater.java
@@ -4,16 +4,16 @@ import net.minecraft.client.render.LightmapHelper;
 import net.minecraft.client.render.tessellator.Tessellator;
 import net.minecraft.core.Global;
 import net.minecraft.core.block.Block;
+import net.minecraft.core.block.BlockRepeater;
 import net.minecraft.core.block.Blocks;
-import net.minecraft.core.block.RepeaterBlock;
 import net.minecraft.core.world.WorldSource;
 
 @SuppressWarnings("unchecked")
-public class RepeaterBlockModel extends StandardBlockModel<RepeaterBlock> {
-	private static final TorchBlockModel<Block> modelTorchActive = (TorchBlockModel<Block>) BlockModelDispatcher.getInstance().getDispatch(Blocks.TORCH_REDSTONE_ACTIVE);
-    private static final TorchBlockModel<Block> modelTorchIdle = (TorchBlockModel<Block>) BlockModelDispatcher.getInstance().getDispatch(Blocks.TORCH_REDSTONE_IDLE);
+public class BlockModelRepeater extends BlockModelStandard<BlockRepeater> {
+	private static final BlockModelTorch<Block> modelTorchActive = (BlockModelTorch<Block>) BlockModelDispatcher.getInstance().getDispatch(Blocks.TORCH_REDSTONE_ACTIVE);
+    private static final BlockModelTorch<Block> modelTorchIdle = (BlockModelTorch<Block>) BlockModelDispatcher.getInstance().getDispatch(Blocks.TORCH_REDSTONE_IDLE);
 
-    public RepeaterBlockModel(Block block) {
+    public BlockModelRepeater(Block block) {
         super(block);
     }
 
@@ -67,25 +67,25 @@ public class RepeaterBlockModel extends StandardBlockModel<RepeaterBlock> {
         {
             case 0: // '\0'
                 d4 = -0.3125D;
-                d2 = RepeaterBlock.torchPosOffset[j1];
+                d2 = BlockRepeater.torchPosOffset[j1];
                 break;
 
             case 2: // '\002'
                 d4 = 0.3125D;
-                d2 = -RepeaterBlock.torchPosOffset[j1];
+                d2 = -BlockRepeater.torchPosOffset[j1];
                 break;
 
             case 3: // '\003'
                 d3 = -0.3125D;
-                d1 = RepeaterBlock.torchPosOffset[j1];
+                d1 = BlockRepeater.torchPosOffset[j1];
                 break;
 
             case 1: // '\001'
                 d3 = 0.3125D;
-                d1 = -RepeaterBlock.torchPosOffset[j1];
+                d1 = -BlockRepeater.torchPosOffset[j1];
                 break;
         }
-        TorchBlockModel<Block> modelTorch = block.isRepeaterPowered ? modelTorchActive : modelTorchIdle;
+        BlockModelTorch<Block> modelTorch = block.isRepeaterPowered ? modelTorchActive : modelTorchIdle;
         if (renderBlocks.overbright && block.isRepeaterPowered) {
             modelTorch.renderTorchAtAngle(tessellator, (double)x + d1, (double)y + d, (double)z + d2, 0.0D, 0.0D);
             modelTorch.renderTorchAtAngle(tessellator, (double)x + d3, (double)y + d, (double)z + d4, 0.0D, 0.0D);
diff --git a/src/main/java/net/minecraft/client/render/block/model/RopeBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelRope.java
similarity index 94%
rename from src/main/java/net/minecraft/client/render/block/model/RopeBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelRope.java
index 29d119625..cd322e604 100644
--- a/src/main/java/net/minecraft/client/render/block/model/RopeBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelRope.java
@@ -2,15 +2,15 @@ package net.minecraft.client.render.block.model;
 
 import net.minecraft.client.render.tessellator.Tessellator;
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.FireflyLanternBlock;
-import net.minecraft.core.block.RopeBlock;
+import net.minecraft.core.block.BlockLanternFirefly;
+import net.minecraft.core.block.BlockRope;
 import net.minecraft.core.block.tag.BlockTags;
 import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.world.WorldSource;
 
-public class RopeBlockModel<T extends RopeBlock>
-extends StandardBlockModel<T> {
-    public RopeBlockModel(Block block) {
+public class BlockModelRope<T extends BlockRope>
+extends BlockModelStandard<T> {
+    public BlockModelRope(Block block) {
         super(block);
     }
 
@@ -90,7 +90,7 @@ extends StandardBlockModel<T> {
         int blockZ = z + side.getOffsetZ();
         Block _block = worldSource.getBlock(blockX, blockY, blockZ);
         if (side == Side.BOTTOM){
-            if (_block instanceof FireflyLanternBlock && (worldSource.getBlockMetadata(blockX, blockY, blockZ) & 0b1) != 0){
+            if (_block instanceof BlockLanternFirefly && (worldSource.getBlockMetadata(blockX, blockY, blockZ) & 0b1) != 0){
                 return true;
             }
         } else if (side == Side.TOP) {
diff --git a/src/main/java/net/minecraft/client/render/block/model/RotatableBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelRotatable.java
similarity index 79%
rename from src/main/java/net/minecraft/client/render/block/model/RotatableBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelRotatable.java
index ea5bb32c7..67296701c 100644
--- a/src/main/java/net/minecraft/client/render/block/model/RotatableBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelRotatable.java
@@ -5,8 +5,8 @@ import net.minecraft.core.block.Block;
 import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.util.helper.Sides;
 
-public class RotatableBlockModel<T extends Block> extends StandardBlockModel<T> {
-    public RotatableBlockModel(Block block) {
+public class BlockModelRotatable<T extends Block> extends BlockModelStandard<T> {
+    public BlockModelRotatable(Block block) {
         super(block);
     }
 
diff --git a/src/main/java/net/minecraft/client/render/block/model/SeatBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelSeat.java
similarity index 90%
rename from src/main/java/net/minecraft/client/render/block/model/SeatBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelSeat.java
index dc8996313..cee6a8afd 100644
--- a/src/main/java/net/minecraft/client/render/block/model/SeatBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelSeat.java
@@ -4,8 +4,8 @@ import net.minecraft.client.render.tessellator.Tessellator;
 import net.minecraft.core.block.Block;
 import net.minecraft.core.util.helper.Side;
 
-public class SeatBlockModel<T extends Block> extends StandardBlockModel<T> {
-    public SeatBlockModel(Block block) {
+public class BlockModelSeat<T extends Block> extends BlockModelStandard<T> {
+    public BlockModelSeat(Block block) {
         super(block);
     }
 
diff --git a/src/main/java/net/minecraft/client/render/block/model/SlabBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelSlab.java
similarity index 80%
rename from src/main/java/net/minecraft/client/render/block/model/SlabBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelSlab.java
index 9612a2eff..dafbaa4ca 100644
--- a/src/main/java/net/minecraft/client/render/block/model/SlabBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelSlab.java
@@ -2,14 +2,14 @@ package net.minecraft.client.render.block.model;
 
 import net.minecraft.client.render.texture.stitcher.IconCoordinate;
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.SlabBlock;
+import net.minecraft.core.block.BlockSlab;
 import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.world.WorldSource;
 
-public class SlabBlockModel<T extends SlabBlock> extends StandardBlockModel<T> {
-    public SlabBlockModel(Block block){
+public class BlockModelSlab<T extends BlockSlab> extends BlockModelStandard<T> {
+    public BlockModelSlab(Block block){
         super(block);
-        this.atlasIndices = ((StandardBlockModel<?>)BlockModelDispatcher.getInstance().getDispatch(this.block.modelBlock)).atlasIndices;
+        this.atlasIndices = ((BlockModelStandard<?>)BlockModelDispatcher.getInstance().getDispatch(this.block.modelBlock)).atlasIndices;
         withCustomItemBounds(0, 0, 0, 1, 0.5d, 1);
     }
     @Override
diff --git a/src/main/java/net/minecraft/client/render/block/model/SlabMarbleBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelSlabMarble.java
similarity index 84%
rename from src/main/java/net/minecraft/client/render/block/model/SlabMarbleBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelSlabMarble.java
index 492fb67a1..5246af227 100644
--- a/src/main/java/net/minecraft/client/render/block/model/SlabMarbleBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelSlabMarble.java
@@ -3,14 +3,14 @@ package net.minecraft.client.render.block.model;
 import net.minecraft.client.render.texture.stitcher.IconCoordinate;
 import net.minecraft.client.render.texture.stitcher.TextureRegistry;
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.SlabBlock;
+import net.minecraft.core.block.BlockSlab;
 import net.minecraft.core.util.helper.Axis;
 import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.world.WorldSource;
 
-public class SlabMarbleBlockModel<T extends SlabBlock> extends SlabBlockModel<T> {
+public class BlockModelSlabMarble<T extends BlockSlab> extends BlockModelSlab<T> {
     protected IconCoordinate slabSide = TextureRegistry.getTexture("minecraft:block/carved_marble");
-    public SlabMarbleBlockModel(Block block) {
+    public BlockModelSlabMarble(Block block) {
         super(block);
     }
 
diff --git a/src/main/java/net/minecraft/client/render/block/model/SlabPaintedBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelSlabPainted.java
similarity index 72%
rename from src/main/java/net/minecraft/client/render/block/model/SlabPaintedBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelSlabPainted.java
index 20d885587..bd3130f6a 100644
--- a/src/main/java/net/minecraft/client/render/block/model/SlabPaintedBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelSlabPainted.java
@@ -2,19 +2,19 @@ package net.minecraft.client.render.block.model;
 
 import net.minecraft.client.render.texture.stitcher.IconCoordinate;
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.SlabBlock;
+import net.minecraft.core.block.BlockSlab;
 import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.world.WorldSource;
 
-public class SlabPaintedBlockModel<T extends SlabBlock> extends SlabBlockModel<T> {
-    public SlabPaintedBlockModel(Block block) {
+public class BlockModelSlabPainted<T extends BlockSlab> extends BlockModelSlab<T> {
+    public BlockModelSlabPainted(Block block) {
         super(block);
     }
 
     @Override
     public IconCoordinate getBlockTextureFromSideAndMetadata(Side side, int meta) {
         meta = meta >> 4;
-        return PlanksPaintedBlockModel.texCoords[meta & 0x0F];
+        return BlockModelPlanksPainted.texCoords[meta & 0x0F];
     }
 
     @Override
diff --git a/src/main/java/net/minecraft/client/render/block/model/SpikesBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelSpikes.java
similarity index 96%
rename from src/main/java/net/minecraft/client/render/block/model/SpikesBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelSpikes.java
index 5b8134fd0..2b1da4313 100644
--- a/src/main/java/net/minecraft/client/render/block/model/SpikesBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelSpikes.java
@@ -4,11 +4,11 @@ import net.minecraft.client.render.LightmapHelper;
 import net.minecraft.client.render.texture.stitcher.IconCoordinate;
 import net.minecraft.client.render.tessellator.Tessellator;
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.SpikesBlock;
+import net.minecraft.core.block.BlockSpikes;
 import net.minecraft.core.util.helper.Side;
 
-public class SpikesBlockModel<T extends Block> extends StandardBlockModel<T> {
-    public SpikesBlockModel(Block block) {
+public class BlockModelSpikes<T extends Block> extends BlockModelStandard<T> {
+    public BlockModelSpikes(Block block) {
         super(block);
     }
 
@@ -25,7 +25,7 @@ public class SpikesBlockModel<T extends Block> extends StandardBlockModel<T> {
         block.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.1875F, 1.0F);
         renderStandardBlock(tessellator, block, x, y, z);
 
-        if(SpikesBlock.isSpikesUp(metaData)) {
+        if(BlockSpikes.isSpikesUp(metaData)) {
             float brightness = 1.0f;
             if(LightmapHelper.isLightmapEnabled()) {
             	tessellator.setLightmapCoord(block.getLightmapCoord(renderBlocks.blockAccess, x, y, z));
diff --git a/src/main/java/net/minecraft/client/render/block/model/StairsBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelStairs.java
similarity index 95%
rename from src/main/java/net/minecraft/client/render/block/model/StairsBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelStairs.java
index d920e4fc4..cce007e2a 100644
--- a/src/main/java/net/minecraft/client/render/block/model/StairsBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelStairs.java
@@ -4,16 +4,16 @@ import net.minecraft.client.render.block.color.BlockColorDispatcher;
 import net.minecraft.client.render.texture.stitcher.IconCoordinate;
 import net.minecraft.client.render.tessellator.Tessellator;
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.StairsBlock;
+import net.minecraft.core.block.BlockStairs;
 import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.world.WorldSource;
 import org.jetbrains.annotations.Nullable;
 import org.lwjgl.opengl.GL11;
 
-public class StairsBlockModel<T extends StairsBlock> extends StandardBlockModel<T> {
-    public StairsBlockModel(Block block) {
+public class BlockModelStairs<T extends BlockStairs> extends BlockModelStandard<T> {
+    public BlockModelStairs(Block block) {
         super(block);
-        this.atlasIndices = ((StandardBlockModel<?>)BlockModelDispatcher.getInstance().getDispatch(this.block.modelBlock)).atlasIndices;
+        this.atlasIndices = ((BlockModelStandard<?>)BlockModelDispatcher.getInstance().getDispatch(this.block.modelBlock)).atlasIndices;
     }
 
     @Override
diff --git a/src/main/java/net/minecraft/client/render/block/model/StairsPaintedBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelStairsPainted.java
similarity index 71%
rename from src/main/java/net/minecraft/client/render/block/model/StairsPaintedBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelStairsPainted.java
index 257979d71..df02328aa 100644
--- a/src/main/java/net/minecraft/client/render/block/model/StairsPaintedBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelStairsPainted.java
@@ -2,19 +2,19 @@ package net.minecraft.client.render.block.model;
 
 import net.minecraft.client.render.texture.stitcher.IconCoordinate;
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.StairsBlock;
+import net.minecraft.core.block.BlockStairs;
 import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.world.WorldSource;
 
-public class StairsPaintedBlockModel<T extends StairsBlock> extends StairsBlockModel<T> {
-    public StairsPaintedBlockModel(Block block) {
+public class BlockModelStairsPainted<T extends BlockStairs> extends BlockModelStairs<T> {
+    public BlockModelStairsPainted(Block block) {
         super(block);
     }
 
     @Override
     public IconCoordinate getBlockTextureFromSideAndMetadata(Side side, int meta) {
         meta = meta >> 4;
-        return PlanksPaintedBlockModel.texCoords[meta & 0x0F];
+        return BlockModelPlanksPainted.texCoords[meta & 0x0F];
     }
 
     @Override
diff --git a/src/main/java/net/minecraft/client/render/block/model/StandardBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelStandard.java
similarity index 94%
rename from src/main/java/net/minecraft/client/render/block/model/StandardBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelStandard.java
index 0925fa221..dd8670a08 100644
--- a/src/main/java/net/minecraft/client/render/block/model/StandardBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelStandard.java
@@ -11,14 +11,14 @@ import net.minecraft.core.world.WorldSource;
 import org.jetbrains.annotations.Nullable;
 import org.lwjgl.opengl.GL11;
 
-public class StandardBlockModel<T extends Block> extends BlockModel<T>{
+public class BlockModelStandard<T extends Block> extends BlockModel<T>{
     public static final IconCoordinate BLOCK_TEXTURE_MISSING = TextureRegistry.getTexture("minecraft:block/texture_missing");
     public static final IconCoordinate BLOCK_TEXTURE_UNASSIGNED = TextureRegistry.getTexture("minecraft:block/texture_unassigned");
     public IconCoordinate[] atlasIndices = new IconCoordinate[]{BLOCK_TEXTURE_UNASSIGNED, BLOCK_TEXTURE_UNASSIGNED, BLOCK_TEXTURE_UNASSIGNED, BLOCK_TEXTURE_UNASSIGNED, BLOCK_TEXTURE_UNASSIGNED, BLOCK_TEXTURE_UNASSIGNED};
     public double[] itemRenderBounds = null;
     public IconCoordinate overbrightTexture = null;
 
-    public StandardBlockModel(Block block) {
+    public BlockModelStandard(Block block) {
         super(block);
     }
 
@@ -204,26 +204,26 @@ public class StandardBlockModel<T extends Block> extends BlockModel<T>{
             itemRenderBounds[5]);
         }
     }
-    public StandardBlockModel<T> withCustomItemBounds(double minX, double minY, double minZ, double maxX, double maxY, double maxZ){
+    public BlockModelStandard<T> withCustomItemBounds(double minX, double minY, double minZ, double maxX, double maxY, double maxZ){
         this.itemRenderBounds = new double[]{minX, minY, minZ, maxX, maxY, maxZ};
         return this;
     }
-    public StandardBlockModel<T> withOverbrightTexture(String texture)
+    public BlockModelStandard<T> withOverbrightTexture(String texture)
     {
         this.hasOverbright = true;
         this.overbrightTexture = TextureRegistry.getTexture(texture);
         return this;
     }
-    public StandardBlockModel<T> withTextures(String texture){
+    public BlockModelStandard<T> withTextures(String texture){
         return withTextures(texture, texture, texture);
     }
-    public StandardBlockModel<T> withTextures(String textureTopBottom, String textureSides){
+    public BlockModelStandard<T> withTextures(String textureTopBottom, String textureSides){
         return withTextures(textureTopBottom, textureTopBottom, textureSides);
     }
-    public StandardBlockModel<T> withTextures(String textureTop, String textureBottom, String textureSides){
+    public BlockModelStandard<T> withTextures(String textureTop, String textureBottom, String textureSides){
         return withTextures(textureTop, textureBottom, textureSides, textureSides, textureSides, textureSides);
     }
-    public StandardBlockModel<T> withTextures(String textureTop, String textureBottom, String textureNorth, String textureEast, String textureSouth, String textureWest){
+    public BlockModelStandard<T> withTextures(String textureTop, String textureBottom, String textureNorth, String textureEast, String textureSouth, String textureWest){
         atlasIndices[Side.TOP.getId()] = TextureRegistry.getTexture(textureTop);
         atlasIndices[Side.BOTTOM.getId()] = TextureRegistry.getTexture(textureBottom);
         atlasIndices[Side.NORTH.getId()] = TextureRegistry.getTexture(textureNorth);
diff --git a/src/main/java/net/minecraft/client/render/block/model/MossyStoneBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelStoneMossy.java
similarity index 95%
rename from src/main/java/net/minecraft/client/render/block/model/MossyStoneBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelStoneMossy.java
index 2d267ba97..c75156492 100644
--- a/src/main/java/net/minecraft/client/render/block/model/MossyStoneBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelStoneMossy.java
@@ -8,9 +8,9 @@ import net.minecraft.core.block.Block;
 import org.jetbrains.annotations.Nullable;
 import org.lwjgl.opengl.GL11;
 
-public class MossyStoneBlockModel<T extends Block> extends StandardBlockModel<T> {
+public class BlockModelStoneMossy<T extends Block> extends BlockModelStandard<T> {
     protected IconCoordinate mossOverlay;
-    public MossyStoneBlockModel(Block block) {
+    public BlockModelStoneMossy(Block block) {
         super(block);
         mossOverlay = TextureRegistry.getTexture("minecraft:block/moss_overlay");
     }
diff --git a/src/main/java/net/minecraft/client/render/block/model/TorchBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelTorch.java
similarity index 93%
rename from src/main/java/net/minecraft/client/render/block/model/TorchBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelTorch.java
index 8bf27d21a..c54de360f 100644
--- a/src/main/java/net/minecraft/client/render/block/model/TorchBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelTorch.java
@@ -4,11 +4,11 @@ import net.minecraft.client.render.LightmapHelper;
 import net.minecraft.client.render.texture.stitcher.IconCoordinate;
 import net.minecraft.client.render.tessellator.Tessellator;
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.TorchBlock;
+import net.minecraft.core.block.BlockTorch;
 import net.minecraft.core.util.helper.Side;
 
-public class TorchBlockModel<T extends Block> extends StandardBlockModel<T> {
-    public TorchBlockModel(Block block) {
+public class BlockModelTorch<T extends Block> extends BlockModelStandard<T> {
+    public BlockModelTorch(Block block) {
         super(block);
     }
 
@@ -28,18 +28,18 @@ public class TorchBlockModel<T extends Block> extends StandardBlockModel<T> {
         double d = 0.4;
         double d1 = 0.5D - d;
         double d2 = 0.2;
-        int direction = renderBlocks.blockAccess.getBlockMetadata(x, y, z) & TorchBlock.MASK_DIRECTION;
+        int direction = renderBlocks.blockAccess.getBlockMetadata(x, y, z) & BlockTorch.MASK_DIRECTION;
         switch (direction) {
-            case TorchBlock.SIDE_WEST:
+            case BlockTorch.SIDE_WEST:
                 renderTorchAtAngle(tessellator, (double) x - d1, (double) y + d2, z, -d, 0.0D);
                 break;
-            case TorchBlock.SIDE_EAST:
+            case BlockTorch.SIDE_EAST:
                 renderTorchAtAngle(tessellator, (double) x + d1, (double) y + d2, z, d, 0.0D);
                 break;
-            case TorchBlock.SIDE_NORTH:
+            case BlockTorch.SIDE_NORTH:
                 renderTorchAtAngle(tessellator, x, (double) y + d2, (double) z - d1, 0.0D, -d);
                 break;
-            case TorchBlock.SIDE_SOUTH:
+            case BlockTorch.SIDE_SOUTH:
                 renderTorchAtAngle(tessellator, x, (double) y + d2, (double) z + d1, 0.0D, d);
                 break;
             default:
diff --git a/src/main/java/net/minecraft/client/render/block/model/TorchRedstoneBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelTorchRedstone.java
similarity index 82%
rename from src/main/java/net/minecraft/client/render/block/model/TorchRedstoneBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelTorchRedstone.java
index de07d508e..cae4c94ba 100644
--- a/src/main/java/net/minecraft/client/render/block/model/TorchRedstoneBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelTorchRedstone.java
@@ -3,13 +3,13 @@ package net.minecraft.client.render.block.model;
 import net.minecraft.client.render.texture.stitcher.IconCoordinate;
 import net.minecraft.core.block.Block;
 import net.minecraft.core.block.Blocks;
-import net.minecraft.core.block.RedstoneTorchBlock;
+import net.minecraft.core.block.BlockTorchRedstone;
 import net.minecraft.core.util.helper.Side;
 
-public class TorchRedstoneBlockModel extends TorchBlockModel<RedstoneTorchBlock> {
+public class BlockModelTorchRedstone extends BlockModelTorch<BlockTorchRedstone> {
     private static final BlockModel<Block> redstoneWire = BlockModelDispatcher.getInstance().getDispatch(Blocks.WIRE_REDSTONE);
 
-    public TorchRedstoneBlockModel(Block block) {
+    public BlockModelTorchRedstone(Block block) {
         super(block);
     }
 
diff --git a/src/main/java/net/minecraft/client/render/block/model/TransparentBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelTransparent.java
similarity index 80%
rename from src/main/java/net/minecraft/client/render/block/model/TransparentBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelTransparent.java
index a84a0b405..b0a2d9837 100644
--- a/src/main/java/net/minecraft/client/render/block/model/TransparentBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelTransparent.java
@@ -3,9 +3,9 @@ package net.minecraft.client.render.block.model;
 import net.minecraft.core.block.Block;
 import net.minecraft.core.world.WorldSource;
 
-public class TransparentBlockModel<T extends Block> extends StandardBlockModel<T> {
+public class BlockModelTransparent<T extends Block> extends BlockModelStandard<T> {
     private final boolean renderInside;
-    public TransparentBlockModel(Block block, boolean renderInside){
+    public BlockModelTransparent(Block block, boolean renderInside){
         super(block);
         this.renderInside = renderInside;
     }
diff --git a/src/main/java/net/minecraft/client/render/block/model/TrapDoorBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelTrapDoor.java
similarity index 89%
rename from src/main/java/net/minecraft/client/render/block/model/TrapDoorBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelTrapDoor.java
index 91d6bef12..0fccd7420 100644
--- a/src/main/java/net/minecraft/client/render/block/model/TrapDoorBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelTrapDoor.java
@@ -3,15 +3,15 @@ package net.minecraft.client.render.block.model;
 import net.minecraft.client.render.texture.stitcher.IconCoordinate;
 import net.minecraft.client.render.tessellator.Tessellator;
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.TrapDoorBlock;
+import net.minecraft.core.block.BlockTrapDoor;
 import net.minecraft.core.util.helper.Axis;
 import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.util.helper.Sides;
 import org.jetbrains.annotations.Nullable;
 import org.lwjgl.opengl.GL11;
 
-public class TrapDoorBlockModel<T extends Block> extends StandardBlockModel<T> {
-    public TrapDoorBlockModel(Block block) {
+public class BlockModelTrapDoor<T extends Block> extends BlockModelStandard<T> {
+    public BlockModelTrapDoor(Block block) {
         super(block);
         float offset = 0.1875F;
         withCustomItemBounds(0.0F, 0.0F, 0.0F, 1.0F, offset, 1.0F);
@@ -21,7 +21,7 @@ public class TrapDoorBlockModel<T extends Block> extends StandardBlockModel<T> {
     public boolean render(Tessellator tessellator, int x, int y, int z) {
         block.setBlockBoundsBasedOnState(renderBlocks.blockAccess, x, y, z);
         int metadata = renderBlocks.blockAccess.getBlockMetadata(x, y, z);
-        boolean isUp = TrapDoorBlock.isTrapdoorOpen(metadata);
+        boolean isUp = BlockTrapDoor.isTrapdoorOpen(metadata);
 
         if(isUp) {
             switch (metadata & 3) {
@@ -55,7 +55,7 @@ public class TrapDoorBlockModel<T extends Block> extends StandardBlockModel<T> {
             }
         }
         else{
-            if(TrapDoorBlock.isUpperHalf(metadata)){
+            if(BlockTrapDoor.isUpperHalf(metadata)){
                 renderBlocks.uvRotateSouth = 3;
                 renderBlocks.uvRotateNorth = 3;
                 renderBlocks.uvRotateEast = 3;
@@ -75,7 +75,7 @@ public class TrapDoorBlockModel<T extends Block> extends StandardBlockModel<T> {
     public IconCoordinate getBlockTextureFromSideAndMetadata(Side side, int data)
     {
         int orientation = data & 3;
-        if(TrapDoorBlock.isTrapdoorOpen(data)) {
+        if(BlockTrapDoor.isTrapdoorOpen(data)) {
             int index = Sides.orientationLookUpTrapdoorOpen[6 * orientation + side.getId()];
             return atlasIndices[index];
         } else {
diff --git a/src/main/java/net/minecraft/client/render/block/model/TrapDoorPaintedBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelTrapDoorPainted.java
similarity index 86%
rename from src/main/java/net/minecraft/client/render/block/model/TrapDoorPaintedBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelTrapDoorPainted.java
index 5b5fc60b3..04b151c36 100644
--- a/src/main/java/net/minecraft/client/render/block/model/TrapDoorPaintedBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelTrapDoorPainted.java
@@ -3,13 +3,13 @@ package net.minecraft.client.render.block.model;
 import net.minecraft.client.render.texture.stitcher.IconCoordinate;
 import net.minecraft.client.render.texture.stitcher.TextureRegistry;
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.TrapDoorBlock;
+import net.minecraft.core.block.BlockTrapDoor;
 import net.minecraft.core.util.helper.Axis;
 import net.minecraft.core.util.helper.DyeColor;
 import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.util.helper.Sides;
 
-public class TrapDoorPaintedBlockModel<T extends Block> extends TrapDoorBlockModel<T> {
+public class BlockModelTrapDoorPainted<T extends Block> extends BlockModelTrapDoor<T> {
     public static final IconCoordinate[] topTextures = new IconCoordinate[DyeColor.COLOR_AMOUNT];
     public static final IconCoordinate[] sideTextures = new IconCoordinate[DyeColor.COLOR_AMOUNT];
 
@@ -19,7 +19,7 @@ public class TrapDoorPaintedBlockModel<T extends Block> extends TrapDoorBlockMod
             sideTextures[c.blockMeta] = TextureRegistry.getTexture("minecraft:block/trapdoor/planks_" + c.colorID + "/side");
         }
     }
-    public TrapDoorPaintedBlockModel(Block block) {
+    public BlockModelTrapDoorPainted(Block block) {
         super(block);
     }
     @Override
@@ -27,7 +27,7 @@ public class TrapDoorPaintedBlockModel<T extends Block> extends TrapDoorBlockMod
     {
         int color = (data >> 4) & DyeColor.MASK_COLOR;
         int orientation = data & 3;
-        if(TrapDoorBlock.isTrapdoorOpen(data)) {
+        if(BlockTrapDoor.isTrapdoorOpen(data)) {
             int index = Sides.orientationLookUpTrapdoorOpen[6 * orientation + side.getId()];
             if (index < 2) return topTextures[color];
             return sideTextures[color];
diff --git a/src/main/java/net/minecraft/client/render/block/model/VeryRotatableBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelVeryRotatable.java
similarity index 88%
rename from src/main/java/net/minecraft/client/render/block/model/VeryRotatableBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelVeryRotatable.java
index 260bfe43a..a7bcd01bf 100644
--- a/src/main/java/net/minecraft/client/render/block/model/VeryRotatableBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelVeryRotatable.java
@@ -3,13 +3,13 @@ package net.minecraft.client.render.block.model;
 import net.minecraft.client.render.tessellator.Tessellator;
 import net.minecraft.client.render.texture.stitcher.IconCoordinate;
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.VeryRotatableEntityBlock;
+import net.minecraft.core.block.BlockTileEntityVeryRotatable;
 import net.minecraft.core.util.helper.Direction;
 import net.minecraft.core.util.helper.Side;
 import org.jetbrains.annotations.Nullable;
 
-public class VeryRotatableBlockModel<T extends Block> extends StandardBlockModel<T> {
-    public VeryRotatableBlockModel(Block block) {
+public class BlockModelVeryRotatable<T extends Block> extends BlockModelStandard<T> {
+    public BlockModelVeryRotatable(Block block) {
         super(block);
     }
 
@@ -17,7 +17,7 @@ public class VeryRotatableBlockModel<T extends Block> extends StandardBlockModel
     public boolean render(Tessellator tessellator, int x, int y, int z) {
         block.setBlockBoundsBasedOnState(renderBlocks.blockAccess, x, y, z);
         final int meta = renderBlocks.blockAccess.getBlockMetadata(x, y, z);
-        final Direction dir = VeryRotatableEntityBlock.metaToDirection(meta);
+        final Direction dir = BlockTileEntityVeryRotatable.metaToDirection(meta);
 
         if (dir == Direction.DOWN || dir == Direction.UP) {
             renderBlocks.uvRotateSouth = 1;
@@ -42,7 +42,7 @@ public class VeryRotatableBlockModel<T extends Block> extends StandardBlockModel
     }
 
     public int getTextureIndex(Side side, int data) {
-        final Direction dir = VeryRotatableEntityBlock.metaToDirection(data);
+        final Direction dir = BlockTileEntityVeryRotatable.metaToDirection(data);
         switch (dir) { // I love brute forcing fixes so much :3
             case SOUTH:
                 return side.getId();
diff --git a/src/main/java/net/minecraft/client/render/block/model/RedstoneWireBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelWireRedstone.java
similarity index 93%
rename from src/main/java/net/minecraft/client/render/block/model/RedstoneWireBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelWireRedstone.java
index 74720ad25..99fb52b9f 100644
--- a/src/main/java/net/minecraft/client/render/block/model/RedstoneWireBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelWireRedstone.java
@@ -6,14 +6,14 @@ import net.minecraft.client.render.texture.stitcher.TextureRegistry;
 import net.minecraft.client.render.tessellator.Tessellator;
 import net.minecraft.client.util.helper.Colors;
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.RedstoneWireBlock;
+import net.minecraft.core.block.BlockWireRedstone;
 import net.minecraft.core.enums.LightLayer;
 import net.minecraft.core.util.helper.Color;
 
-public class RedstoneWireBlockModel<T extends Block> extends StandardBlockModel<T> {
+public class BlockModelWireRedstone<T extends Block> extends BlockModelStandard<T> {
     protected final IconCoordinate wireStraight = TextureRegistry.getTexture("minecraft:block/wire_redstone_straight");
     protected final IconCoordinate wireCross = TextureRegistry.getTexture("minecraft:block/wire_redstone_cross");
-    public RedstoneWireBlockModel(Block block) {
+    public BlockModelWireRedstone(Block block) {
         super(block);
         withTextures("minecraft:block/wire_redstone_cross");
     }
@@ -51,32 +51,32 @@ public class RedstoneWireBlockModel<T extends Block> extends StandardBlockModel<
         float blue = color.getBlue() / 255.0f;
 
         tessellator.setColorOpaque_F(brightness * red, brightness * green, brightness * blue);
-        boolean west = RedstoneWireBlock.shouldConnectTo(renderBlocks.blockAccess, x - 1, y, z, 1) || !renderBlocks.blockAccess.isBlockNormalCube(x - 1, y, z) && RedstoneWireBlock.shouldConnectTo(renderBlocks.blockAccess, x - 1, y - 1, z, -1);
-        boolean east = RedstoneWireBlock.shouldConnectTo(renderBlocks.blockAccess, x + 1, y, z, 3) || !renderBlocks.blockAccess.isBlockNormalCube(x + 1, y, z) && RedstoneWireBlock.shouldConnectTo(renderBlocks.blockAccess, x + 1, y - 1, z, -1);
-        boolean north = RedstoneWireBlock.shouldConnectTo(renderBlocks.blockAccess, x, y, z - 1, 2) || !renderBlocks.blockAccess.isBlockNormalCube(x, y, z - 1) && RedstoneWireBlock.shouldConnectTo(renderBlocks.blockAccess, x, y - 1, z - 1, -1);
-        boolean south = RedstoneWireBlock.shouldConnectTo(renderBlocks.blockAccess, x, y, z + 1, 0) || !renderBlocks.blockAccess.isBlockNormalCube(x, y, z + 1) && RedstoneWireBlock.shouldConnectTo(renderBlocks.blockAccess, x, y - 1, z + 1, -1);
+        boolean west = BlockWireRedstone.shouldConnectTo(renderBlocks.blockAccess, x - 1, y, z, 1) || !renderBlocks.blockAccess.isBlockNormalCube(x - 1, y, z) && BlockWireRedstone.shouldConnectTo(renderBlocks.blockAccess, x - 1, y - 1, z, -1);
+        boolean east = BlockWireRedstone.shouldConnectTo(renderBlocks.blockAccess, x + 1, y, z, 3) || !renderBlocks.blockAccess.isBlockNormalCube(x + 1, y, z) && BlockWireRedstone.shouldConnectTo(renderBlocks.blockAccess, x + 1, y - 1, z, -1);
+        boolean north = BlockWireRedstone.shouldConnectTo(renderBlocks.blockAccess, x, y, z - 1, 2) || !renderBlocks.blockAccess.isBlockNormalCube(x, y, z - 1) && BlockWireRedstone.shouldConnectTo(renderBlocks.blockAccess, x, y - 1, z - 1, -1);
+        boolean south = BlockWireRedstone.shouldConnectTo(renderBlocks.blockAccess, x, y, z + 1, 0) || !renderBlocks.blockAccess.isBlockNormalCube(x, y, z + 1) && BlockWireRedstone.shouldConnectTo(renderBlocks.blockAccess, x, y - 1, z + 1, -1);
         boolean westUp = false;
         boolean eastUp = false;
         boolean northUp = false;
         boolean southUp = false;
         if(!renderBlocks.blockAccess.isBlockOpaqueCube(x, y + 1, z))
         {
-            if(renderBlocks.blockAccess.isBlockNormalCube(x - 1, y, z) && RedstoneWireBlock.shouldConnectTo(renderBlocks.blockAccess, x - 1, y + 1, z, -1))
+            if(renderBlocks.blockAccess.isBlockNormalCube(x - 1, y, z) && BlockWireRedstone.shouldConnectTo(renderBlocks.blockAccess, x - 1, y + 1, z, -1))
             {
                 west = true;
                 westUp = true;
             }
-            if(renderBlocks.blockAccess.isBlockNormalCube(x + 1, y, z) && RedstoneWireBlock.shouldConnectTo(renderBlocks.blockAccess, x + 1, y + 1, z, -1))
+            if(renderBlocks.blockAccess.isBlockNormalCube(x + 1, y, z) && BlockWireRedstone.shouldConnectTo(renderBlocks.blockAccess, x + 1, y + 1, z, -1))
             {
                 east = true;
                 eastUp = true;
             }
-            if(renderBlocks.blockAccess.isBlockNormalCube(x, y, z - 1) && RedstoneWireBlock.shouldConnectTo(renderBlocks.blockAccess, x, y + 1, z - 1, -1))
+            if(renderBlocks.blockAccess.isBlockNormalCube(x, y, z - 1) && BlockWireRedstone.shouldConnectTo(renderBlocks.blockAccess, x, y + 1, z - 1, -1))
             {
                 north = true;
                 northUp = true;
             }
-            if(renderBlocks.blockAccess.isBlockNormalCube(x, y, z + 1) && RedstoneWireBlock.shouldConnectTo(renderBlocks.blockAccess, x, y + 1, z + 1, -1))
+            if(renderBlocks.blockAccess.isBlockNormalCube(x, y, z + 1) && BlockWireRedstone.shouldConnectTo(renderBlocks.blockAccess, x, y + 1, z + 1, -1))
             {
                 south = true;
                 southUp = true;
diff --git a/src/main/java/net/minecraft/client/render/block/model/WoolBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelWool.java
similarity index 87%
rename from src/main/java/net/minecraft/client/render/block/model/WoolBlockModel.java
rename to src/main/java/net/minecraft/client/render/block/model/BlockModelWool.java
index 12f284f16..f450baf72 100644
--- a/src/main/java/net/minecraft/client/render/block/model/WoolBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelWool.java
@@ -6,7 +6,7 @@ import net.minecraft.core.block.Block;
 import net.minecraft.core.util.helper.DyeColor;
 import net.minecraft.core.util.helper.Side;
 
-public class WoolBlockModel<T extends Block> extends StandardBlockModel<T> {
+public class BlockModelWool<T extends Block> extends BlockModelStandard<T> {
     public static final IconCoordinate[] texCoords = new IconCoordinate[DyeColor.COLOR_AMOUNT];
 
     static {
@@ -14,7 +14,7 @@ public class WoolBlockModel<T extends Block> extends StandardBlockModel<T> {
             texCoords[c.blockMeta] = TextureRegistry.getTexture("minecraft:block/wool/" + c.colorID);
         }
     }
-    public WoolBlockModel(Block block) {
+    public BlockModelWool(Block block) {
         super(block);
     }
 
diff --git a/src/main/java/net/minecraft/client/render/blockentity/BlockEntityRenderer.java b/src/main/java/net/minecraft/client/render/blockentity/TileEntityRenderer.java
similarity index 87%
rename from src/main/java/net/minecraft/client/render/blockentity/BlockEntityRenderer.java
rename to src/main/java/net/minecraft/client/render/blockentity/TileEntityRenderer.java
index 8131e23cd..a85f63e74 100644
--- a/src/main/java/net/minecraft/client/render/blockentity/BlockEntityRenderer.java
+++ b/src/main/java/net/minecraft/client/render/blockentity/TileEntityRenderer.java
@@ -4,13 +4,13 @@ import net.minecraft.client.render.Font;
 import net.minecraft.client.render.TextureManager;
 import net.minecraft.client.render.BlockEntityRenderDispatcher;
 import net.minecraft.client.render.tessellator.Tessellator;
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.world.World;
 
-public abstract class BlockEntityRenderer<T extends BlockEntity>
+public abstract class TileEntityRenderer<T extends TileEntity>
 {
 
-    public BlockEntityRenderer()
+    public TileEntityRenderer()
     {
     }
 
diff --git a/src/main/java/net/minecraft/client/render/blockentity/FlagBlockEntityRenderer.java b/src/main/java/net/minecraft/client/render/blockentity/TileEntityRendererFlag.java
similarity index 71%
rename from src/main/java/net/minecraft/client/render/blockentity/FlagBlockEntityRenderer.java
rename to src/main/java/net/minecraft/client/render/blockentity/TileEntityRendererFlag.java
index d8bd8d881..c1503f067 100644
--- a/src/main/java/net/minecraft/client/render/blockentity/FlagBlockEntityRenderer.java
+++ b/src/main/java/net/minecraft/client/render/blockentity/TileEntityRendererFlag.java
@@ -2,31 +2,31 @@ package net.minecraft.client.render.blockentity;
 
 import net.minecraft.client.Minecraft;
 import net.minecraft.client.render.FlagRenderer;
-import net.minecraft.client.render.model.FlagModel;
+import net.minecraft.client.render.model.ModelFlag;
 import net.minecraft.client.render.tessellator.Tessellator;
 import net.minecraft.core.block.Blocks;
-import net.minecraft.core.block.entity.FlagBlockEntity;
+import net.minecraft.core.block.entity.TileEntityFlag;
 
 import net.minecraft.core.world.World;
 import net.minecraft.core.world.wind.WindProvider;
 import org.lwjgl.opengl.GL11;
 
-public class FlagBlockEntityRenderer extends BlockEntityRenderer<FlagBlockEntity>
+public class TileEntityRendererFlag extends TileEntityRenderer<TileEntityFlag>
 {
 
 	public final Minecraft mc = Minecraft.getMinecraft(this);
-    private final FlagModel flagModel;
-    private final FlagModel flagModelMirrored;
+    private final ModelFlag modelFlag;
+    private final ModelFlag modelFlagMirrored;
     private static FlagRenderer flagRenderer = null;
     
-    public FlagBlockEntityRenderer()
+    public TileEntityRendererFlag()
     {
-        flagModel = new FlagModel(false);
-        flagModelMirrored = new FlagModel(true);
+        modelFlag = new ModelFlag(false);
+        modelFlagMirrored = new ModelFlag(true);
     }
 
     @Override
-    public void doRender(Tessellator tessellator, FlagBlockEntity tileEntity, double x, double y, double z, float partialTick) {
+    public void doRender(Tessellator tessellator, TileEntityFlag tileEntity, double x, double y, double z, float partialTick) {
         World theWorld = Minecraft.getMinecraft(this).theWorld;
         int blockUnder = theWorld.getBlockId(tileEntity.x, tileEntity.y - 1, tileEntity.z);
         boolean shortPole = blockUnder == Blocks.FLAG.id;
@@ -40,7 +40,7 @@ public class FlagBlockEntityRenderer extends BlockEntityRenderer<FlagBlockEntity
     }
 
     private long lastTick = 0;
-    public void doRender(FlagBlockEntity flagBlockEntity, double x, double y, double z, float partialTick, boolean shortPole, float windDirection, float windIntensity)
+    public void doRender(TileEntityFlag tileEntityFlag, double x, double y, double z, float partialTick, boolean shortPole, float windDirection, float windIntensity)
     {
         World theWorld = Minecraft.getMinecraft(this).theWorld;
         if (flagRenderer == null)
@@ -53,7 +53,7 @@ public class FlagBlockEntityRenderer extends BlockEntityRenderer<FlagBlockEntity
             flagRenderer.tick();
         }
         
-        float swayInterpolated = flagBlockEntity.sway + partialTick;
+        float swayInterpolated = tileEntityFlag.sway + partialTick;
         
         float sway = (float) ((swayInterpolated / 1.5) % (2 * Math.PI));
         sway = (float) (Math.sin(sway) * windIntensity * 2.0f);
@@ -65,24 +65,24 @@ public class FlagBlockEntityRenderer extends BlockEntityRenderer<FlagBlockEntity
         loadTexture("/assets/minecraft/textures/entity/flag.png");
         if (shortPole)
         {
-            flagModel.renderPoleShort();
+            modelFlag.renderPoleShort();
         }
         else
         {
-            flagModel.renderBase();
-            flagModel.renderPole();
+            modelFlag.renderBase();
+            modelFlag.renderPole();
         }
         
         GL11.glPushMatrix();
         GL11.glRotatef(windDirection + sway, 0.0f, 1.0f, 0.0f);
-        flagModel.renderFlag();
-        renderDispatcher.textureManager.bindTexture(flagRenderer.getTexture(flagBlockEntity));
+        modelFlag.renderFlag();
+        renderDispatcher.textureManager.bindTexture(flagRenderer.getTexture(tileEntityFlag));
         GL11.glEnable(GL11.GL_BLEND);
         GL11.glBlendFunc(GL11.GL_ONE_MINUS_SRC_COLOR, GL11.GL_SRC_COLOR);
-        if (flagBlockEntity.getFlipped()) {
-            flagModelMirrored.renderFlagOverlay();
+        if (tileEntityFlag.getFlipped()) {
+            modelFlagMirrored.renderFlagOverlay();
         } else {
-            flagModel.renderFlagOverlay();
+            modelFlag.renderFlagOverlay();
         }
         GL11.glDisable(GL11.GL_BLEND);
         GL11.glPopMatrix();
diff --git a/src/main/java/net/minecraft/client/render/blockentity/FlowerJarBlockEntityRenderer.java b/src/main/java/net/minecraft/client/render/blockentity/TileEntityRendererFlowerJar.java
similarity index 79%
rename from src/main/java/net/minecraft/client/render/blockentity/FlowerJarBlockEntityRenderer.java
rename to src/main/java/net/minecraft/client/render/blockentity/TileEntityRendererFlowerJar.java
index e44caeefe..b38cf42e6 100644
--- a/src/main/java/net/minecraft/client/render/blockentity/FlowerJarBlockEntityRenderer.java
+++ b/src/main/java/net/minecraft/client/render/blockentity/TileEntityRendererFlowerJar.java
@@ -1,6 +1,5 @@
 package net.minecraft.client.render.blockentity;
 
-import net.minecraft.client.Minecraft;
 import net.minecraft.client.render.Lighting;
 import net.minecraft.client.render.LightmapHelper;
 import net.minecraft.client.render.RenderBlocks;
@@ -10,25 +9,16 @@ import net.minecraft.client.render.texture.stitcher.TextureRegistry;
 import net.minecraft.client.render.tessellator.Tessellator;
 import net.minecraft.core.Global;
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.entity.FlowerJarBlockEntity;
+import net.minecraft.core.block.entity.TileEntityFlowerJar;
 import net.minecraft.core.enums.LightLayer;
 import net.minecraft.core.world.World;
 import org.lwjgl.opengl.GL11;
 
-import java.util.Map;
-
 import static org.lwjgl.opengl.GL11.GL_BLEND;
-import static org.lwjgl.opengl.GL11.GL_COLOR_MATERIAL;
-import static org.lwjgl.opengl.GL11.GL_FLAT;
-import static org.lwjgl.opengl.GL11.GL_LIGHT0;
-import static org.lwjgl.opengl.GL11.GL_LIGHT1;
-import static org.lwjgl.opengl.GL11.GL_LIGHTING;
 import static org.lwjgl.opengl.GL11.GL_ONE_MINUS_SRC_ALPHA;
 import static org.lwjgl.opengl.GL11.GL_SRC_ALPHA;
-import static org.lwjgl.opengl.GL11.glEnable;
-import static org.lwjgl.opengl.GL11.glShadeModel;
 
-public class FlowerJarBlockEntityRenderer extends BlockEntityRenderer<FlowerJarBlockEntity> {
+public class TileEntityRendererFlowerJar extends TileEntityRenderer<TileEntityFlowerJar> {
     private RenderBlocks renderBlocks;
     @Override
     public void onWorldChanged(World world)
@@ -36,7 +26,7 @@ public class FlowerJarBlockEntityRenderer extends BlockEntityRenderer<FlowerJarB
         renderBlocks = new RenderBlocks(world);
     }
     @Override
-    public void doRender(Tessellator tessellator, FlowerJarBlockEntity tileEntity, double x, double y, double z, float renderPartialTicks) {
+    public void doRender(Tessellator tessellator, TileEntityFlowerJar tileEntity, double x, double y, double z, float renderPartialTicks) {
         GL11.glPushMatrix();
         Block block = Block.getBlock(tileEntity.flowerInPot);
         if(block != null){
diff --git a/src/main/java/net/minecraft/client/render/blockentity/MeshBlockEntityRenderer.java b/src/main/java/net/minecraft/client/render/blockentity/TileEntityRendererMeshGold.java
similarity index 83%
rename from src/main/java/net/minecraft/client/render/blockentity/MeshBlockEntityRenderer.java
rename to src/main/java/net/minecraft/client/render/blockentity/TileEntityRendererMeshGold.java
index 4b832d2ee..2c417b1a9 100644
--- a/src/main/java/net/minecraft/client/render/blockentity/MeshBlockEntityRenderer.java
+++ b/src/main/java/net/minecraft/client/render/blockentity/TileEntityRendererMeshGold.java
@@ -1,7 +1,7 @@
 package net.minecraft.client.render.blockentity;
 
-import net.minecraft.core.block.entity.GoldMeshBlockEntity;
-import net.minecraft.core.entity.ItemEntity;
+import net.minecraft.core.block.entity.TileEntityMeshGold;
+import net.minecraft.core.entity.EntityItem;
 import org.lwjgl.opengl.GL11;
 
 import net.minecraft.client.Minecraft;
@@ -14,14 +14,14 @@ import net.minecraft.core.util.helper.MathHelper;
 import java.util.Random;
 import org.lwjgl.opengl.GL12;
 
-public class MeshBlockEntityRenderer extends BlockEntityRenderer<GoldMeshBlockEntity> {
+public class TileEntityRendererMeshGold extends TileEntityRenderer<TileEntityMeshGold> {
 	
-	public ItemEntity renderEntity = new ItemEntity(null);
+	public EntityItem renderEntity = new EntityItem(null);
 
     private Random rand = new Random();
 
     @Override
-    public void doRender(Tessellator tessellator, GoldMeshBlockEntity tileEntity, double x, double y, double z, float renderPartialTicks) {
+    public void doRender(Tessellator tessellator, TileEntityMeshGold tileEntity, double x, double y, double z, float renderPartialTicks) {
         if(tileEntity.filterItem == null) return;
         GL11.glPushMatrix();
 
diff --git a/src/main/java/net/minecraft/client/render/blockentity/MobSpawnerBlockEntityRenderer.java b/src/main/java/net/minecraft/client/render/blockentity/TileEntityRendererMobSpawner.java
similarity index 80%
rename from src/main/java/net/minecraft/client/render/blockentity/MobSpawnerBlockEntityRenderer.java
rename to src/main/java/net/minecraft/client/render/blockentity/TileEntityRendererMobSpawner.java
index bea6ec1b3..239deb2ba 100644
--- a/src/main/java/net/minecraft/client/render/blockentity/MobSpawnerBlockEntityRenderer.java
+++ b/src/main/java/net/minecraft/client/render/blockentity/TileEntityRendererMobSpawner.java
@@ -5,20 +5,20 @@ import java.util.Map;
 
 import net.minecraft.client.render.EntityRenderDispatcher;
 import net.minecraft.client.render.tessellator.Tessellator;
-import net.minecraft.core.block.entity.MobSpawnerBlockEntity;
+import net.minecraft.core.block.entity.TileEntityMobSpawner;
 import net.minecraft.core.entity.Entity;
 import net.minecraft.core.entity.EntityDispatcher;
 import net.minecraft.core.world.World;
 import org.lwjgl.opengl.GL11;
 
 // Referenced classes of package net.minecraft.src:
-//            TileEntitySpecialRenderer, MobSpawnerBlockEntity, Entity, EntityList,
-//            RenderManager, BlockEntity
+//            TileEntitySpecialRenderer, TileEntityMobSpawner, Entity, EntityList,
+//            RenderManager, TileEntity
 
-public class MobSpawnerBlockEntityRenderer extends BlockEntityRenderer<MobSpawnerBlockEntity>
+public class TileEntityRendererMobSpawner extends TileEntityRenderer<TileEntityMobSpawner>
 {
 
-    public MobSpawnerBlockEntityRenderer()
+    public TileEntityRendererMobSpawner()
     {
         entityHashMap = new HashMap<>();
     }
@@ -28,7 +28,7 @@ public class MobSpawnerBlockEntityRenderer extends BlockEntityRenderer<MobSpawne
     }
 
     @Override
-	public void doRender(Tessellator tessellator, MobSpawnerBlockEntity mobSpawner, double x, double y, double z,
+	public void doRender(Tessellator tessellator, TileEntityMobSpawner mobSpawner, double x, double y, double z,
                          float partialTick)
     {
         GL11.glPushMatrix();
diff --git a/src/main/java/net/minecraft/client/render/blockentity/PistonBlockEntityRenderer.java b/src/main/java/net/minecraft/client/render/blockentity/TileEntityRendererMovingPiston.java
similarity index 73%
rename from src/main/java/net/minecraft/client/render/blockentity/PistonBlockEntityRenderer.java
rename to src/main/java/net/minecraft/client/render/blockentity/TileEntityRendererMovingPiston.java
index 53f7dba58..95028fa1b 100644
--- a/src/main/java/net/minecraft/client/render/blockentity/PistonBlockEntityRenderer.java
+++ b/src/main/java/net/minecraft/client/render/blockentity/TileEntityRendererMovingPiston.java
@@ -6,22 +6,22 @@ import net.minecraft.client.render.Lighting;
 import net.minecraft.client.render.RenderBlocks;
 import net.minecraft.client.render.block.model.BlockModel;
 import net.minecraft.client.render.block.model.BlockModelDispatcher;
-import net.minecraft.client.render.block.model.PistonBlockModel;
-import net.minecraft.client.render.block.model.PistonHeadBlockModel;
+import net.minecraft.client.render.block.model.BlockModelPiston;
+import net.minecraft.client.render.block.model.BlockModelPistonHead;
 import net.minecraft.client.render.texture.stitcher.TextureRegistry;
 import net.minecraft.client.render.tessellator.Tessellator;
 import net.minecraft.core.block.Block;
 import net.minecraft.core.block.Blocks;
-import net.minecraft.core.block.entity.BlockEntity;
-import net.minecraft.core.block.piston.PistonBaseBlock;
-import net.minecraft.core.block.piston.MovingPistonBlockEntity;
-import net.minecraft.core.block.piston.PistonHeadBlock;
-import net.minecraft.core.block.piston.SteelPistonBaseBlock;
+import net.minecraft.core.block.entity.TileEntity;
+import net.minecraft.core.block.piston.BlockPistonBase;
+import net.minecraft.core.block.piston.TileEntityMovingPistonBlock;
+import net.minecraft.core.block.piston.BlockPistonHead;
+import net.minecraft.core.block.piston.BlockPistonBaseSteel;
 import net.minecraft.core.world.BlocksContainer;
 import net.minecraft.core.world.World;
 import org.lwjgl.opengl.GL11;
 
-public class PistonBlockEntityRenderer extends BlockEntityRenderer<MovingPistonBlockEntity>
+public class TileEntityRendererMovingPiston extends TileEntityRenderer<TileEntityMovingPistonBlock>
 {
     private RenderBlocks renderBlocks;
     private final Minecraft mc;
@@ -29,7 +29,7 @@ public class PistonBlockEntityRenderer extends BlockEntityRenderer<MovingPistonB
     private BlocksContainer container = null;
     private RenderBlocks containerRenderBlock = null;
 
-    public PistonBlockEntityRenderer()
+    public TileEntityRendererMovingPiston()
     {
         mc = Minecraft.getMinecraft(this);
     }
@@ -41,7 +41,7 @@ public class PistonBlockEntityRenderer extends BlockEntityRenderer<MovingPistonB
     }
 
     @Override
-	public void doRender(Tessellator tessellator, MovingPistonBlockEntity blockEntity, double x, double y, double z,
+	public void doRender(Tessellator tessellator, TileEntityMovingPistonBlock blockEntity, double x, double y, double z,
                          float partialTick)
     {
         Block block = Block.blocksList[blockEntity.getMovedId()];
@@ -65,24 +65,24 @@ public class PistonBlockEntityRenderer extends BlockEntityRenderer<MovingPistonB
             }
             tessellator.startDrawingQuads();
             tessellator.setTranslation(((float)x - (float)blockEntity.x) + blockEntity.getXOff(partialTick), ((float)y - (float)blockEntity.y) + blockEntity.getYOff(partialTick), ((float)z - (float)blockEntity.z) + blockEntity.getZOff(partialTick));
-            if(block instanceof PistonHeadBlock && blockEntity.getProgress(partialTick) < 0.5F)
+            if(block instanceof BlockPistonHead && blockEntity.getProgress(partialTick) < 0.5F)
             {
                 BlockModel.setRenderBlocks(renderBlocks);
-                ((PistonHeadBlockModel)BlockModelDispatcher.getInstance().getDispatch(block)).renderPistonHeadNoCulling(tessellator, (PistonHeadBlock) block, blockEntity.x, blockEntity.y, blockEntity.z, false);
+                ((BlockModelPistonHead)BlockModelDispatcher.getInstance().getDispatch(block)).renderPistonHeadNoCulling(tessellator, (BlockPistonHead) block, blockEntity.x, blockEntity.y, blockEntity.z, false);
             } else
             if(blockEntity.isSourcePiston() && !blockEntity.isExtending())
             {
-                PistonBlockModel<PistonBaseBlock> pistonBase = (PistonBlockModel) BlockModelDispatcher.getInstance().getDispatch(block);
+                BlockModelPiston<BlockPistonBase> pistonBase = (BlockModelPiston) BlockModelDispatcher.getInstance().getDispatch(block);
                 BlockModel.setRenderBlocks(renderBlocks);
-                if (block instanceof SteelPistonBaseBlock) { // Todo remove this terrible hardcoded render code
-                    PistonHeadBlockModel blockModelPistonHead = ((PistonHeadBlockModel) BlockModelDispatcher.getInstance().getDispatch(Blocks.PISTON_HEAD_STEEL));
+                if (block instanceof BlockPistonBaseSteel) { // Todo remove this terrible hardcoded render code
+                    BlockModelPistonHead blockModelPistonHead = ((BlockModelPistonHead) BlockModelDispatcher.getInstance().getDispatch(Blocks.PISTON_HEAD_STEEL));
                     blockModelPistonHead.setFaceTextureOverride(pistonBase.getFaceTexture());
-                    blockModelPistonHead.renderPistonHeadNoCulling(tessellator, (PistonHeadBlock) Blocks.PISTON_HEAD_STEEL, blockEntity.x, blockEntity.y, blockEntity.z, blockEntity.getProgress(partialTick) < 0.5F);
+                    blockModelPistonHead.renderPistonHeadNoCulling(tessellator, (BlockPistonHead) Blocks.PISTON_HEAD_STEEL, blockEntity.x, blockEntity.y, blockEntity.z, blockEntity.getProgress(partialTick) < 0.5F);
                     blockModelPistonHead.setFaceTextureOverride(null);
                 } else {
-                    PistonHeadBlockModel blockModelPistonHead = ((PistonHeadBlockModel) BlockModelDispatcher.getInstance().getDispatch(Blocks.PISTON_HEAD));
+                    BlockModelPistonHead blockModelPistonHead = ((BlockModelPistonHead) BlockModelDispatcher.getInstance().getDispatch(Blocks.PISTON_HEAD));
                     blockModelPistonHead.setFaceTextureOverride(pistonBase.getFaceTexture());
-                    blockModelPistonHead.renderPistonHeadNoCulling(tessellator, (PistonHeadBlock) Blocks.PISTON_HEAD, blockEntity.x, blockEntity.y, blockEntity.z, blockEntity.getProgress(partialTick) < 0.5F);
+                    blockModelPistonHead.renderPistonHeadNoCulling(tessellator, (BlockPistonHead) Blocks.PISTON_HEAD, blockEntity.x, blockEntity.y, blockEntity.z, blockEntity.getProgress(partialTick) < 0.5F);
                     blockModelPistonHead.setFaceTextureOverride(null);
                 }
                 tessellator.setTranslation((float)x - (float)blockEntity.x, (float)y - (float)blockEntity.y, (float)z - (float)blockEntity.z);
@@ -100,8 +100,8 @@ public class PistonBlockEntityRenderer extends BlockEntityRenderer<MovingPistonB
 
             Lighting.enableLight();
 
-            BlockEntity movedEntity = blockEntity.getMovedEntity();
-            BlockEntityRenderer<BlockEntity> renderer = BlockEntityRenderDispatcher.instance.getRenderer(movedEntity);
+            TileEntity movedEntity = blockEntity.getMovedEntity();
+            TileEntityRenderer<TileEntity> renderer = BlockEntityRenderDispatcher.instance.getRenderer(movedEntity);
             if (renderer != null) {
                 GL11.glPushMatrix();
                 GL11.glTranslatef(blockEntity.getXOff(partialTick), blockEntity.getYOff(partialTick), blockEntity.getZOff(partialTick));
diff --git a/src/main/java/net/minecraft/client/render/blockentity/SignBlockEntityRenderer.java b/src/main/java/net/minecraft/client/render/blockentity/TileEntityRendererSign.java
similarity index 87%
rename from src/main/java/net/minecraft/client/render/blockentity/SignBlockEntityRenderer.java
rename to src/main/java/net/minecraft/client/render/blockentity/TileEntityRendererSign.java
index 2a7cd1496..16a60890f 100644
--- a/src/main/java/net/minecraft/client/render/blockentity/SignBlockEntityRenderer.java
+++ b/src/main/java/net/minecraft/client/render/blockentity/TileEntityRendererSign.java
@@ -3,33 +3,33 @@ package net.minecraft.client.render.blockentity;
 import net.minecraft.client.Minecraft;
 import net.minecraft.client.render.Font;
 import net.minecraft.client.render.LightmapHelper;
-import net.minecraft.client.render.model.SignModel;
+import net.minecraft.client.render.model.ModelSign;
 import net.minecraft.client.render.tessellator.Tessellator;
 import net.minecraft.client.render.texture.stitcher.IconCoordinate;
 import net.minecraft.client.render.texture.stitcher.TextureRegistry;
 import net.minecraft.core.block.Block;
 import net.minecraft.core.block.Blocks;
-import net.minecraft.core.block.entity.SignBlockEntity;
+import net.minecraft.core.block.entity.TileEntitySign;
 import net.minecraft.core.enums.EnumSignPicture;
 import net.minecraft.client.util.helper.Colors;
 import net.minecraft.core.util.helper.MathHelper;
 import org.lwjgl.opengl.GL11;
 
 // Referenced classes of package net.minecraft.src:
-//            TileEntitySpecialRenderer, SignModel, SignBlockEntity, Block,
-//            ModelRenderer, FontRenderer, BlockEntity
+//            TileEntitySpecialRenderer, ModelSign, TileEntitySign, Block,
+//            ModelRenderer, FontRenderer, TileEntity
 
-public class SignBlockEntityRenderer extends BlockEntityRenderer<SignBlockEntity>
+public class TileEntityRendererSign extends TileEntityRenderer<TileEntitySign>
 {
 
 	private final Minecraft mc = Minecraft.getMinecraft(this);
 	
-    public SignBlockEntityRenderer()
+    public TileEntityRendererSign()
     {
-        signModel = new SignModel();
+        modelSign = new ModelSign();
     }
 
-    public void renderTileEntitySignAt(SignBlockEntity tileEntity, double d, double d1, double d2,
+    public void renderTileEntitySignAt(TileEntitySign tileEntity, double d, double d1, double d2,
                                        float f)
     {
         Block block = tileEntity.getBlock();
@@ -40,7 +40,7 @@ public class SignBlockEntityRenderer extends BlockEntityRenderer<SignBlockEntity
             GL11.glTranslatef((float)d + 0.5F, (float)d1 + 0.75F * scale, (float)d2 + 0.5F);
             float f2 = (float)(tileEntity.getBlockMeta() * 360) / 16F;
             GL11.glRotatef(-f2, 0.0F, 1.0F, 0.0F);
-            signModel.signStick.visible = true;
+            modelSign.signStick.visible = true;
         }
         else
         {
@@ -64,12 +64,12 @@ public class SignBlockEntityRenderer extends BlockEntityRenderer<SignBlockEntity
             GL11.glTranslatef((float)d + 0.5F, (float)d1 + 0.75F * scale, (float)d2 + 0.5F);
             GL11.glRotatef(-f3, 0.0F, 1.0F, 0.0F);
             GL11.glTranslatef(0.0F, -0.3125F, -0.4375F);
-            signModel.signStick.visible = false;
+            modelSign.signStick.visible = false;
         }
         loadTexture("/assets/minecraft/textures/entity/sign.png");
         GL11.glPushMatrix();
         GL11.glScalef(scale, -scale, -scale);
-        signModel.render();
+        modelSign.render();
         GL11.glPopMatrix();
         Font font = getFont();
 
@@ -124,7 +124,7 @@ public class SignBlockEntityRenderer extends BlockEntityRenderer<SignBlockEntity
     }
 
     @Override
-	public void doRender(Tessellator tessellator, SignBlockEntity tileEntity, double x, double y, double z,
+	public void doRender(Tessellator tessellator, TileEntitySign tileEntity, double x, double y, double z,
                          float partialTick)
     {
         renderTileEntitySignAt(tileEntity, x, y, z, partialTick);
@@ -143,5 +143,5 @@ public class SignBlockEntityRenderer extends BlockEntityRenderer<SignBlockEntity
     }
 
 
-    private final SignModel signModel;
+    private final ModelSign modelSign;
 }
diff --git a/src/main/java/net/minecraft/client/render/camera/CameraUtil.java b/src/main/java/net/minecraft/client/render/camera/CameraUtil.java
index 9c55f6705..63f9ae7fc 100644
--- a/src/main/java/net/minecraft/client/render/camera/CameraUtil.java
+++ b/src/main/java/net/minecraft/client/render/camera/CameraUtil.java
@@ -1,8 +1,8 @@
 package net.minecraft.client.render.camera;
 
+import net.minecraft.core.block.BlockFluid;
 import net.minecraft.core.util.phys.HitResult;
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.FluidBlock;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.util.helper.MathHelper;
 import net.minecraft.core.util.phys.Vec3;
@@ -27,7 +27,7 @@ public abstract class CameraUtil
         int id = world.getBlockId(x, y, z);
         if(id != 0 && Block.blocksList[id].blockMaterial == material)
         {
-            float f = FluidBlock.getWaterVolume(world.getBlockMetadata(x, y, z)) - 0.2F;
+            float f = BlockFluid.getWaterVolume(world.getBlockMetadata(x, y, z)) - 0.2F;
             float f1 = (float)(y + 1) - f;
             return cameraY < (double)f1;
         }
diff --git a/src/main/java/net/minecraft/client/render/camera/EntityCameraIsometric.java b/src/main/java/net/minecraft/client/render/camera/EntityCameraIsometric.java
index 6eba0fcae..b20bea47d 100644
--- a/src/main/java/net/minecraft/client/render/camera/EntityCameraIsometric.java
+++ b/src/main/java/net/minecraft/client/render/camera/EntityCameraIsometric.java
@@ -1,7 +1,7 @@
 package net.minecraft.client.render.camera;
 
 import net.minecraft.client.Minecraft;
-import net.minecraft.client.gui.PhotoModeScreen;
+import net.minecraft.client.gui.ScreenPhotoMode;
 import net.minecraft.core.entity.Mob;
 
 public class EntityCameraIsometric
@@ -13,9 +13,9 @@ public class EntityCameraIsometric
 
     @Override
     public boolean showPlayer() {
-        if (mc.currentScreen instanceof PhotoModeScreen)
+        if (mc.currentScreen instanceof ScreenPhotoMode)
         {
-            return ((PhotoModeScreen)mc.currentScreen).showPlayer;
+            return ((ScreenPhotoMode)mc.currentScreen).showPlayer;
         }
 
         return true;
diff --git a/src/main/java/net/minecraft/client/render/entity/CowRenderer.java b/src/main/java/net/minecraft/client/render/entity/CowRenderer.java
deleted file mode 100644
index 1d8075b3a..000000000
--- a/src/main/java/net/minecraft/client/render/entity/CowRenderer.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package net.minecraft.client.render.entity;
-
-import net.minecraft.client.render.model.BaseModel;
-import net.minecraft.core.entity.animal.CowMob;
-
-public class CowRenderer extends MobRenderer<CowMob>
-{
-    public CowRenderer(BaseModel modelbase, float f)
-    {
-        super(modelbase, f);
-    }
-
-}
diff --git a/src/main/java/net/minecraft/client/render/entity/ArrowRenderer.java b/src/main/java/net/minecraft/client/render/entity/EntityRendererArrow.java
similarity index 93%
rename from src/main/java/net/minecraft/client/render/entity/ArrowRenderer.java
rename to src/main/java/net/minecraft/client/render/entity/EntityRendererArrow.java
index b85f5fa39..0996f594e 100644
--- a/src/main/java/net/minecraft/client/render/entity/ArrowRenderer.java
+++ b/src/main/java/net/minecraft/client/render/entity/EntityRendererArrow.java
@@ -1,15 +1,15 @@
 package net.minecraft.client.render.entity;
 
 import net.minecraft.client.render.tessellator.Tessellator;
-import net.minecraft.core.entity.projectile.ArrowProjectile;
+import net.minecraft.core.entity.projectile.ProjectileArrow;
 import net.minecraft.core.util.helper.MathHelper;
 import org.lwjgl.opengl.GL11;
 import org.lwjgl.opengl.GL12;
 
-public class ArrowRenderer extends EntityRenderer<ArrowProjectile>
+public class EntityRendererArrow extends EntityRenderer<ProjectileArrow>
 {
     @Override
-    public void render(Tessellator tessellator, ArrowProjectile arrow, double x, double y, double z,
+    public void render(Tessellator tessellator, ProjectileArrow arrow, double x, double y, double z,
                        float yaw, float partialTick) {
         bindTexture("/assets/minecraft/textures/entity/arrows.png");
         GL11.glPushMatrix();
diff --git a/src/main/java/net/minecraft/client/render/entity/BoatRenderer.java b/src/main/java/net/minecraft/client/render/entity/EntityRendererBoat.java
similarity index 83%
rename from src/main/java/net/minecraft/client/render/entity/BoatRenderer.java
rename to src/main/java/net/minecraft/client/render/entity/EntityRendererBoat.java
index ec4bf0bfd..cf80aed37 100644
--- a/src/main/java/net/minecraft/client/render/entity/BoatRenderer.java
+++ b/src/main/java/net/minecraft/client/render/entity/EntityRendererBoat.java
@@ -2,11 +2,11 @@ package net.minecraft.client.render.entity;
 
 import net.minecraft.client.Minecraft;
 import net.minecraft.client.render.BlockEntityRenderDispatcher;
-import net.minecraft.client.render.model.BaseModel;
-import net.minecraft.client.render.model.BoatModel;
+import net.minecraft.client.render.model.ModelBase;
+import net.minecraft.client.render.model.ModelBoat;
 import net.minecraft.client.render.texture.stitcher.TextureRegistry;
 import net.minecraft.client.render.tessellator.Tessellator;
-import net.minecraft.client.render.blockentity.FlagBlockEntityRenderer;
+import net.minecraft.client.render.blockentity.TileEntityRendererFlag;
 import net.minecraft.core.entity.vehicle.BoatEntity;
 import net.minecraft.core.util.helper.MathHelper;
 import net.minecraft.core.world.World;
@@ -14,18 +14,18 @@ import net.minecraft.core.world.wind.WindProvider;
 import org.lwjgl.opengl.GL11;
 
 // Referenced classes of package net.minecraft.src:
-//            Render, BoatModel, BoatEntity, MathHelper,
-//            BaseModel, Entity
+//            Render, ModelBoat, BoatEntity, MathHelper,
+//            ModelBase, Entity
 
-public class BoatRenderer extends EntityRenderer<BoatEntity>
+public class EntityRendererBoat extends EntityRenderer<BoatEntity>
 {
 	
 	private final Minecraft mc = Minecraft.getMinecraft(this);
 
-    public BoatRenderer()
+    public EntityRendererBoat()
     {
         shadowSize = 0.5F;
-        modelBoat = new BoatModel();
+        modelBoat = new ModelBoat();
         flagRenderer.setRenderDispatcher(BlockEntityRenderDispatcher.instance);
     }
 
@@ -71,6 +71,6 @@ public class BoatRenderer extends EntityRenderer<BoatEntity>
         GL11.glPopMatrix();
     }
 
-    protected BaseModel modelBoat;
-    private FlagBlockEntityRenderer flagRenderer = new FlagBlockEntityRenderer();
+    protected ModelBase modelBoat;
+    private TileEntityRendererFlag flagRenderer = new TileEntityRendererFlag();
 }
diff --git a/src/main/java/net/minecraft/client/render/entity/CannonballRenderer.java b/src/main/java/net/minecraft/client/render/entity/EntityRendererCannonball.java
similarity index 60%
rename from src/main/java/net/minecraft/client/render/entity/CannonballRenderer.java
rename to src/main/java/net/minecraft/client/render/entity/EntityRendererCannonball.java
index 1e54c9272..af0cdb3cd 100644
--- a/src/main/java/net/minecraft/client/render/entity/CannonballRenderer.java
+++ b/src/main/java/net/minecraft/client/render/entity/EntityRendererCannonball.java
@@ -1,24 +1,24 @@
 package net.minecraft.client.render.entity;
 
-import net.minecraft.client.render.model.BaseModel;
-import net.minecraft.client.render.model.CannonballModel;
+import net.minecraft.client.render.model.ModelBase;
+import net.minecraft.client.render.model.ModelCannonball;
 import net.minecraft.client.render.tessellator.Tessellator;
-import net.minecraft.core.entity.projectile.CannonballProjectile;
+import net.minecraft.core.entity.projectile.ProjectileCannonball;
 import org.lwjgl.opengl.GL11;
 
 // Referenced classes of package net.minecraft.src:
 //            Render, Tessellator, MathHelper,
 //            Entity
 
-public class CannonballRenderer extends EntityRenderer<CannonballProjectile>
+public class EntityRendererCannonball extends EntityRenderer<ProjectileCannonball>
 {
 
-    public CannonballRenderer()
+    public EntityRendererCannonball()
     {
-        modelCannonball = new CannonballModel();
+        modelCannonball = new ModelCannonball();
     }
 
-    public void RenderCannonball(CannonballProjectile entity, double d, double d1, double d2,
+    public void RenderCannonball(ProjectileCannonball entity, double d, double d1, double d2,
                                  float f)
     {
         GL11.glPushMatrix();
@@ -31,11 +31,11 @@ public class CannonballRenderer extends EntityRenderer<CannonballProjectile>
     }
 
     @Override
-    public void render(Tessellator tessellator, CannonballProjectile entity, double x, double y, double z,
+    public void render(Tessellator tessellator, ProjectileCannonball entity, double x, double y, double z,
                        float yaw, float partialTick)
     {
         RenderCannonball(entity, x, y, z, yaw);
     }
 
-    protected BaseModel modelCannonball;
+    protected ModelBase modelCannonball;
 }
\ No newline at end of file
diff --git a/src/main/java/net/minecraft/client/render/entity/DefaultRenderer.java b/src/main/java/net/minecraft/client/render/entity/EntityRendererDefault.java
similarity index 89%
rename from src/main/java/net/minecraft/client/render/entity/DefaultRenderer.java
rename to src/main/java/net/minecraft/client/render/entity/EntityRendererDefault.java
index 0c1c7ef60..3e8a87123 100644
--- a/src/main/java/net/minecraft/client/render/entity/DefaultRenderer.java
+++ b/src/main/java/net/minecraft/client/render/entity/EntityRendererDefault.java
@@ -7,7 +7,7 @@ import org.lwjgl.opengl.GL11;
 // Referenced classes of package net.minecraft.src:
 //            Render, Entity
 
-public class DefaultRenderer extends EntityRenderer<Entity>
+public class EntityRendererDefault extends EntityRenderer<Entity>
 {
     @Override
     public void render(Tessellator tessellator, Entity entity, double x, double y, double z,
diff --git a/src/main/java/net/minecraft/client/render/entity/FallingBlockRenderer.java b/src/main/java/net/minecraft/client/render/entity/EntityRendererFallingBlock.java
similarity index 81%
rename from src/main/java/net/minecraft/client/render/entity/FallingBlockRenderer.java
rename to src/main/java/net/minecraft/client/render/entity/EntityRendererFallingBlock.java
index d0c5fc0f5..65f561ae9 100644
--- a/src/main/java/net/minecraft/client/render/entity/FallingBlockRenderer.java
+++ b/src/main/java/net/minecraft/client/render/entity/EntityRendererFallingBlock.java
@@ -6,36 +6,35 @@ import net.minecraft.client.render.Lighting;
 import net.minecraft.client.render.RenderBlocks;
 import net.minecraft.client.render.block.model.BlockModel;
 import net.minecraft.client.render.block.model.BlockModelDispatcher;
-import net.minecraft.client.render.blockentity.BlockEntityRenderer;
+import net.minecraft.client.render.blockentity.TileEntityRenderer;
 import net.minecraft.client.render.texture.stitcher.TextureRegistry;
 import net.minecraft.client.render.tessellator.Tessellator;
-import net.minecraft.core.block.entity.BlockEntity;
-import net.minecraft.core.entity.FallingBlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
+import net.minecraft.core.entity.EntityFallingBlock;
 import net.minecraft.core.world.BlocksContainer;
-import net.minecraft.core.world.World;
 import net.minecraft.core.block.Block;
 import net.minecraft.core.util.helper.MathHelper;
 import org.lwjgl.opengl.GL11;
 
 // Referenced classes of package net.minecraft.src:
-//            Render, RenderBlocks, Block, FallingBlockEntity,
+//            Render, RenderBlocks, Block, EntityFallingBlock,
 //            MathHelper, Entity
 
-public class FallingBlockRenderer extends EntityRenderer<FallingBlockEntity>
+public class EntityRendererFallingBlock extends EntityRenderer<EntityFallingBlock>
 {
     private final Minecraft mc;
     private BlocksContainer container = null;
     private RenderBlocks containerRenderBlock = null;
 
 
-    public FallingBlockRenderer()
+    public EntityRendererFallingBlock()
     {
         mc = Minecraft.getMinecraft(this);
         shadowSize = 0.5F;
     }
 
     @Override
-    public void render(Tessellator tessellator, FallingBlockEntity fallingBlock, double x, double y, double z, float yaw, float partialTick) {
+    public void render(Tessellator tessellator, EntityFallingBlock fallingBlock, double x, double y, double z, float yaw, float partialTick) {
         if (container == null || container.world != fallingBlock.world) {
             container = new BlocksContainer(fallingBlock.world);
             containerRenderBlock = new RenderBlocks(container);
@@ -75,7 +74,7 @@ public class FallingBlockRenderer extends EntityRenderer<FallingBlockEntity>
         Lighting.enableLight();
         GL11.glPopMatrix();
 
-        BlockEntityRenderer<BlockEntity> renderer = BlockEntityRenderDispatcher.instance.getRenderer(fallingBlock.carriedBlock.entity);
+        TileEntityRenderer<TileEntity> renderer = BlockEntityRenderDispatcher.instance.getRenderer(fallingBlock.carriedBlock.entity);
         if (renderer != null) {
             GL11.glPushMatrix();
             renderer.doRender(tessellator, fallingBlock.carriedBlock.entity, x - 0.5, y - 0.5, z - 0.5, partialTick);
diff --git a/src/main/java/net/minecraft/client/render/entity/FireballRenderer.java b/src/main/java/net/minecraft/client/render/entity/EntityRendererFireball.java
similarity index 82%
rename from src/main/java/net/minecraft/client/render/entity/FireballRenderer.java
rename to src/main/java/net/minecraft/client/render/entity/EntityRendererFireball.java
index 4161af8a7..1a5017b8e 100644
--- a/src/main/java/net/minecraft/client/render/entity/FireballRenderer.java
+++ b/src/main/java/net/minecraft/client/render/entity/EntityRendererFireball.java
@@ -3,20 +3,23 @@ package net.minecraft.client.render.entity;
 import net.minecraft.client.render.item.model.ItemModelDispatcher;
 import net.minecraft.client.render.texture.stitcher.IconCoordinate;
 import net.minecraft.client.render.tessellator.Tessellator;
-import net.minecraft.core.entity.projectile.FireballProjectile;
+import net.minecraft.core.entity.projectile.ProjectileFireball;
 
 import net.minecraft.core.item.Items;
 import org.lwjgl.opengl.GL11;
 import org.lwjgl.opengl.GL12;
 
+/**
+ * @deprecated replaced by use of the more generic {@link EntityRendererSprite}
+ */
+@Deprecated
+public class EntityRendererFireball extends EntityRenderer<ProjectileFireball> {
 
-public class FireballRenderer extends EntityRenderer<FireballProjectile> {
-
-    public FireballRenderer()
+    public EntityRendererFireball()
     {
     }
 
-    public void renderFireball(FireballProjectile entity, double d, double d1, double d2,
+    public void renderFireball(ProjectileFireball entity, double d, double d1, double d2,
                                float f, float f1)
     {
 
@@ -52,7 +55,7 @@ public class FireballRenderer extends EntityRenderer<FireballProjectile> {
     }
 
     @Override
-    public void render(Tessellator tessellator, FireballProjectile entity, double x, double y, double z,
+    public void render(Tessellator tessellator, ProjectileFireball entity, double x, double y, double z,
                        float yaw, float partialTick)
     {
         renderFireball(entity, x, y, z, yaw, partialTick);
diff --git a/src/main/java/net/minecraft/client/render/entity/FishingBobberRenderer.java b/src/main/java/net/minecraft/client/render/entity/EntityRendererFishingBobber.java
similarity index 90%
rename from src/main/java/net/minecraft/client/render/entity/FishingBobberRenderer.java
rename to src/main/java/net/minecraft/client/render/entity/EntityRendererFishingBobber.java
index 08b23d203..7b4692e63 100644
--- a/src/main/java/net/minecraft/client/render/entity/FishingBobberRenderer.java
+++ b/src/main/java/net/minecraft/client/render/entity/EntityRendererFishingBobber.java
@@ -2,19 +2,19 @@ package net.minecraft.client.render.entity;
 
 import net.minecraft.client.render.texture.stitcher.TextureRegistry;
 import net.minecraft.client.render.tessellator.Tessellator;
-import net.minecraft.core.entity.FishingBobberEntity;
+import net.minecraft.core.entity.EntityFishingBobber;
 import net.minecraft.core.util.helper.MathHelper;
 import net.minecraft.core.util.phys.Vec3;
 import org.lwjgl.opengl.GL11;
-public class FishingBobberRenderer extends SpriteRenderer<FishingBobberEntity>
+public class EntityRendererFishingBobber extends EntityRendererSprite<EntityFishingBobber>
 {
 
-    public FishingBobberRenderer() {
+    public EntityRendererFishingBobber() {
         super(TextureRegistry.getTexture("minecraft:particle/bobber"));
     }
 
     @Override
-    public void render(Tessellator tessellator, FishingBobberEntity entity, double x, double y, double z, float yaw, float partialTick) {
+    public void render(Tessellator tessellator, EntityFishingBobber entity, double x, double y, double z, float yaw, float partialTick) {
         super.render(tessellator, entity, x, y, z, yaw, partialTick);
         if(entity.owner != null)
         {
diff --git a/src/main/java/net/minecraft/client/render/entity/ItemEntityRenderer.java b/src/main/java/net/minecraft/client/render/entity/EntityRendererItem.java
similarity index 86%
rename from src/main/java/net/minecraft/client/render/entity/ItemEntityRenderer.java
rename to src/main/java/net/minecraft/client/render/entity/EntityRendererItem.java
index 9dc7e64e9..91c1f506b 100644
--- a/src/main/java/net/minecraft/client/render/entity/ItemEntityRenderer.java
+++ b/src/main/java/net/minecraft/client/render/entity/EntityRendererItem.java
@@ -3,8 +3,8 @@ package net.minecraft.client.render.entity;
 import java.util.Random;
 
 import net.minecraft.client.render.block.color.BlockColorDispatcher;
-import net.minecraft.core.entity.ItemEntity;
-import net.minecraft.core.item.block.BlockItem;
+import net.minecraft.core.entity.EntityItem;
+import net.minecraft.core.item.block.ItemBlock;
 import org.lwjgl.opengl.GL11;
 
 import net.minecraft.core.block.Block;
@@ -21,17 +21,17 @@ import org.lwjgl.opengl.GL12;
 import static org.lwjgl.opengl.GL11.glPushMatrix;
 
 // Referenced classes of package net.minecraft.src:
-//            Render, RenderBlocks, ItemEntity, MathHelper,
+//            Render, RenderBlocks, EntityItem, MathHelper,
 //            ItemStack, Block, Tessellator, Item,
 //            RenderManager, RenderEngine, FontRenderer, Entity
 
-public class ItemEntityRenderer extends EntityRenderer<ItemEntity>
+public class EntityRendererItem extends EntityRenderer<EntityItem>
 {
 	public final RenderBlocks renderBlocks;
 	private final Random random;
 	public boolean useColor;
 
-	public ItemEntityRenderer() {
+	public EntityRendererItem() {
 		renderBlocks = new RenderBlocks();
 		random = new Random();
 		useColor = true;
@@ -40,14 +40,14 @@ public class ItemEntityRenderer extends EntityRenderer<ItemEntity>
 	}
 
 	public int getItemColorFromMetadata(Item item, int metadata) {
-		if (item instanceof BlockItem) {
-			Block block = ((BlockItem)item).getBlock();
+		if (item instanceof ItemBlock) {
+			Block block = ((ItemBlock)item).getBlock();
 			return BlockColorDispatcher.getInstance().getDispatch(block).getFallbackColor(metadata);
 		}
 		return 0xFFFFFF;
 	}
 
-	public void render(Tessellator tessellator, final ItemEntity entity, final double x, final double y, final double z, final float yaw, final float partialTick) {
+	public void render(Tessellator tessellator, final EntityItem entity, final double x, final double y, final double z, final float yaw, final float partialTick) {
 		float brightness = 1.0f;
 		if(!LightmapHelper.isLightmapEnabled()) {
 			brightness = entity.getBrightness(partialTick);
diff --git a/src/main/java/net/minecraft/client/render/entity/LightningBoltRenderer.java b/src/main/java/net/minecraft/client/render/entity/EntityRendererLightningBolt.java
similarity index 92%
rename from src/main/java/net/minecraft/client/render/entity/LightningBoltRenderer.java
rename to src/main/java/net/minecraft/client/render/entity/EntityRendererLightningBolt.java
index c5e7a88dc..f23410764 100644
--- a/src/main/java/net/minecraft/client/render/entity/LightningBoltRenderer.java
+++ b/src/main/java/net/minecraft/client/render/entity/EntityRendererLightningBolt.java
@@ -3,21 +3,21 @@ package net.minecraft.client.render.entity;
 import java.util.Random;
 
 import net.minecraft.client.render.tessellator.Tessellator;
-import net.minecraft.core.entity.LightningEntity;
+import net.minecraft.core.entity.EntityLightning;
 import org.lwjgl.opengl.GL11;
 
 // Referenced classes of package net.minecraft.src:
-//            Render, Tessellator, LightningEntity, Entity
+//            Render, Tessellator, EntityLightning, Entity
 
-public class LightningBoltRenderer extends EntityRenderer<LightningEntity>
+public class EntityRendererLightningBolt extends EntityRenderer<EntityLightning>
 {
 
-    public LightningBoltRenderer()
+    public EntityRendererLightningBolt()
     {
     }
 
     @Override
-    public void render(Tessellator tessellator, LightningEntity lightning, double x, double y, double z,
+    public void render(Tessellator tessellator, EntityLightning lightning, double x, double y, double z,
                        float yaw, float partialTick)
     {
         GL11.glDisable(GL11.GL_TEXTURE_2D);
diff --git a/src/main/java/net/minecraft/client/render/entity/MinecartRenderer.java b/src/main/java/net/minecraft/client/render/entity/EntityRendererMinecart.java
similarity index 95%
rename from src/main/java/net/minecraft/client/render/entity/MinecartRenderer.java
rename to src/main/java/net/minecraft/client/render/entity/EntityRendererMinecart.java
index 9f035a6ca..ad83e5d58 100644
--- a/src/main/java/net/minecraft/client/render/entity/MinecartRenderer.java
+++ b/src/main/java/net/minecraft/client/render/entity/EntityRendererMinecart.java
@@ -2,8 +2,8 @@ package net.minecraft.client.render.entity;
 
 import net.minecraft.client.render.LightmapHelper;
 import net.minecraft.client.render.block.model.BlockModelDispatcher;
-import net.minecraft.client.render.model.BaseModel;
-import net.minecraft.client.render.model.MinecartModel;
+import net.minecraft.client.render.model.ModelBase;
+import net.minecraft.client.render.model.ModelMinecart;
 import net.minecraft.client.render.texture.stitcher.TextureRegistry;
 import net.minecraft.client.render.tessellator.Tessellator;
 import net.minecraft.core.block.Block;
@@ -14,10 +14,10 @@ import net.minecraft.core.util.helper.MathHelper;
 import net.minecraft.core.util.phys.Vec3;
 import org.lwjgl.opengl.GL11;
 
-public class MinecartRenderer extends EntityRenderer<MinecartEntity> {
-    public MinecartRenderer() {
+public class EntityRendererMinecart extends EntityRenderer<MinecartEntity> {
+    public EntityRendererMinecart() {
         shadowSize = 0.5F;
-        modelMinecart = new MinecartModel();
+        modelMinecart = new ModelMinecart();
     }
 
     @Override
@@ -140,5 +140,5 @@ public class MinecartRenderer extends EntityRenderer<MinecartEntity> {
         GL11.glEnable(GL11.GL_TEXTURE_2D);
         GL11.glEnable(GL11.GL_LIGHTING);
     }
-    protected BaseModel modelMinecart;
+    protected ModelBase modelMinecart;
 }
diff --git a/src/main/java/net/minecraft/client/render/entity/PaintingRenderer.java b/src/main/java/net/minecraft/client/render/entity/EntityRendererPainting.java
similarity index 95%
rename from src/main/java/net/minecraft/client/render/entity/PaintingRenderer.java
rename to src/main/java/net/minecraft/client/render/entity/EntityRendererPainting.java
index c71b15909..cc2f8da3b 100644
--- a/src/main/java/net/minecraft/client/render/entity/PaintingRenderer.java
+++ b/src/main/java/net/minecraft/client/render/entity/EntityRendererPainting.java
@@ -5,7 +5,7 @@ import net.minecraft.client.render.texture.stitcher.IconCoordinate;
 import net.minecraft.client.render.texture.stitcher.TextureRegistry;
 import net.minecraft.client.render.tessellator.Tessellator;
 import net.minecraft.core.Global;
-import net.minecraft.core.entity.PaintingEntity;
+import net.minecraft.core.entity.EntityPainting;
 import net.minecraft.core.enums.ArtType;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.util.collection.NamespaceID;
@@ -15,15 +15,15 @@ import org.lwjgl.opengl.GL12;
 
 import java.util.Random;
 
-public class PaintingRenderer extends EntityRenderer<PaintingEntity>
+public class EntityRendererPainting extends EntityRenderer<EntityPainting>
 {
     private static final IconCoordinate paintingBack = TextureRegistry.getTexture("minecraft:art/backing");
-    public PaintingRenderer()
+    public EntityRendererPainting()
     {
         rand = new Random();
     }
 
-    private void renderArt(Tessellator tessellator, PaintingEntity entity, int sizeX, int sizeY, IconCoordinate iconCoordinate) {
+    private void renderArt(Tessellator tessellator, EntityPainting entity, int sizeX, int sizeY, IconCoordinate iconCoordinate) {
         iconCoordinate.parentAtlas.bind();
         float negCenterX = (float)(-sizeX) / 2.0F;
         float negCenterY = (float)(-sizeY) / 2.0F;
@@ -104,7 +104,7 @@ public class PaintingRenderer extends EntityRenderer<PaintingEntity>
 
     }
 
-    private void setupPaintingBrightness(PaintingEntity entity, float centerX, float centerY)
+    private void setupPaintingBrightness(EntityPainting entity, float centerX, float centerY)
     {
         int worldX = MathHelper.floor(entity.x);
         int worldY = MathHelper.floor(entity.y + (double)(centerY / 16F));
@@ -134,7 +134,7 @@ public class PaintingRenderer extends EntityRenderer<PaintingEntity>
     }
 
     @Override
-    public void render(Tessellator tessellator, PaintingEntity entity, double x, double y, double z, float yaw, float partialTick) {
+    public void render(Tessellator tessellator, EntityPainting entity, double x, double y, double z, float yaw, float partialTick) {
         rand.setSeed(187L);
         GL11.glPushMatrix();
         GL11.glTranslatef((float)x, (float)y, (float)z);
@@ -149,7 +149,7 @@ public class PaintingRenderer extends EntityRenderer<PaintingEntity>
             GL11.glEnable(GL11.GL_BLEND);
             GL11.glBlendFunc(770, 771);
             GL11.glColor4f(1f, 1f, 1f, 1f);
-            NamespaceID id = PaintingEntity.getBorder(borderStack);
+            NamespaceID id = EntityPainting.getBorder(borderStack);
             bindTexture(String.format("/assets/%s/textures/art/borders/%s.png", id.namespace, id.value));
             renderBorder(entity, entity.art.sizeX, entity.art.sizeY);
             GL11.glDisable(GL11.GL_BLEND);
@@ -157,7 +157,7 @@ public class PaintingRenderer extends EntityRenderer<PaintingEntity>
         GL11.glDisable(GL12.GL_RESCALE_NORMAL);
         GL11.glPopMatrix();
     }
-    private void renderBorder(PaintingEntity entity, int sizeX, int sizeY) {
+    private void renderBorder(EntityPainting entity, int sizeX, int sizeY) {
         float negCenterX = (float)(-sizeX) / 2.0f;
         float negCenterY = (float)(-sizeY) / 2.0f;
         float minZ = -0.6f;
diff --git a/src/main/java/net/minecraft/client/render/entity/SpriteRenderer.java b/src/main/java/net/minecraft/client/render/entity/EntityRendererSprite.java
similarity index 90%
rename from src/main/java/net/minecraft/client/render/entity/SpriteRenderer.java
rename to src/main/java/net/minecraft/client/render/entity/EntityRendererSprite.java
index d97d28e2a..69bf63279 100644
--- a/src/main/java/net/minecraft/client/render/entity/SpriteRenderer.java
+++ b/src/main/java/net/minecraft/client/render/entity/EntityRendererSprite.java
@@ -12,25 +12,25 @@ import org.lwjgl.opengl.GL12;
 // Referenced classes of package net.minecraft.src:
 //            Render, Tessellator, RenderManager, Entity
 
-public class SpriteRenderer<T extends Entity> extends EntityRenderer<T>
+public class EntityRendererSprite<T extends Entity> extends EntityRenderer<T>
 {
     private IconCoordinate itemIconIndex;
     private float scale = 1;
     private boolean fullBright = false;
 
-    public SpriteRenderer(Item item){
+    public EntityRendererSprite(Item item){
         this(ItemModelDispatcher.getInstance().getDispatch(item).getIcon(null, item.getDefaultStack()));
     }
-    public SpriteRenderer(IconCoordinate i)
+    public EntityRendererSprite(IconCoordinate i)
     {
         itemIconIndex = i;
     }
 
-    public SpriteRenderer setFullBright(){
+    public EntityRendererSprite setFullBright(){
         fullBright = true;
         return this;
     }
-    public SpriteRenderer setScale(float scale){
+    public EntityRendererSprite setScale(float scale){
         this.scale = scale;
         return this;
     }
diff --git a/src/main/java/net/minecraft/client/render/entity/TNTRenderer.java b/src/main/java/net/minecraft/client/render/entity/EntityRendererTNT.java
similarity index 90%
rename from src/main/java/net/minecraft/client/render/entity/TNTRenderer.java
rename to src/main/java/net/minecraft/client/render/entity/EntityRendererTNT.java
index 8db933283..103ce9c37 100644
--- a/src/main/java/net/minecraft/client/render/entity/TNTRenderer.java
+++ b/src/main/java/net/minecraft/client/render/entity/EntityRendererTNT.java
@@ -5,7 +5,7 @@ import net.minecraft.client.render.block.model.BlockModel;
 import net.minecraft.client.render.block.model.BlockModelDispatcher;
 import net.minecraft.client.render.texture.stitcher.TextureRegistry;
 import net.minecraft.client.render.tessellator.Tessellator;
-import net.minecraft.core.entity.TNTPrimedEntity;
+import net.minecraft.core.entity.EntityPrimedTNT;
 import net.minecraft.core.Global;
 import net.minecraft.core.block.Block;
 import net.minecraft.core.block.Blocks;
@@ -15,16 +15,16 @@ import org.lwjgl.opengl.GL11;
 //            Render, RenderBlocks, EntityTNTPrimed, Block, 
 //            Entity
 
-public class TNTRenderer extends EntityRenderer<TNTPrimedEntity>
+public class EntityRendererTNT extends EntityRenderer<EntityPrimedTNT>
 {
 
-    public TNTRenderer()
+    public EntityRendererTNT()
     {
         blockRenderer = new RenderBlocks();
         shadowSize = 0.5F;
     }
 
-    public void renderTNT(TNTPrimedEntity tnt, double d, double d1, double d2,
+    public void renderTNT(EntityPrimedTNT tnt, double d, double d1, double d2,
                           float f, float f1)
     {
         Tessellator tessellator = Tessellator.instance;
@@ -69,7 +69,7 @@ public class TNTRenderer extends EntityRenderer<TNTPrimedEntity>
     }
 
     @Override
-    public void render(Tessellator tessellator, TNTPrimedEntity entity, double x, double y, double z,
+    public void render(Tessellator tessellator, EntityPrimedTNT entity, double x, double y, double z,
                        float yaw, float partialTick)
     {
         renderTNT(entity, x, y, z, yaw, partialTick);
diff --git a/src/main/java/net/minecraft/client/render/entity/GiantRenderer.java b/src/main/java/net/minecraft/client/render/entity/GiantRenderer.java
deleted file mode 100644
index ccc2841cc..000000000
--- a/src/main/java/net/minecraft/client/render/entity/GiantRenderer.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package net.minecraft.client.render.entity;
-
-import net.minecraft.client.render.model.BaseModel;
-import net.minecraft.core.entity.monster.GiantMob;
-import org.lwjgl.opengl.GL11;
-
-// Referenced classes of package net.minecraft.src:
-//            RenderLiving, EntityGiantZombie, BaseModel, Mob
-
-public class GiantRenderer extends MobRenderer<GiantMob>
-{
-
-    public GiantRenderer(BaseModel modelbase, float f, float f1)
-    {
-        super(modelbase, f * f1);
-        scale = f1;
-    }
-
-    protected void preRenderScale(GiantMob entity, float f)
-    {
-        GL11.glScalef(scale, scale, scale);
-    }
-
-    @Override
-    protected void setupScale(GiantMob entity, float partialTick)
-    {
-        preRenderScale(entity, partialTick);
-    }
-
-    private float scale;
-}
diff --git a/src/main/java/net/minecraft/client/render/entity/MobRenderer.java b/src/main/java/net/minecraft/client/render/entity/MobRenderer.java
index acfbdbb35..443723a94 100644
--- a/src/main/java/net/minecraft/client/render/entity/MobRenderer.java
+++ b/src/main/java/net/minecraft/client/render/entity/MobRenderer.java
@@ -4,7 +4,7 @@ import com.mojang.logging.LogUtils;
 import net.minecraft.client.Minecraft;
 import net.minecraft.client.render.Font;
 import net.minecraft.client.render.LightmapHelper;
-import net.minecraft.client.render.model.BaseModel;
+import net.minecraft.client.render.model.ModelBase;
 import net.minecraft.client.render.tessellator.Tessellator;
 import net.minecraft.core.Global;
 import net.minecraft.core.entity.Mob;
@@ -17,13 +17,13 @@ public class MobRenderer<T extends Mob> extends EntityRenderer<T>
 {
     private static final Logger LOGGER = LogUtils.getLogger();
     public static final int MAX_ARMOR_LAYERS = 4;
-    protected BaseModel mainModel;
-    protected BaseModel armorModel;
-    protected BaseModel overlayModel;
+    protected ModelBase mainModel;
+    protected ModelBase armorModel;
+    protected ModelBase overlayModel;
     protected String overlayTexture;
     private final Minecraft mc;
 
-    public MobRenderer(BaseModel model, float shadowSize)
+    public MobRenderer(ModelBase model, float shadowSize)
     {
         this.mainModel = model;
         this.shadowSize = shadowSize;
@@ -31,11 +31,11 @@ public class MobRenderer<T extends Mob> extends EntityRenderer<T>
     }
 
 
-    public void setArmorModel(BaseModel armor)
+    public void setArmorModel(ModelBase armor)
     {
         armorModel = armor;
     }
-    public void setOverlayModel(BaseModel modelbase, String texture)
+    public void setOverlayModel(ModelBase modelbase, String texture)
     {
         overlayModel = modelbase;
         overlayTexture = texture;
diff --git a/src/main/java/net/minecraft/client/render/entity/BipedRenderer.java b/src/main/java/net/minecraft/client/render/entity/MobRendererBiped.java
similarity index 76%
rename from src/main/java/net/minecraft/client/render/entity/BipedRenderer.java
rename to src/main/java/net/minecraft/client/render/entity/MobRendererBiped.java
index 6adaeb592..076f45583 100644
--- a/src/main/java/net/minecraft/client/render/entity/BipedRenderer.java
+++ b/src/main/java/net/minecraft/client/render/entity/MobRendererBiped.java
@@ -1,21 +1,21 @@
 package net.minecraft.client.render.entity;
 
 import net.minecraft.client.render.item.model.ItemModelDispatcher;
-import net.minecraft.client.render.model.BipedModel;
+import net.minecraft.client.render.model.ModelBiped;
 import net.minecraft.client.render.tessellator.Tessellator;
 import net.minecraft.core.entity.Mob;
 import net.minecraft.core.item.ItemStack;
 import org.lwjgl.opengl.GL11;
 
 // Referenced classes of package net.minecraft.src:
-//            RenderLiving, Mob, BipedModel, ModelRenderer,
+//            RenderLiving, Mob, ModelBiped, ModelRenderer,
 //            ItemStack, Block, RenderBlocks, Item, 
 //            RenderManager, ItemRenderer
 
-public class BipedRenderer<T extends Mob> extends MobRenderer<T>
+public class MobRendererBiped<T extends Mob> extends MobRenderer<T>
 {
 
-    public BipedRenderer(BipedModel model, float shadowSize)
+    public MobRendererBiped(ModelBiped model, float shadowSize)
     {
         super(model, shadowSize);
         modelBipedMain = model;
@@ -32,5 +32,5 @@ public class BipedRenderer<T extends Mob> extends MobRenderer<T>
 		}
 	}
 
-    protected BipedModel modelBipedMain;
+    protected ModelBiped modelBipedMain;
 }
diff --git a/src/main/java/net/minecraft/client/render/entity/ChickenRenderer.java b/src/main/java/net/minecraft/client/render/entity/MobRendererChicken.java
similarity index 57%
rename from src/main/java/net/minecraft/client/render/entity/ChickenRenderer.java
rename to src/main/java/net/minecraft/client/render/entity/MobRendererChicken.java
index f55022f8a..4134c307c 100644
--- a/src/main/java/net/minecraft/client/render/entity/ChickenRenderer.java
+++ b/src/main/java/net/minecraft/client/render/entity/MobRendererChicken.java
@@ -2,20 +2,20 @@ package net.minecraft.client.render.entity;
 
 
 // Referenced classes of package net.minecraft.src:
-//            RenderLiving, ChickenMob, MathHelper, BaseModel,
+//            RenderLiving, MobChicken, MathHelper, ModelBase,
 //            Mob, Entity
 
-import net.minecraft.client.render.model.BaseModel;
-import net.minecraft.core.entity.animal.ChickenMob;
+import net.minecraft.client.render.model.ModelBase;
+import net.minecraft.core.entity.animal.MobChicken;
 import net.minecraft.core.util.helper.MathHelper;
 
-public class ChickenRenderer extends MobRenderer<ChickenMob> {
-    public ChickenRenderer(BaseModel modelbase, float f)
+public class MobRendererChicken extends MobRenderer<MobChicken> {
+    public MobRendererChicken(ModelBase modelbase, float f)
     {
         super(modelbase, f);
     }
     @Override
-    protected float limbSway(ChickenMob entity, float partialTick) {
+    protected float limbSway(MobChicken entity, float partialTick) {
         float flap = entity.oFlap + (entity.flap - entity.oFlap) * partialTick;
         float flapSpeed = entity.oFlapSpeed + (entity.flapSpeed - entity.oFlapSpeed) * partialTick;
         return (MathHelper.sin(flap) + 1.0F) * flapSpeed;
diff --git a/src/main/java/net/minecraft/client/render/entity/MobRendererCow.java b/src/main/java/net/minecraft/client/render/entity/MobRendererCow.java
new file mode 100644
index 000000000..fd2e3baf8
--- /dev/null
+++ b/src/main/java/net/minecraft/client/render/entity/MobRendererCow.java
@@ -0,0 +1,13 @@
+package net.minecraft.client.render.entity;
+
+import net.minecraft.client.render.model.ModelBase;
+import net.minecraft.core.entity.animal.MobCow;
+
+public class MobRendererCow extends MobRenderer<MobCow>
+{
+    public MobRendererCow(ModelBase modelbase, float f)
+    {
+        super(modelbase, f);
+    }
+
+}
diff --git a/src/main/java/net/minecraft/client/render/entity/CreeperRenderer.java b/src/main/java/net/minecraft/client/render/entity/MobRendererCreeper.java
similarity index 77%
rename from src/main/java/net/minecraft/client/render/entity/CreeperRenderer.java
rename to src/main/java/net/minecraft/client/render/entity/MobRendererCreeper.java
index c13444668..8112ba028 100644
--- a/src/main/java/net/minecraft/client/render/entity/CreeperRenderer.java
+++ b/src/main/java/net/minecraft/client/render/entity/MobRendererCreeper.java
@@ -1,25 +1,25 @@
 package net.minecraft.client.render.entity;
 
-import net.minecraft.client.render.model.BaseModel;
-import net.minecraft.client.render.model.CreeperModel;
-import net.minecraft.core.entity.monster.CreeperMob;
+import net.minecraft.client.render.model.ModelBase;
+import net.minecraft.client.render.model.ModelCreeper;
+import net.minecraft.core.entity.monster.MobCreeper;
 import net.minecraft.core.util.helper.MathHelper;
 import org.lwjgl.opengl.GL11;
 
 // Referenced classes of package net.minecraft.src:
-//            RenderLiving, CreeperModel, CreeperMob, MathHelper,
-//            BaseModel, Mob
+//            RenderLiving, ModelCreeper, MobCreeper, MathHelper,
+//            ModelBase, Mob
 
-public class CreeperRenderer extends MobRenderer<CreeperMob>
+public class MobRendererCreeper extends MobRenderer<MobCreeper>
 {
-    public CreeperRenderer()
+    public MobRendererCreeper()
     {
-        super(new CreeperModel(), 0.5F);
-        chargedModel = new CreeperModel(2.0F);
+        super(new ModelCreeper(), 0.5F);
+        chargedModel = new ModelCreeper(2.0F);
     }
 
     @Override
-    protected void setupScale(CreeperMob creeper, float partialTick) {
+    protected void setupScale(MobCreeper creeper, float partialTick) {
         float g = creeper.getSwelling(partialTick);
         final float wobble = 1.0f + MathHelper.sin(g * 100.0f) * g * 0.01f;
         if (g < 0.0f) {
@@ -36,7 +36,7 @@ public class CreeperRenderer extends MobRenderer<CreeperMob>
     }
 
     @Override
-    protected int getOverlayColor(CreeperMob creeper, float brightness, float partialTick) {
+    protected int getOverlayColor(MobCreeper creeper, float brightness, float partialTick) {
         final float step = creeper.getSwelling(partialTick);
         if ((int)(step * 10.0f) % 2 == 0) {
             return 0;
@@ -55,7 +55,7 @@ public class CreeperRenderer extends MobRenderer<CreeperMob>
     }
 
     @Override
-    protected boolean prepareArmor(CreeperMob entity, int layer, float partialTick) {
+    protected boolean prepareArmor(MobCreeper entity, int layer, float partialTick) {
         if(entity.getPowered())
         {
             if(layer == 1)
@@ -89,5 +89,5 @@ public class CreeperRenderer extends MobRenderer<CreeperMob>
     }
 
 
-    private BaseModel chargedModel;
+    private ModelBase chargedModel;
 }
diff --git a/src/main/java/net/minecraft/client/render/entity/FireflyRenderer.java b/src/main/java/net/minecraft/client/render/entity/MobRendererFireflyCluster.java
similarity index 74%
rename from src/main/java/net/minecraft/client/render/entity/FireflyRenderer.java
rename to src/main/java/net/minecraft/client/render/entity/MobRendererFireflyCluster.java
index 36a52ed5e..5b07ba9fd 100644
--- a/src/main/java/net/minecraft/client/render/entity/FireflyRenderer.java
+++ b/src/main/java/net/minecraft/client/render/entity/MobRendererFireflyCluster.java
@@ -4,23 +4,23 @@ import net.minecraft.client.Minecraft;
 import net.minecraft.client.render.Lighting;
 import net.minecraft.client.render.texture.stitcher.TextureRegistry;
 import net.minecraft.client.render.tessellator.Tessellator;
-import net.minecraft.core.entity.animal.FireflyClusterMob;
-import net.minecraft.client.entity.particle.FireflyParticle;
+import net.minecraft.core.entity.animal.MobFireflyCluster;
+import net.minecraft.client.entity.particle.ParticleFirefly;
 import org.lwjgl.opengl.GL11;
 
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Random;
 
-public class FireflyRenderer extends EntityRenderer<FireflyClusterMob> {
-	private final List<FireflyParticle> fireflies = new ArrayList<>();
+public class MobRendererFireflyCluster extends EntityRenderer<MobFireflyCluster> {
+	private final List<ParticleFirefly> fireflies = new ArrayList<>();
 	private final Minecraft mc;
 	private final Random rand = new Random(0);
 	private long lastTick;
 
-	public FireflyRenderer() {
+	public MobRendererFireflyCluster() {
 		for (int i = 0; i < 20; i++) {
-			FireflyParticle fx = new FireflyParticle(null, rand.nextFloat() - 0.5f, rand.nextFloat() - 0.5f, 0, 0, 0, 0, 0);
+			ParticleFirefly fx = new ParticleFirefly(null, rand.nextFloat() - 0.5f, rand.nextFloat() - 0.5f, 0, 0, 0, 0, 0);
 			fx.noPhysics = true;
 			fx.setAge(rand.nextInt(20));
 			fireflies.add(fx);
@@ -30,12 +30,12 @@ public class FireflyRenderer extends EntityRenderer<FireflyClusterMob> {
 	}
 
 	@Override
-	public void render(Tessellator tessellator, FireflyClusterMob parent, double x, double y, double z, float yaw, float partialTick) {
+	public void render(Tessellator tessellator, MobFireflyCluster parent, double x, double y, double z, float yaw, float partialTick) {
 		// Fireflies are rendered as particles which are spawned in the entity class
 	}
 
 	@Override
-	public void renderPreview(Tessellator tessellator, FireflyClusterMob entity, double x, double y, double z, float yaw, float partialTick) {
+	public void renderPreview(Tessellator tessellator, MobFireflyCluster entity, double x, double y, double z, float yaw, float partialTick) {
 		super.renderPreview(tessellator, entity, x, y, z, yaw, partialTick);
 
 		long currentTick = System.currentTimeMillis();
@@ -48,7 +48,7 @@ public class FireflyRenderer extends EntityRenderer<FireflyClusterMob> {
 		Lighting.disable();
 		TextureRegistry.particleAtlas.bind();
 		for (int i = 0; i < fireflies.size(); i++) {
-			FireflyParticle firefly = fireflies.get(i);
+			ParticleFirefly firefly = fireflies.get(i);
 			Tessellator t = Tessellator.instance;
 			t.startDrawingQuads();
 			firefly.renderParticleInGui(t, partialTick);
@@ -68,7 +68,7 @@ public class FireflyRenderer extends EntityRenderer<FireflyClusterMob> {
 		if (fireflies.size() < 20) {
 			for (int i = fireflies.size(); i < 20; i++) {
 				if (rand.nextInt(4) == 0) continue;
-				FireflyParticle fx = new FireflyParticle(null, rand.nextFloat() - 0.5f, rand.nextFloat() - 0.5f, 0, 0, 0, 0, entity.getColor().getId());
+				ParticleFirefly fx = new ParticleFirefly(null, rand.nextFloat() - 0.5f, rand.nextFloat() - 0.5f, 0, 0, 0, 0, entity.getColor().getId());
 				fx.noPhysics = true;
 				fx.setAge(rand.nextInt(20));
 				fireflies.add(fx);
diff --git a/src/main/java/net/minecraft/client/render/entity/GhastRenderer.java b/src/main/java/net/minecraft/client/render/entity/MobRendererGhast.java
similarity index 51%
rename from src/main/java/net/minecraft/client/render/entity/GhastRenderer.java
rename to src/main/java/net/minecraft/client/render/entity/MobRendererGhast.java
index 0b90373dc..353906b40 100644
--- a/src/main/java/net/minecraft/client/render/entity/GhastRenderer.java
+++ b/src/main/java/net/minecraft/client/render/entity/MobRendererGhast.java
@@ -1,29 +1,29 @@
 package net.minecraft.client.render.entity;
 
-import net.minecraft.client.render.model.GhastModel;
+import net.minecraft.client.render.model.ModelGhast;
 import net.minecraft.client.render.tessellator.Tessellator;
-import net.minecraft.core.entity.monster.GhastMob;
+import net.minecraft.core.entity.monster.MobGhast;
 import org.lwjgl.opengl.GL11;
 
-public class GhastRenderer extends MobRenderer<GhastMob>
+public class MobRendererGhast extends MobRenderer<MobGhast>
 {
 
-    public GhastRenderer()
+    public MobRendererGhast()
     {
-        super(new GhastModel(), 0.5F);
+        super(new ModelGhast(), 0.5F);
     }
 
     @Override
-    public void renderPreview(Tessellator tessellator, GhastMob ghastMob, double x, double y, double z, float yaw, float partialTick) {
+    public void renderPreview(Tessellator tessellator, MobGhast mobGhast, double x, double y, double z, float yaw, float partialTick) {
         GL11.glPushMatrix();
         GL11.glScalef(0.25f, 0.25f, 0.25f);
-        super.renderPreview(tessellator, ghastMob, x, y, z, yaw, partialTick);
+        super.renderPreview(tessellator, mobGhast, x, y, z, yaw, partialTick);
         GL11.glPopMatrix();
     }
 
     @Override
-    protected void setupScale(GhastMob ghastMob, float partialTick) {
-        float charge = ((float) ghastMob.attackChargeO + (float)(ghastMob.attackCharge - ghastMob.attackChargeO) * partialTick) / 20F;
+    protected void setupScale(MobGhast mobGhast, float partialTick) {
+        float charge = ((float) mobGhast.attackChargeO + (float)(mobGhast.attackCharge - mobGhast.attackChargeO) * partialTick) / 20F;
         if(charge < 0.0F)
         {
             charge = 0.0F;
diff --git a/src/main/java/net/minecraft/client/render/entity/MobRendererGiant.java b/src/main/java/net/minecraft/client/render/entity/MobRendererGiant.java
new file mode 100644
index 000000000..97943c3f9
--- /dev/null
+++ b/src/main/java/net/minecraft/client/render/entity/MobRendererGiant.java
@@ -0,0 +1,31 @@
+package net.minecraft.client.render.entity;
+
+import net.minecraft.client.render.model.ModelBase;
+import net.minecraft.core.entity.monster.MobGiant;
+import org.lwjgl.opengl.GL11;
+
+// Referenced classes of package net.minecraft.src:
+//            RenderLiving, EntityGiantZombie, ModelBase, Mob
+
+public class MobRendererGiant extends MobRenderer<MobGiant>
+{
+
+    public MobRendererGiant(ModelBase modelbase, float f, float f1)
+    {
+        super(modelbase, f * f1);
+        scale = f1;
+    }
+
+    protected void preRenderScale(MobGiant entity, float f)
+    {
+        GL11.glScalef(scale, scale, scale);
+    }
+
+    @Override
+    protected void setupScale(MobGiant entity, float partialTick)
+    {
+        preRenderScale(entity, partialTick);
+    }
+
+    private float scale;
+}
diff --git a/src/main/java/net/minecraft/client/render/entity/HumanRenderer.java b/src/main/java/net/minecraft/client/render/entity/MobRendererHuman.java
similarity index 60%
rename from src/main/java/net/minecraft/client/render/entity/HumanRenderer.java
rename to src/main/java/net/minecraft/client/render/entity/MobRendererHuman.java
index 3649fb627..6a34d18e2 100644
--- a/src/main/java/net/minecraft/client/render/entity/HumanRenderer.java
+++ b/src/main/java/net/minecraft/client/render/entity/MobRendererHuman.java
@@ -1,26 +1,26 @@
 package net.minecraft.client.render.entity;
 
 import net.minecraft.client.render.PlayerSkinParser;
-import net.minecraft.client.render.model.BipedModel;
-import net.minecraft.client.render.model.PlayerModel;
-import net.minecraft.client.render.model.PlayerSlimModel;
+import net.minecraft.client.render.model.ModelBiped;
+import net.minecraft.client.render.model.ModelPlayer;
+import net.minecraft.client.render.model.ModelPlayerSlim;
 import net.minecraft.client.render.tessellator.Tessellator;
-import net.minecraft.core.entity.monster.HumanMob;
+import net.minecraft.core.entity.monster.MobHuman;
 import org.lwjgl.opengl.GL11;
 
-public class HumanRenderer extends MobRenderer<HumanMob>
+public class MobRendererHuman extends MobRenderer<MobHuman>
 {
-    public HumanRenderer()
+    public MobRendererHuman()
     {
-        super(new PlayerModel(0.0F), 0.5F);
-        modelBipedMain = (BipedModel)mainModel;
-//        modelArmorChestplate = new BipedModel(1.0F);
-//        modelArmor = new BipedModel(0.5F);
-        modelThick = new PlayerModel(0.0f);
-        modelSlim = new PlayerSlimModel(0.0f);
+        super(new ModelPlayer(0.0F), 0.5F);
+        modelBipedMain = (ModelBiped)mainModel;
+//        modelArmorChestplate = new ModelBiped(1.0F);
+//        modelArmor = new ModelBiped(0.5F);
+        modelThick = new ModelPlayer(0.0f);
+        modelSlim = new ModelPlayerSlim(0.0f);
     }
     @Override
-    public void render(Tessellator tessellator, HumanMob entity, double x, double y, double z, float yaw, float partialTick) {
+    public void render(Tessellator tessellator, MobHuman entity, double x, double y, double z, float yaw, float partialTick) {
         GL11.glEnable(GL11.GL_BLEND);
         GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
         mainModel = entity.slimModel ? modelSlim : modelThick;
@@ -40,20 +40,20 @@ public class HumanRenderer extends MobRenderer<HumanMob>
         GL11.glDisable(GL11.GL_BLEND);
     }
     @Override
-    protected void setupScale(HumanMob entity, float partialTick)
+    protected void setupScale(MobHuman entity, float partialTick)
     {
         float scale = 0.9375F;
         GL11.glScalef(scale, scale, scale);
     }
 
     @Override
-    public void loadEntityTexture(HumanMob entity)
+    public void loadEntityTexture(MobHuman entity)
     {
         bindDownloadableTexture(entity.skinUrl, entity.getEntityTexture(), PlayerSkinParser.instance);
     }
-    private final BipedModel modelBipedMain;
-    private final PlayerModel modelThick;
-    private final PlayerModel modelSlim;
-//    private final BipedModel modelArmorChestplate;
-//    private final BipedModel modelArmor;
+    private final ModelBiped modelBipedMain;
+    private final ModelPlayer modelThick;
+    private final ModelPlayer modelSlim;
+//    private final ModelBiped modelArmorChestplate;
+//    private final ModelBiped modelArmor;
 }
diff --git a/src/main/java/net/minecraft/client/render/entity/PigRenderer.java b/src/main/java/net/minecraft/client/render/entity/MobRendererPig.java
similarity index 51%
rename from src/main/java/net/minecraft/client/render/entity/PigRenderer.java
rename to src/main/java/net/minecraft/client/render/entity/MobRendererPig.java
index ed42e66d3..b4d2a48f9 100644
--- a/src/main/java/net/minecraft/client/render/entity/PigRenderer.java
+++ b/src/main/java/net/minecraft/client/render/entity/MobRendererPig.java
@@ -2,28 +2,28 @@ package net.minecraft.client.render.entity;
 
 
 // Referenced classes of package net.minecraft.src:
-//            RenderLiving, PigMob, BaseModel, Mob
+//            RenderLiving, MobPig, ModelBase, Mob
 
-import net.minecraft.client.render.model.BaseModel;
-import net.minecraft.core.entity.animal.PigMob;
+import net.minecraft.client.render.model.ModelBase;
+import net.minecraft.core.entity.animal.MobPig;
 
-public class PigRenderer extends MobRenderer<PigMob>
+public class MobRendererPig extends MobRenderer<MobPig>
 {
 
-    public PigRenderer(BaseModel modelbase, BaseModel modelbase1, float f)
+    public MobRendererPig(ModelBase modelbase, ModelBase modelbase1, float f)
     {
         super(modelbase, f);
         setArmorModel(modelbase1);
     }
 
-    protected boolean renderSaddledPig(PigMob entity, int i, float f)
+    protected boolean renderSaddledPig(MobPig entity, int i, float f)
     {
         bindTexture("/assets/minecraft/textures/entity/saddle.png");
         return i == 0 && entity != null && entity.getSaddled();
     }
 
     @Override
-    protected boolean prepareArmor(PigMob entity, int renderPass, float partialTick)
+    protected boolean prepareArmor(MobPig entity, int renderPass, float partialTick)
     {
         return renderSaddledPig(entity, renderPass, partialTick);
     }
diff --git a/src/main/java/net/minecraft/client/render/entity/PlayerRenderer.java b/src/main/java/net/minecraft/client/render/entity/MobRendererPlayer.java
similarity index 86%
rename from src/main/java/net/minecraft/client/render/entity/PlayerRenderer.java
rename to src/main/java/net/minecraft/client/render/entity/MobRendererPlayer.java
index aed78ad36..7ceb16e4e 100644
--- a/src/main/java/net/minecraft/client/render/entity/PlayerRenderer.java
+++ b/src/main/java/net/minecraft/client/render/entity/MobRendererPlayer.java
@@ -2,7 +2,7 @@ package net.minecraft.client.render.entity;
 
 import net.minecraft.client.Minecraft;
 
-import net.minecraft.client.entity.player.LocalPlayer;
+import net.minecraft.client.entity.player.PlayerLocal;
 import net.minecraft.client.render.BlockEntityRenderDispatcher;
 import net.minecraft.client.render.Font;
 import net.minecraft.client.render.Lighting;
@@ -10,15 +10,15 @@ import net.minecraft.client.render.PlayerSkinParser;
 import net.minecraft.client.render.RenderBlocks;
 import net.minecraft.client.render.block.model.BlockModel;
 import net.minecraft.client.render.block.model.BlockModelDispatcher;
-import net.minecraft.client.render.blockentity.BlockEntityRenderer;
+import net.minecraft.client.render.blockentity.TileEntityRenderer;
 import net.minecraft.client.render.camera.EntityCamera;
 import net.minecraft.client.render.item.model.ItemModelDispatcher;
-import net.minecraft.client.render.model.BipedModel;
-import net.minecraft.client.render.model.PlayerModel;
-import net.minecraft.client.render.model.PlayerSlimModel;
+import net.minecraft.client.render.model.ModelBiped;
+import net.minecraft.client.render.model.ModelPlayer;
+import net.minecraft.client.render.model.ModelPlayerSlim;
 import net.minecraft.client.render.tessellator.Tessellator;
 import net.minecraft.client.render.texture.stitcher.TextureRegistry;
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.block.motion.CarriedBlock;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.item.*;
@@ -28,25 +28,25 @@ import net.minecraft.core.util.helper.MathHelper;
 import net.minecraft.core.world.BlocksContainer;
 import org.lwjgl.opengl.GL11;
 
-public class PlayerRenderer extends MobRenderer<Player>
+public class MobRendererPlayer extends MobRenderer<Player>
 {
-    private BipedModel modelBipedMain;
-    private final PlayerModel modelThick;
-    private final PlayerModel modelSlim;
-    private final BipedModel modelArmorChestplate;
-    private final BipedModel modelArmor;
+    private ModelBiped modelBipedMain;
+    private final ModelPlayer modelThick;
+    private final ModelPlayer modelSlim;
+    private final ModelBiped modelArmorChestplate;
+    private final ModelBiped modelArmor;
 
     private BlocksContainer container = null;
     private RenderBlocks containerRenderBlock = null;
 
-    public PlayerRenderer()
+    public MobRendererPlayer()
     {
-        super(new PlayerModel(0.0F), 0.5F);
-        modelBipedMain = (BipedModel)mainModel;
-        modelArmorChestplate = new BipedModel(1.0F);
-        modelArmor = new BipedModel(0.5F);
-        modelThick = new PlayerModel(0.0f);
-        modelSlim = new PlayerSlimModel(0.0f);
+        super(new ModelPlayer(0.0F), 0.5F);
+        modelBipedMain = (ModelBiped)mainModel;
+        modelArmorChestplate = new ModelBiped(1.0F);
+        modelArmor = new ModelBiped(0.5F);
+        modelThick = new ModelPlayer(0.0f);
+        modelSlim = new ModelPlayerSlim(0.0f);
     }
     protected void renderSpecials(Player player, float partialTick)
     {
@@ -67,12 +67,14 @@ public class PlayerRenderer extends MobRenderer<Player>
                 GL11.glRotatef(180F, 0.0F, 1.0F, 0.0F);
                 GL11.glScalef(scale, -scale, scale);
                 ItemModelDispatcher.getInstance().getDispatch(itemstack).renderItem(Tessellator.instance, renderDispatcher.itemRenderer, player, itemstack);
-            } else {
+            } else if (!(itemstack.getItem() instanceof IArmorItem)) {
+                GL11.glEnable(GL11.GL_CULL_FACE);
                 float scale = 0.625F;
                 GL11.glTranslatef(0.0F, -0.8F, 0.0F);
                 GL11.glRotatef(180, 0.0F, 0.0F, 1.0F);
                 GL11.glScalef(scale, scale, scale);
                 ItemModelDispatcher.getInstance().getDispatch(itemstack).renderItemInWorld(Tessellator.instance, player, itemstack, player.getBrightness(partialTick), 1f, true);
+                GL11.glDisable(GL11.GL_CULL_FACE);
             }
             GL11.glPopMatrix();
         }
@@ -140,12 +142,12 @@ public class PlayerRenderer extends MobRenderer<Player>
         } else {
             modelBipedMain.armRight.render(0.0625F);
         }
-        if (modelBipedMain instanceof PlayerModel)
+        if (modelBipedMain instanceof ModelPlayer)
         {
             if (isLeft){
-                ((PlayerModel)modelBipedMain).bipedLeftArmOverlay.render(0.0625F);
+                ((ModelPlayer)modelBipedMain).bipedLeftArmOverlay.render(0.0625F);
             } else {
-                ((PlayerModel)modelBipedMain).bipedRightArmOverlay.render(0.0625F);
+                ((ModelPlayer)modelBipedMain).bipedRightArmOverlay.render(0.0625F);
             }
         }
     }
@@ -191,7 +193,7 @@ public class PlayerRenderer extends MobRenderer<Player>
             container.setLightReferenceEntity(null);
             container.clear();
 
-            BlockEntityRenderer<BlockEntity> renderer = BlockEntityRenderDispatcher.instance.getRenderer(carriedBlock.entity);
+            TileEntityRenderer<TileEntity> renderer = BlockEntityRenderDispatcher.instance.getRenderer(carriedBlock.entity);
             if (renderer != null) {
                 carriedBlock.entity.worldObj = player.world;
                 renderer.doRender(tessellator, carriedBlock.entity, -0.5, -0.5, -0.5, partialTick);
@@ -288,44 +290,44 @@ public class PlayerRenderer extends MobRenderer<Player>
         if(itemstack != null)
         {
             Item item = itemstack.getItem();
-            if(item instanceof QuiverItem)
+            if(item instanceof ItemQuiver)
             {
                 bindTexture("/assets/minecraft/textures/armor/quiver.png");
-                BipedModel bipedModel = modelArmorChestplate;
-                bipedModel.body.visible = layer == 1 || layer == 2;
-                setArmorModel(bipedModel);
+                ModelBiped modelBiped = modelArmorChestplate;
+                modelBiped.body.visible = layer == 1 || layer == 2;
+                setArmorModel(modelBiped);
                 return true;
             }
-            if(item instanceof EndlessQuiverItem)
+            if(item instanceof ItemQuiverEndless)
             {
                 bindTexture("/assets/minecraft/textures/armor/quiver_golden.png");
-                BipedModel bipedModel = modelArmorChestplate;
-                bipedModel.body.visible = layer == 1 || layer == 2;
-                setArmorModel(bipedModel);
+                ModelBiped modelBiped = modelArmorChestplate;
+                modelBiped.body.visible = layer == 1 || layer == 2;
+                setArmorModel(modelBiped);
                 return true;
             }
             if(item == Items.ARMOR_BOOTS_ICESKATES)
             {
                 bindTexture("/assets/minecraft/textures/armor/skates.png");
-                BipedModel bipedModel = modelArmorChestplate;
-                bipedModel.legRight.visible = layer == 2 || layer == 3;
-                bipedModel.legLeft.visible = layer == 2 || layer == 3;
-                setArmorModel(bipedModel);
+                ModelBiped modelBiped = modelArmorChestplate;
+                modelBiped.legRight.visible = layer == 2 || layer == 3;
+                modelBiped.legLeft.visible = layer == 2 || layer == 3;
+                setArmorModel(modelBiped);
                 return true;
             }
             if(item instanceof IArmorItem && ((IArmorItem) item).getArmorMaterial() != null)
             {
                 IArmorItem armorItem = (IArmorItem)item;
                 bindTexture(String.format("/assets/%s/textures/armor/%s_%d.png", armorItem.getArmorMaterial().identifier.namespace, armorItem.getArmorMaterial().identifier.value, (layer != 2 ? 1 : 2)));
-                BipedModel bipedModel = layer != 2 ? modelArmorChestplate : modelArmor;
-                bipedModel.head.visible = layer == 0;
-                bipedModel.hair.visible = layer == 0;
-                bipedModel.body.visible = layer == 1 || layer == 2;
-                bipedModel.armRight.visible = layer == 1;
-                bipedModel.armLeft.visible = layer == 1;
-                bipedModel.legRight.visible = layer == 2 || layer == 3;
-                bipedModel.legLeft.visible = layer == 2 || layer == 3;
-                setArmorModel(bipedModel);
+                ModelBiped modelBiped = layer != 2 ? modelArmorChestplate : modelArmor;
+                modelBiped.head.visible = layer == 0;
+                modelBiped.hair.visible = layer == 0;
+                modelBiped.body.visible = layer == 1 || layer == 2;
+                modelBiped.armRight.visible = layer == 1;
+                modelBiped.armLeft.visible = layer == 1;
+                modelBiped.legRight.visible = layer == 2 || layer == 3;
+                modelBiped.legLeft.visible = layer == 2 || layer == 3;
+                setArmorModel(modelBiped);
                 return true;
             }
         }
@@ -382,7 +384,7 @@ public class PlayerRenderer extends MobRenderer<Player>
         modelArmorChestplate.sneaking = modelArmor.sneaking = modelBipedMain.sneaking = entity.isSneaking();
         modelArmorChestplate.isRiding = modelArmor.isRiding = modelBipedMain.isRiding = entity.isPassenger();
         double d3 = y - (double)entity.heightOffset;
-        if(entity.isSneaking() && !(entity instanceof LocalPlayer))
+        if(entity.isSneaking() && !(entity instanceof PlayerLocal))
         {
             d3 -= 0.125D;
         }
diff --git a/src/main/java/net/minecraft/client/render/entity/MobRendererScorpion.java b/src/main/java/net/minecraft/client/render/entity/MobRendererScorpion.java
new file mode 100644
index 000000000..77841ed69
--- /dev/null
+++ b/src/main/java/net/minecraft/client/render/entity/MobRendererScorpion.java
@@ -0,0 +1,30 @@
+package net.minecraft.client.render.entity;
+
+import net.minecraft.client.render.model.ModelScorpion;
+import net.minecraft.core.entity.monster.MobScorpion;
+
+public class MobRendererScorpion extends MobRenderer<MobScorpion>
+{
+
+    public MobRendererScorpion()
+    {
+        super(new ModelScorpion(), 0.5F);
+        setArmorModel(new ModelScorpion());
+    }
+    protected boolean doRenderPass(MobScorpion scorpion, int i, float f)
+    {
+        return i == 0;
+    }
+
+    @Override
+    protected float getMaxDeathRotation(MobScorpion entity)
+    {
+        return 180F;
+    }
+
+    @Override
+    protected boolean prepareArmor(MobScorpion entity, int renderPass, float partialTick)
+    {
+        return doRenderPass(entity, renderPass, partialTick);
+    }
+}
diff --git a/src/main/java/net/minecraft/client/render/entity/SheepRenderer.java b/src/main/java/net/minecraft/client/render/entity/MobRendererSheep.java
similarity index 65%
rename from src/main/java/net/minecraft/client/render/entity/SheepRenderer.java
rename to src/main/java/net/minecraft/client/render/entity/MobRendererSheep.java
index bbb21fe02..f43118d01 100644
--- a/src/main/java/net/minecraft/client/render/entity/SheepRenderer.java
+++ b/src/main/java/net/minecraft/client/render/entity/MobRendererSheep.java
@@ -1,25 +1,25 @@
 package net.minecraft.client.render.entity;
 
-import net.minecraft.client.render.model.BaseModel;
+import net.minecraft.client.render.model.ModelBase;
+import net.minecraft.core.entity.animal.MobSheep;
 import org.lwjgl.opengl.GL11;
 
 import net.minecraft.client.render.LightmapHelper;
 import net.minecraft.core.Global;
-import net.minecraft.core.entity.animal.SheepMob;
 
 // Referenced classes of package net.minecraft.src:
-//            RenderLiving, SheepMob, BaseModel, Mob
+//            RenderLiving, MobSheep, ModelBase, Mob
 
-public class SheepRenderer extends MobRenderer<SheepMob>
+public class MobRendererSheep extends MobRenderer<MobSheep>
 {
-    public SheepRenderer(BaseModel body, BaseModel wool, BaseModel overlay, float f)
+    public MobRendererSheep(ModelBase body, ModelBase wool, ModelBase overlay, float f)
     {
         super(body, f);
         setArmorModel(wool);
         setOverlayModel(overlay, "/assets/minecraft/textures/entity/sheep_overlay.png");
     }
 
-    protected boolean setWoolColorAndRender(SheepMob entitysheep, int i, float f)
+    protected boolean setWoolColorAndRender(MobSheep entitysheep, int i, float f)
     {
         if(i == 0 && !entitysheep.getSheared())
         {
@@ -31,7 +31,7 @@ public class SheepRenderer extends MobRenderer<SheepMob>
             	brightness = entitysheep.getBrightness(f);
             }
             int j = entitysheep.getFleeceColor().blockMeta;
-            GL11.glColor3f(brightness * SheepMob.FLEECE_COLOR_TABLE[j][0], brightness * SheepMob.FLEECE_COLOR_TABLE[j][1], brightness * SheepMob.FLEECE_COLOR_TABLE[j][2]);
+            GL11.glColor3f(brightness * MobSheep.FLEECE_COLOR_TABLE[j][0], brightness * MobSheep.FLEECE_COLOR_TABLE[j][1], brightness * MobSheep.FLEECE_COLOR_TABLE[j][2]);
             return true;
         } else
         {
@@ -45,7 +45,7 @@ public class SheepRenderer extends MobRenderer<SheepMob>
     }
 
     @Override
-    protected boolean prepareArmor(SheepMob entity, int renderPass, float partialTick)
+    protected boolean prepareArmor(MobSheep entity, int renderPass, float partialTick)
     {
         return setWoolColorAndRender(entity, renderPass, partialTick);
     }
diff --git a/src/main/java/net/minecraft/client/render/entity/SlimeRenderer.java b/src/main/java/net/minecraft/client/render/entity/MobRendererSlime.java
similarity index 66%
rename from src/main/java/net/minecraft/client/render/entity/SlimeRenderer.java
rename to src/main/java/net/minecraft/client/render/entity/MobRendererSlime.java
index a84f6942e..bcbd35a5e 100644
--- a/src/main/java/net/minecraft/client/render/entity/SlimeRenderer.java
+++ b/src/main/java/net/minecraft/client/render/entity/MobRendererSlime.java
@@ -1,22 +1,22 @@
 package net.minecraft.client.render.entity;
 
-import net.minecraft.client.render.model.BaseModel;
-import net.minecraft.core.entity.monster.SlimeMob;
+import net.minecraft.client.render.model.ModelBase;
+import net.minecraft.core.entity.monster.MobSlime;
 import org.lwjgl.opengl.GL11;
 
 // Referenced classes of package net.minecraft.src:
-//            RenderLiving, SlimeMob, BaseModel, Mob
+//            RenderLiving, MobSlime, ModelBase, Mob
 
-public class SlimeRenderer extends MobRenderer<SlimeMob>
+public class MobRendererSlime extends MobRenderer<MobSlime>
 {
 
-    public SlimeRenderer(BaseModel modelbase, BaseModel modelbase1, float f)
+    public MobRendererSlime(ModelBase modelbase, ModelBase modelbase1, float f)
     {
         super(modelbase, f);
         scaleAmount = modelbase1;
     }
 
-    protected boolean renderSlimePassModel(SlimeMob entity, int i, float f)
+    protected boolean renderSlimePassModel(MobSlime entity, int i, float f)
     {
         if(i == 0)
         {
@@ -34,7 +34,7 @@ public class SlimeRenderer extends MobRenderer<SlimeMob>
         return false;
     }
 
-    protected void scaleSlime(SlimeMob entityslime, float f)
+    protected void scaleSlime(MobSlime entityslime, float f)
     {
         int i = entityslime.getSlimeSize();
         float f1 = (entityslime.oSquish + (entityslime.squish - entityslime.oSquish) * f) / ((float)i * 0.5F + 1.0F);
@@ -44,16 +44,16 @@ public class SlimeRenderer extends MobRenderer<SlimeMob>
     }
 
     @Override
-    protected void setupScale(SlimeMob entity, float partialTick)
+    protected void setupScale(MobSlime entity, float partialTick)
     {
         scaleSlime(entity, partialTick);
     }
 
     @Override
-    protected boolean prepareArmor(SlimeMob entity, int renderPass, float partialTick)
+    protected boolean prepareArmor(MobSlime entity, int renderPass, float partialTick)
     {
         return renderSlimePassModel(entity, renderPass, partialTick);
     }
 
-    private final BaseModel scaleAmount;
+    private final ModelBase scaleAmount;
 }
diff --git a/src/main/java/net/minecraft/client/render/entity/SpiderRenderer.java b/src/main/java/net/minecraft/client/render/entity/MobRendererSpider.java
similarity index 66%
rename from src/main/java/net/minecraft/client/render/entity/SpiderRenderer.java
rename to src/main/java/net/minecraft/client/render/entity/MobRendererSpider.java
index 490ea3388..4b1a74fcc 100644
--- a/src/main/java/net/minecraft/client/render/entity/SpiderRenderer.java
+++ b/src/main/java/net/minecraft/client/render/entity/MobRendererSpider.java
@@ -1,23 +1,22 @@
 package net.minecraft.client.render.entity;
 
-import net.minecraft.client.Minecraft;
 import net.minecraft.client.render.LightmapHelper;
-import net.minecraft.client.render.model.SpiderModel;
-import net.minecraft.core.entity.monster.SpiderMob;
+import net.minecraft.client.render.model.ModelSpider;
+import net.minecraft.core.entity.monster.MobSpider;
 import org.lwjgl.opengl.GL11;
 
 // Referenced classes of package net.minecraft.src:
-//            RenderLiving, SpiderModel, SpiderMob, Mob
+//            RenderLiving, ModelSpider, MobSpider, Mob
 
-public class SpiderRenderer extends MobRenderer<SpiderMob>
+public class MobRendererSpider extends MobRenderer<MobSpider>
 {
 
-    public SpiderRenderer()
+    public MobRendererSpider()
     {
-        super(new SpiderModel(0), 1.0F);
-        setArmorModel(new SpiderModel(0.01f));
+        super(new ModelSpider(0), 1.0F);
+        setArmorModel(new ModelSpider(0.01f));
     }
-    protected boolean setSpiderEyeBrightness(SpiderMob spider, int renderPass, float partialTick)
+    protected boolean setSpiderEyeBrightness(MobSpider spider, int renderPass, float partialTick)
     {
         if(renderPass == 0)
         {
@@ -38,13 +37,13 @@ public class SpiderRenderer extends MobRenderer<SpiderMob>
     }
 
     @Override
-    protected float getMaxDeathRotation(SpiderMob entity)
+    protected float getMaxDeathRotation(MobSpider entity)
     {
         return 180f;
     }
 
     @Override
-    protected boolean prepareArmor(SpiderMob entity, int renderPass, float partialTick) {
+    protected boolean prepareArmor(MobSpider entity, int renderPass, float partialTick) {
         return setSpiderEyeBrightness(entity, renderPass, partialTick);
     }
 }
diff --git a/src/main/java/net/minecraft/client/render/entity/SquidRenderer.java b/src/main/java/net/minecraft/client/render/entity/MobRendererSquid.java
similarity index 73%
rename from src/main/java/net/minecraft/client/render/entity/SquidRenderer.java
rename to src/main/java/net/minecraft/client/render/entity/MobRendererSquid.java
index 00f7c1ece..394451e20 100644
--- a/src/main/java/net/minecraft/client/render/entity/SquidRenderer.java
+++ b/src/main/java/net/minecraft/client/render/entity/MobRendererSquid.java
@@ -1,28 +1,28 @@
 package net.minecraft.client.render.entity;
 
-import net.minecraft.client.render.model.BaseModel;
+import net.minecraft.client.render.model.ModelBase;
 import net.minecraft.client.render.tessellator.Tessellator;
-import net.minecraft.core.entity.animal.SquidMob;
+import net.minecraft.core.entity.animal.MobSquid;
 import org.lwjgl.opengl.GL11;
 
 // Referenced classes of package net.minecraft.src:
-//            RenderLiving, SquidMob, BaseModel, Mob,
+//            RenderLiving, MobSquid, ModelBase, Mob,
 //            Entity
 
-public class SquidRenderer extends MobRenderer<SquidMob>
+public class MobRendererSquid extends MobRenderer<MobSquid>
 {
-    public SquidRenderer(BaseModel modelbase, float f)
+    public MobRendererSquid(ModelBase modelbase, float f)
     {
         super(modelbase, f);
     }
     @Override
-    protected float limbSway(SquidMob squid, float partialTick)
+    protected float limbSway(MobSquid squid, float partialTick)
     {
         return squid.oldTentacleAngle + (squid.tentacleAngle - squid.oldTentacleAngle) * partialTick;
     }
 
     @Override
-    protected void setupRotations(SquidMob squid, float ticksExisted, float bodyYaw, float partialTick)
+    protected void setupRotations(MobSquid squid, float ticksExisted, float bodyYaw, float partialTick)
     {
         if (squid.isSpecial()) {
             super.setupRotations(squid, ticksExisted, bodyYaw, partialTick);
@@ -38,7 +38,7 @@ public class SquidRenderer extends MobRenderer<SquidMob>
     }
 
     @Override
-    public void renderPreview(Tessellator tessellator, SquidMob squid, double x, double y, double z, float yaw, float partialTick) {
+    public void renderPreview(Tessellator tessellator, MobSquid squid, double x, double y, double z, float yaw, float partialTick) {
         GL11.glPushMatrix();
         GL11.glTranslatef(0.0f, 1.25f, 0.0f);
         super.renderPreview(tessellator,squid, x, y, z, yaw, partialTick);
diff --git a/src/main/java/net/minecraft/client/render/entity/WolfRenderer.java b/src/main/java/net/minecraft/client/render/entity/MobRendererWolf.java
similarity index 82%
rename from src/main/java/net/minecraft/client/render/entity/WolfRenderer.java
rename to src/main/java/net/minecraft/client/render/entity/MobRendererWolf.java
index 3cde6fbb5..8f61b37e7 100644
--- a/src/main/java/net/minecraft/client/render/entity/WolfRenderer.java
+++ b/src/main/java/net/minecraft/client/render/entity/MobRendererWolf.java
@@ -2,30 +2,30 @@ package net.minecraft.client.render.entity;
 
 import net.minecraft.client.render.block.model.BlockModelDispatcher;
 import net.minecraft.client.render.item.model.ItemModelDispatcher;
-import net.minecraft.client.render.model.WolfModel;
+import net.minecraft.client.render.model.ModelWolf;
 import net.minecraft.client.render.tessellator.Tessellator;
 import net.minecraft.core.block.Block;
-import net.minecraft.core.entity.animal.WolfMob;
+import net.minecraft.core.entity.animal.MobWolf;
 
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.item.material.ArmorMaterial;
 import net.minecraft.core.util.helper.MathHelper;
 import org.lwjgl.opengl.GL11;
 
-public class WolfRenderer extends MobRenderer<WolfMob>
+public class MobRendererWolf extends MobRenderer<MobWolf>
 {
-    private final WolfModel modelArmor;
-    protected WolfModel modelWolfMain;
+    private final ModelWolf modelArmor;
+    protected ModelWolf modelWolfMain;
 
-    public WolfRenderer(WolfModel modelWolf, float shadowSize)
+    public MobRendererWolf(ModelWolf modelWolf, float shadowSize)
     {
         super(modelWolf, shadowSize);
         modelWolfMain = modelWolf;
-        modelArmor = new WolfModel(0.25f);
+        modelArmor = new ModelWolf(0.25f);
     }
 
     @Override
-    protected boolean prepareArmor(WolfMob wolf, int layer, float partialTick) {
+    protected boolean prepareArmor(MobWolf wolf, int layer, float partialTick) {
         ArmorMaterial material = wolf.getArmorMaterial();
         if (material == null) {
             return false;
@@ -35,7 +35,7 @@ public class WolfRenderer extends MobRenderer<WolfMob>
         return true;
     }
     @Override
-    protected float limbSway(WolfMob wolf, float partialTick)
+    protected float limbSway(MobWolf wolf, float partialTick)
     {
         if(wolf.isWolfAngry())
         {
@@ -52,7 +52,7 @@ public class WolfRenderer extends MobRenderer<WolfMob>
     }
 
     @Override
-    protected void renderAdditional(WolfMob entity, float f){
+    protected void renderAdditional(MobWolf entity, float f){
         ItemStack itemstack = entity.getWolfHeldItem();
 
         if(itemstack != null && itemstack.getItem() != null) {
diff --git a/src/main/java/net/minecraft/client/render/entity/ArmoredZombieRenderer.java b/src/main/java/net/minecraft/client/render/entity/MobRendererZombieArmored.java
similarity index 76%
rename from src/main/java/net/minecraft/client/render/entity/ArmoredZombieRenderer.java
rename to src/main/java/net/minecraft/client/render/entity/MobRendererZombieArmored.java
index 6058284fb..fabd18273 100644
--- a/src/main/java/net/minecraft/client/render/entity/ArmoredZombieRenderer.java
+++ b/src/main/java/net/minecraft/client/render/entity/MobRendererZombieArmored.java
@@ -1,27 +1,27 @@
 package net.minecraft.client.render.entity;
 
-import net.minecraft.client.render.model.ZombieModel;
-import net.minecraft.core.entity.monster.ZombieArmoredMob;
+import net.minecraft.client.render.model.ModelZombie;
+import net.minecraft.core.entity.monster.MobZombieArmored;
 
-public class ArmoredZombieRenderer extends BipedRenderer<ZombieArmoredMob>
+public class MobRendererZombieArmored extends MobRendererBiped<MobZombieArmored>
 {
 
-    private final ZombieModel modelArmorChestplate;
-    private final ZombieModel modelArmor;
+    private final ModelZombie modelArmorChestplate;
+    private final ModelZombie modelArmor;
 
-    public ArmoredZombieRenderer(ZombieModel model, float shadowSize)
+    public MobRendererZombieArmored(ModelZombie model, float shadowSize)
     {
         super(model, shadowSize);
         modelBipedMain = model;
-        modelArmorChestplate = new ZombieModel(1.0F);
-        modelArmor = new ZombieModel(0.5F);
+        modelArmorChestplate = new ModelZombie(1.0F);
+        modelArmor = new ModelZombie(0.5F);
     }
 
     @Override
-    protected boolean prepareArmor(ZombieArmoredMob zombie, int renderPass, float partialTick)
+    protected boolean prepareArmor(MobZombieArmored zombie, int renderPass, float partialTick)
     {
         bindTexture("/assets/minecraft/textures/armor/chain" + "_" + (renderPass != 2 ? 1 : 2) + ".png");
-        ZombieModel model = renderPass != 2 ? modelArmorChestplate : modelArmor;
+        ModelZombie model = renderPass != 2 ? modelArmorChestplate : modelArmor;
         model.head.visible = renderPass == 0;
         model.hair.visible = renderPass == 0;
         model.body.visible = renderPass == 1 || renderPass == 2;
diff --git a/src/main/java/net/minecraft/client/render/entity/ScorpionRenderer.java b/src/main/java/net/minecraft/client/render/entity/ScorpionRenderer.java
deleted file mode 100644
index 50b5de73b..000000000
--- a/src/main/java/net/minecraft/client/render/entity/ScorpionRenderer.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package net.minecraft.client.render.entity;
-
-import net.minecraft.client.render.model.ScorpionModel;
-import net.minecraft.core.entity.monster.ScorpionMob;
-
-public class ScorpionRenderer extends MobRenderer<ScorpionMob>
-{
-
-    public ScorpionRenderer()
-    {
-        super(new ScorpionModel(), 0.5F);
-        setArmorModel(new ScorpionModel());
-    }
-    protected boolean doRenderPass(ScorpionMob scorpion, int i, float f)
-    {
-        return i == 0;
-    }
-
-    @Override
-    protected float getMaxDeathRotation(ScorpionMob entity)
-    {
-        return 180F;
-    }
-
-    @Override
-    protected boolean prepareArmor(ScorpionMob entity, int renderPass, float partialTick)
-    {
-        return doRenderPass(entity, renderPass, partialTick);
-    }
-}
diff --git a/src/main/java/net/minecraft/client/render/item/model/BlockItemModel.java b/src/main/java/net/minecraft/client/render/item/model/ItemModelBlock.java
similarity index 97%
rename from src/main/java/net/minecraft/client/render/item/model/BlockItemModel.java
rename to src/main/java/net/minecraft/client/render/item/model/ItemModelBlock.java
index 63dbd8c20..dec48e322 100644
--- a/src/main/java/net/minecraft/client/render/item/model/BlockItemModel.java
+++ b/src/main/java/net/minecraft/client/render/item/model/ItemModelBlock.java
@@ -16,7 +16,7 @@ import net.minecraft.core.block.Block;
 import net.minecraft.core.entity.Entity;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.item.ItemStack;
-import net.minecraft.core.item.block.BlockItem;
+import net.minecraft.core.item.block.ItemBlock;
 import net.minecraft.core.util.helper.MathHelper;
 import net.minecraft.core.util.helper.Side;
 import org.jetbrains.annotations.NotNull;
@@ -28,12 +28,12 @@ import java.util.Random;
 
 import static org.lwjgl.opengl.GL11.*;
 
-public class BlockItemModel extends StandardItemModel {
+public class ItemModelBlock extends ItemModelStandard {
     private Block block;
     private BlockModel<Block> blockModel;
-    public BlockItemModel(BlockItem blockItem){
-        super(blockItem, null);
-        this.block = blockItem.getBlock();
+    public ItemModelBlock(ItemBlock itemBlock){
+        super(itemBlock, null);
+        this.block = itemBlock.getBlock();
         this.blockModel = BlockModelDispatcher.getInstance().getDispatch(block);
         icon = blockModel.getBlockTextureFromSideAndMetadata(Side.NORTH, 0);
     }
diff --git a/src/main/java/net/minecraft/client/render/item/model/BowItemModel.java b/src/main/java/net/minecraft/client/render/item/model/ItemModelBow.java
similarity index 90%
rename from src/main/java/net/minecraft/client/render/item/model/BowItemModel.java
rename to src/main/java/net/minecraft/client/render/item/model/ItemModelBow.java
index dda734c48..c32c6a869 100644
--- a/src/main/java/net/minecraft/client/render/item/model/BowItemModel.java
+++ b/src/main/java/net/minecraft/client/render/item/model/ItemModelBow.java
@@ -1,14 +1,14 @@
 package net.minecraft.client.render.item.model;
 
 import net.minecraft.client.Minecraft;
-import net.minecraft.client.entity.player.RemotePlayer;
+import net.minecraft.client.entity.player.PlayerRemote;
 import net.minecraft.client.render.Font;
 import net.minecraft.client.render.ItemRenderer;
 import net.minecraft.client.render.TextureManager;
 import net.minecraft.client.render.texture.stitcher.IconCoordinate;
 import net.minecraft.client.render.tessellator.Tessellator;
 import net.minecraft.core.entity.Entity;
-import net.minecraft.core.entity.monster.SkeletonMob;
+import net.minecraft.core.entity.monster.MobSkeleton;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.item.Item;
 import net.minecraft.core.item.ItemStack;
@@ -22,8 +22,8 @@ import static org.lwjgl.opengl.GL11.glBlendFunc;
 import static org.lwjgl.opengl.GL11.glDisable;
 import static org.lwjgl.opengl.GL11.glEnable;
 
-public class BowItemModel extends StandardItemModel {
-    public BowItemModel(Item item, String namespace) {
+public class ItemModelBow extends ItemModelStandard {
+    public ItemModelBow(Item item, String namespace) {
         super(item, namespace);
     }
 
@@ -35,8 +35,8 @@ public class BowItemModel extends StandardItemModel {
             Player entityplayer = (Player)entity;
             nextArrow = getNextArrow(entityplayer);
         }
-        if (entity instanceof SkeletonMob){
-            if (((SkeletonMob) entity).attackTime < 5){
+        if (entity instanceof MobSkeleton){
+            if (((MobSkeleton) entity).attackTime < 5){
                 nextArrow = Items.AMMO_ARROW;
             }
         }
@@ -54,7 +54,7 @@ public class BowItemModel extends StandardItemModel {
             glEnable(GL_BLEND);
             glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
             glEnable(GL_CULL_FACE);
-            StandardItemModel arrowModel = (StandardItemModel) ItemModelDispatcher.getInstance().getDispatch(nextArrow);
+            ItemModelStandard arrowModel = (ItemModelStandard) ItemModelDispatcher.getInstance().getDispatch(nextArrow);
             IconCoordinate textureIndex = arrowModel.getIcon(mc.thePlayer, nextArrow.getDefaultStack());
             GL11.glDisable(GL_LIGHTING);
             textureIndex.parentAtlas.bind();
@@ -75,7 +75,7 @@ public class BowItemModel extends StandardItemModel {
         super.renderItemIntoGui(tessellator, font, textureManager, itemStack, x, y, brightness, alpha);
     }
     public Item getNextArrow(Player player){
-        if (player instanceof RemotePlayer){
+        if (player instanceof PlayerRemote){
             int id = player.getArrowId();
             if (id < 0 || id >= Item.itemsList.length) return null;
             return Item.itemsList[id];
diff --git a/src/main/java/net/minecraft/client/render/item/model/CoalItemModel.java b/src/main/java/net/minecraft/client/render/item/model/ItemModelCoal.java
similarity index 87%
rename from src/main/java/net/minecraft/client/render/item/model/CoalItemModel.java
rename to src/main/java/net/minecraft/client/render/item/model/ItemModelCoal.java
index 63e5fe4a5..2867671ad 100644
--- a/src/main/java/net/minecraft/client/render/item/model/CoalItemModel.java
+++ b/src/main/java/net/minecraft/client/render/item/model/ItemModelCoal.java
@@ -8,9 +8,9 @@ import net.minecraft.core.item.ItemStack;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
-public class CoalItemModel extends StandardItemModel {
+public class ItemModelCoal extends ItemModelStandard {
     protected IconCoordinate charcoal = TextureRegistry.getTexture("minecraft:item/charcoal");
-    public CoalItemModel(Item item, String namespace) {
+    public ItemModelCoal(Item item, String namespace) {
         super(item, namespace);
     }
 
diff --git a/src/main/java/net/minecraft/client/render/item/model/ItemModelDispatcher.java b/src/main/java/net/minecraft/client/render/item/model/ItemModelDispatcher.java
index 64dfe09cc..854d40132 100644
--- a/src/main/java/net/minecraft/client/render/item/model/ItemModelDispatcher.java
+++ b/src/main/java/net/minecraft/client/render/item/model/ItemModelDispatcher.java
@@ -6,7 +6,7 @@ import net.minecraft.core.block.Blocks;
 import net.minecraft.core.item.Item;
 import net.minecraft.core.item.Items;
 import net.minecraft.core.item.ItemStack;
-import net.minecraft.core.item.block.BlockItem;
+import net.minecraft.core.item.block.ItemBlock;
 
 public class ItemModelDispatcher extends Dispatcher<Item, ItemModel> {
     private static final ItemModelDispatcher instance = new ItemModelDispatcher();
@@ -32,210 +32,210 @@ public class ItemModelDispatcher extends Dispatcher<Item, ItemModel> {
     }
 
     private ItemModelDispatcher() {
-        addDispatch(new StandardItemModel(Items.TOOL_SHOVEL_IRON, "minecraft").setFull3D());
-        addDispatch(new StandardItemModel(Items.TOOL_PICKAXE_IRON, "minecraft").setFull3D());
-        addDispatch(new StandardItemModel(Items.TOOL_AXE_IRON, "minecraft").setFull3D());
-        addDispatch(new StandardItemModel(Items.TOOL_FIRESTRIKER_IRON, "minecraft"));
-
-        addDispatch(new StandardItemModel(Items.FOOD_APPLE, "minecraft"));
-        addDispatch(new BowItemModel(Items.TOOL_BOW, "minecraft"));
-        addDispatch(new StandardItemModel(Items.AMMO_ARROW, "minecraft"));
-        addDispatch(new CoalItemModel(Items.COAL, "minecraft"));
-        addDispatch(new StandardItemModel(Items.DIAMOND, "minecraft"));
-        addDispatch(new StandardItemModel(Items.INGOT_IRON, "minecraft"));
-        addDispatch(new StandardItemModel(Items.INGOT_GOLD, "minecraft"));
-
-        addDispatch(new StandardItemModel(Items.TOOL_SWORD_IRON, "minecraft").setFull3D());
-        addDispatch(new StandardItemModel(Items.TOOL_SWORD_WOOD, "minecraft").setFull3D());
-        addDispatch(new StandardItemModel(Items.TOOL_SHOVEL_WOOD, "minecraft").setFull3D());
-        addDispatch(new StandardItemModel(Items.TOOL_PICKAXE_WOOD, "minecraft").setFull3D());
-        addDispatch(new StandardItemModel(Items.TOOL_AXE_WOOD, "minecraft").setFull3D());
-        addDispatch(new StandardItemModel(Items.TOOL_SWORD_STONE, "minecraft").setFull3D());
-        addDispatch(new StandardItemModel(Items.TOOL_SHOVEL_STONE, "minecraft").setFull3D());
-        addDispatch(new StandardItemModel(Items.TOOL_PICKAXE_STONE, "minecraft").setFull3D());
-        addDispatch(new StandardItemModel(Items.TOOL_AXE_STONE, "minecraft").setFull3D());
-        addDispatch(new StandardItemModel(Items.TOOL_SWORD_DIAMOND, "minecraft").setFull3D());
-        addDispatch(new StandardItemModel(Items.TOOL_SHOVEL_DIAMOND, "minecraft").setFull3D());
-        addDispatch(new StandardItemModel(Items.TOOL_PICKAXE_DIAMOND, "minecraft").setFull3D());
-        addDispatch(new StandardItemModel(Items.TOOL_AXE_DIAMOND, "minecraft").setFull3D());
-
-        addDispatch(new StandardItemModel(Items.STICK, "minecraft").setFull3D());
-        addDispatch(new StandardItemModel(Items.BOWL, "minecraft"));
-        addDispatch(new StandardItemModel(Items.FOOD_STEW_MUSHROOM, "minecraft"));
-
-        addDispatch(new StandardItemModel(Items.TOOL_SWORD_GOLD, "minecraft").setFull3D());
-        addDispatch(new StandardItemModel(Items.TOOL_SHOVEL_GOLD, "minecraft").setFull3D());
-        addDispatch(new StandardItemModel(Items.TOOL_PICKAXE_GOLD, "minecraft").setFull3D());
-        addDispatch(new StandardItemModel(Items.TOOL_AXE_GOLD, "minecraft").setFull3D());
-
-        addDispatch(new StandardItemModel(Items.STRING, "minecraft"));
-        addDispatch(new StandardItemModel(Items.FEATHER_CHICKEN, "minecraft"));
-        addDispatch(new StandardItemModel(Items.SULPHUR, "minecraft"));
-
-        addDispatch(new StandardItemModel(Items.TOOL_HOE_WOOD, "minecraft").setFull3D());
-        addDispatch(new StandardItemModel(Items.TOOL_HOE_STONE, "minecraft").setFull3D());
-        addDispatch(new StandardItemModel(Items.TOOL_HOE_IRON, "minecraft").setFull3D());
-        addDispatch(new StandardItemModel(Items.TOOL_HOE_DIAMOND, "minecraft").setFull3D());
-        addDispatch(new StandardItemModel(Items.TOOL_HOE_GOLD, "minecraft").setFull3D());
-
-        addDispatch(new StandardItemModel(Items.SEEDS_WHEAT, "minecraft"));
-        addDispatch(new StandardItemModel(Items.WHEAT, "minecraft"));
-        addDispatch(new StandardItemModel(Items.FOOD_BREAD, "minecraft"));
-
-        addDispatch(new StandardItemModel(Items.ARMOR_HELMET_LEATHER, "minecraft"));
-        addDispatch(new StandardItemModel(Items.ARMOR_CHESTPLATE_LEATHER, "minecraft"));
-        addDispatch(new StandardItemModel(Items.ARMOR_LEGGINGS_LEATHER, "minecraft"));
-        addDispatch(new StandardItemModel(Items.ARMOR_BOOTS_LEATHER, "minecraft"));
-
-        addDispatch(new StandardItemModel(Items.ARMOR_HELMET_CHAINMAIL, "minecraft"));
-        addDispatch(new StandardItemModel(Items.ARMOR_CHESTPLATE_CHAINMAIL, "minecraft"));
-        addDispatch(new StandardItemModel(Items.ARMOR_LEGGINGS_CHAINMAIL, "minecraft"));
-        addDispatch(new StandardItemModel(Items.ARMOR_BOOTS_CHAINMAIL, "minecraft"));
-
-        addDispatch(new StandardItemModel(Items.ARMOR_HELMET_IRON, "minecraft"));
-        addDispatch(new StandardItemModel(Items.ARMOR_CHESTPLATE_IRON, "minecraft"));
-        addDispatch(new StandardItemModel(Items.ARMOR_LEGGINGS_IRON, "minecraft"));
-        addDispatch(new StandardItemModel(Items.ARMOR_BOOTS_IRON, "minecraft"));
-
-        addDispatch(new StandardItemModel(Items.ARMOR_HELMET_DIAMOND, "minecraft"));
-        addDispatch(new StandardItemModel(Items.ARMOR_CHESTPLATE_DIAMOND, "minecraft"));
-        addDispatch(new StandardItemModel(Items.ARMOR_LEGGINGS_DIAMOND, "minecraft"));
-        addDispatch(new StandardItemModel(Items.ARMOR_BOOTS_DIAMOND, "minecraft"));
-
-        addDispatch(new StandardItemModel(Items.ARMOR_HELMET_GOLD, "minecraft"));
-        addDispatch(new StandardItemModel(Items.ARMOR_CHESTPLATE_GOLD, "minecraft"));
-        addDispatch(new StandardItemModel(Items.ARMOR_LEGGINGS_GOLD, "minecraft"));
-        addDispatch(new StandardItemModel(Items.ARMOR_BOOTS_GOLD, "minecraft"));
-
-        addDispatch(new StandardItemModel(Items.FLINT, "minecraft"));
-        addDispatch(new StandardItemModel(Items.FOOD_PORKCHOP_RAW, "minecraft"));
-        addDispatch(new StandardItemModel(Items.FOOD_PORKCHOP_COOKED, "minecraft"));
-        addDispatch(new StandardItemModel(Items.PAINTING, "minecraft"));
-        addDispatch(new StandardItemModel(Items.FOOD_APPLE_GOLD, "minecraft"));
-        addDispatch(new StandardItemModel(Items.SIGN, "minecraft"));
-        addDispatch(new StandardItemModel(Items.DOOR_OAK, "minecraft"));
-        addDispatch(new StandardItemModel(Items.DOOR_GLASS, "minecraft"));
-        addDispatch(new DoorPaintedItemModel(Items.DOOR_OAK_PAINTED));
-        addDispatch(new StandardItemModel(Items.BUCKET, "minecraft"));
-        addDispatch(new StandardItemModel(Items.BUCKET_WATER, "minecraft"));
-        addDispatch(new StandardItemModel(Items.BUCKET_LAVA, "minecraft").setFullBright());
-        addDispatch(new StandardItemModel(Items.MINECART, "minecraft"));
-        addDispatch(new StandardItemModel(Items.SADDLE, "minecraft"));
-        addDispatch(new StandardItemModel(Items.DOOR_IRON, "minecraft"));
-        addDispatch(new StandardItemModel(Items.DUST_REDSTONE, "minecraft"));
-        addDispatch(new StandardItemModel(Items.AMMO_SNOWBALL, "minecraft"));
-        addDispatch(new StandardItemModel(Items.BOAT, "minecraft"));
-        addDispatch(new StandardItemModel(Items.LEATHER, "minecraft"));
-        addDispatch(new StandardItemModel(Items.BUCKET_MILK, "minecraft"));
-        addDispatch(new StandardItemModel(Items.BRICK_CLAY, "minecraft"));
-        addDispatch(new StandardItemModel(Items.CLAY, "minecraft"));
-        addDispatch(new StandardItemModel(Items.SUGARCANE, "minecraft"));
-        addDispatch(new StandardItemModel(Items.PAPER, "minecraft"));
-        addDispatch(new StandardItemModel(Items.BOOK, "minecraft"));
-        addDispatch(new StandardItemModel(Items.SLIMEBALL, "minecraft"));
-        addDispatch(new StandardItemModel(Items.MINECART_CHEST, "minecraft"));
-        addDispatch(new StandardItemModel(Items.MINECART_FURNACE, "minecraft"));
-        addDispatch(new StandardItemModel(Items.EGG_CHICKEN, "minecraft"));
-        addDispatch(new StandardItemModel(Items.TOOL_COMPASS, "minecraft"));
-        addDispatch(new FishingRodItemModel(Items.TOOL_FISHINGROD, "minecraft").setFull3D().setRotateWhenRendering());
-        addDispatch(new StandardItemModel(Items.TOOL_CLOCK, "minecraft"));
-        addDispatch(new StandardItemModel(Items.DUST_GLOWSTONE, "minecraft").setFullBright());
-        addDispatch(new StandardItemModel(Items.FOOD_FISH_RAW, "minecraft"));
-        addDispatch(new StandardItemModel(Items.FOOD_FISH_COOKED, "minecraft"));
-        addDispatch(new DyeItemModel(Items.DYE));
-        addDispatch(new StandardItemModel(Items.BONE, "minecraft").setFull3D());
-        addDispatch(new StandardItemModel(Items.DUST_SUGAR, "minecraft"));
-        addDispatch(new StandardItemModel(Items.FOOD_CAKE, "minecraft"));
-        addDispatch(new StandardItemModel(Items.FOOD_PUMPKIN_PIE, "minecraft"));
-        addDispatch(new StandardItemModel(Items.BED, "minecraft"));
-        addDispatch(new StandardItemModel(Items.REPEATER, "minecraft"));
-        addDispatch(new StandardItemModel(Items.FOOD_COOKIE, "minecraft"));
-        addDispatch(new MapItemModel(Items.MAP, "minecraft"));
-        addDispatch(new StandardItemModel(Items.TOOL_SHEARS, "minecraft"));
-
-        addDispatch(new StandardItemModel(Items.NETHERCOAL, "minecraft").setFullBright());
-
-        addDispatch(new StandardItemModel(Items.ARMOR_HELMET_STEEL, "minecraft"));
-        addDispatch(new StandardItemModel(Items.ARMOR_CHESTPLATE_STEEL, "minecraft"));
-        addDispatch(new StandardItemModel(Items.ARMOR_LEGGINGS_STEEL, "minecraft"));
-        addDispatch(new StandardItemModel(Items.ARMOR_BOOTS_STEEL, "minecraft"));
-
-        addDispatch(new StandardItemModel(Items.TOOL_SWORD_STEEL, "minecraft").setFull3D());
-        addDispatch(new StandardItemModel(Items.TOOL_SHOVEL_STEEL, "minecraft").setFull3D());
-        addDispatch(new StandardItemModel(Items.TOOL_PICKAXE_STEEL, "minecraft").setFull3D());
-        addDispatch(new StandardItemModel(Items.TOOL_AXE_STEEL, "minecraft").setFull3D());
-        addDispatch(new StandardItemModel(Items.TOOL_HOE_STEEL, "minecraft").setFull3D());
-
-        addDispatch(new StandardItemModel(Items.INGOT_STEEL, "minecraft"));
-        addDispatch(new StandardItemModel(Items.INGOT_STEEL_CRUDE, "minecraft"));
-        addDispatch(new StandardItemModel(Items.AMMO_FIREBALL, "minecraft").setFullBright());
-        addDispatch(new StandardItemModel(Items.ARMOR_QUIVER_GOLD, "minecraft"));
-        addDispatch(new StandardItemModel(Items.HANDCANNON_UNLOADED, "minecraft").setFull3D());
-        addDispatch(new StandardItemModel(Items.CHAINLINK, "minecraft"));
-        addDispatch(new StandardItemModel(Items.CLOTH, "minecraft"));
-        addDispatch(new StandardItemModel(Items.AMMO_CHARGE_EXPLOSIVE, "minecraft"));
-        addDispatch(new StandardItemModel(Items.HANDCANNON_LOADED, "minecraft").setFull3D().setFullBright());
-        addDispatch(new StandardItemModel(Items.AMMO_ARROW_GOLD, "minecraft"));
-        addDispatch(new QuiverItemModel(Items.ARMOR_QUIVER, "minecraft"));
-        addDispatch(new StandardItemModel(Items.TOOL_CALENDAR, "minecraft"));
-        addDispatch(new StandardItemModel(Items.ORE_RAW_GOLD, "minecraft"));
-        addDispatch(new StandardItemModel(Items.ORE_RAW_IRON, "minecraft"));
-        addDispatch(new StandardItemModel(Items.QUARTZ, "minecraft"));
-        addDispatch(new StandardItemModel(Items.OLIVINE, "minecraft"));
-        addDispatch(new StandardItemModel(Items.AMMO_PEBBLE, "minecraft"));
-        addDispatch(new StandardItemModel(Items.FOOD_CHERRY, "minecraft"));
-        addDispatch(new StandardItemModel(Items.BUCKET_ICECREAM, "minecraft"));
-        addDispatch(new StandardItemModel(Items.AMMO_ARROW_PURPLE, "minecraft"));
-        addDispatch(new LabelItemModel(Items.LABEL, "minecraft"));
-        addDispatch(new StandardItemModel(Items.JAR, "minecraft"));
-
-        addDispatch(new StandardItemModel(Items.LANTERN_FIREFLY_GREEN, "minecraft").setFullBright());
-        addDispatch(new StandardItemModel(Items.LANTERN_FIREFLY_BLUE, "minecraft").setFullBright());
-        addDispatch(new StandardItemModel(Items.LANTERN_FIREFLY_ORANGE, "minecraft").setFullBright());
-        addDispatch(new StandardItemModel(Items.LANTERN_FIREFLY_RED, "minecraft").setFullBright());
-
-        addDispatch(new StandardItemModel(Items.BASKET, "minecraft"));
-        addDispatch(new StandardItemModel(Items.FLAG, "minecraft").setFull3D());
-
-        addDispatch(new StandardItemModel(Items.ARMOR_BOOTS_ICESKATES, "minecraft"));
-        addDispatch(new StandardItemModel(Items.TOOL_SHEARS_STEEL, "minecraft"));
-        addDispatch(new StandardItemModel(Items.TOOL_FIRESTRIKER_STEEL, "minecraft"));
-        addDispatch(new StandardItemModel(Items.SEEDS_PUMPKIN, "minecraft"));
-        addDispatch(new StandardItemModel(Items.SEAT, "minecraft"));
-
-        addDispatch(new StandardItemModel(Items.ROPE, "minecraft"));
-
-        addDispatch(new StandardItemModel(Items.WAND_MONSTER_SPAWNER, "minecraft").setFull3D());
-        addDispatch(new StandardItemModel(Items.DOOR_STEEL, "minecraft"));
-        addDispatch(new PaintbrushItemModel(Items.PAINTBRUSH, "minecraft").setFull3D());
-
-        addDispatch(new StandardItemModel(Items.RECORD_13, "minecraft"));
-        addDispatch(new StandardItemModel(Items.RECORD_CAT, "minecraft"));
-        addDispatch(new StandardItemModel(Items.RECORD_BLOCKS, "minecraft"));
-        addDispatch(new StandardItemModel(Items.RECORD_CHIRP, "minecraft"));
-        addDispatch(new StandardItemModel(Items.RECORD_FAR, "minecraft"));
-        addDispatch(new StandardItemModel(Items.RECORD_MALL, "minecraft"));
-        addDispatch(new StandardItemModel(Items.RECORD_MELLOHI, "minecraft"));
-        addDispatch(new StandardItemModel(Items.RECORD_STAL, "minecraft"));
-        addDispatch(new StandardItemModel(Items.RECORD_STRAD, "minecraft"));
-        addDispatch(new StandardItemModel(Items.RECORD_WARD, "minecraft"));
-        addDispatch(new StandardItemModel(Items.RECORD_WAIT, "minecraft"));
-        addDispatch(new StandardItemModel(Items.RECORD_DOG, "minecraft"));
-
-        addDispatch(new BlockItemModel((BlockItem) Blocks.TORCH_COAL.asItem()).setFullBright());
-        addDispatch(new BlockItemModel((BlockItem) Blocks.TORCH_REDSTONE_ACTIVE.asItem()).setFullBright());
-        addDispatch(new BlockItemModel((BlockItem) Blocks.GLOWSTONE.asItem()).setFullBright());
-        addDispatch(new BlockItemModel((BlockItem) Blocks.PUMPKIN_CARVED_ACTIVE.asItem()).setFullBright());
-        addDispatch(new BlockItemModel((BlockItem) Blocks.LAMP_ACTIVE.asItem()).setFullBright());
-        addDispatch(new BlockItemModel((BlockItem) Blocks.PORTAL_PARADISE.asItem()).setFullBright());
-        addDispatch(new BlockItemModel((BlockItem) Blocks.PORTAL_NETHER.asItem()).setFullBright());
+        addDispatch(new ItemModelStandard(Items.TOOL_SHOVEL_IRON, "minecraft").setFull3D());
+        addDispatch(new ItemModelStandard(Items.TOOL_PICKAXE_IRON, "minecraft").setFull3D());
+        addDispatch(new ItemModelStandard(Items.TOOL_AXE_IRON, "minecraft").setFull3D());
+        addDispatch(new ItemModelStandard(Items.TOOL_FIRESTRIKER_IRON, "minecraft"));
+
+        addDispatch(new ItemModelStandard(Items.FOOD_APPLE, "minecraft"));
+        addDispatch(new ItemModelBow(Items.TOOL_BOW, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.AMMO_ARROW, "minecraft"));
+        addDispatch(new ItemModelCoal(Items.COAL, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.DIAMOND, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.INGOT_IRON, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.INGOT_GOLD, "minecraft"));
+
+        addDispatch(new ItemModelStandard(Items.TOOL_SWORD_IRON, "minecraft").setFull3D());
+        addDispatch(new ItemModelStandard(Items.TOOL_SWORD_WOOD, "minecraft").setFull3D());
+        addDispatch(new ItemModelStandard(Items.TOOL_SHOVEL_WOOD, "minecraft").setFull3D());
+        addDispatch(new ItemModelStandard(Items.TOOL_PICKAXE_WOOD, "minecraft").setFull3D());
+        addDispatch(new ItemModelStandard(Items.TOOL_AXE_WOOD, "minecraft").setFull3D());
+        addDispatch(new ItemModelStandard(Items.TOOL_SWORD_STONE, "minecraft").setFull3D());
+        addDispatch(new ItemModelStandard(Items.TOOL_SHOVEL_STONE, "minecraft").setFull3D());
+        addDispatch(new ItemModelStandard(Items.TOOL_PICKAXE_STONE, "minecraft").setFull3D());
+        addDispatch(new ItemModelStandard(Items.TOOL_AXE_STONE, "minecraft").setFull3D());
+        addDispatch(new ItemModelStandard(Items.TOOL_SWORD_DIAMOND, "minecraft").setFull3D());
+        addDispatch(new ItemModelStandard(Items.TOOL_SHOVEL_DIAMOND, "minecraft").setFull3D());
+        addDispatch(new ItemModelStandard(Items.TOOL_PICKAXE_DIAMOND, "minecraft").setFull3D());
+        addDispatch(new ItemModelStandard(Items.TOOL_AXE_DIAMOND, "minecraft").setFull3D());
+
+        addDispatch(new ItemModelStandard(Items.STICK, "minecraft").setFull3D());
+        addDispatch(new ItemModelStandard(Items.BOWL, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.FOOD_STEW_MUSHROOM, "minecraft"));
+
+        addDispatch(new ItemModelStandard(Items.TOOL_SWORD_GOLD, "minecraft").setFull3D());
+        addDispatch(new ItemModelStandard(Items.TOOL_SHOVEL_GOLD, "minecraft").setFull3D());
+        addDispatch(new ItemModelStandard(Items.TOOL_PICKAXE_GOLD, "minecraft").setFull3D());
+        addDispatch(new ItemModelStandard(Items.TOOL_AXE_GOLD, "minecraft").setFull3D());
+
+        addDispatch(new ItemModelStandard(Items.STRING, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.FEATHER_CHICKEN, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.SULPHUR, "minecraft"));
+
+        addDispatch(new ItemModelStandard(Items.TOOL_HOE_WOOD, "minecraft").setFull3D());
+        addDispatch(new ItemModelStandard(Items.TOOL_HOE_STONE, "minecraft").setFull3D());
+        addDispatch(new ItemModelStandard(Items.TOOL_HOE_IRON, "minecraft").setFull3D());
+        addDispatch(new ItemModelStandard(Items.TOOL_HOE_DIAMOND, "minecraft").setFull3D());
+        addDispatch(new ItemModelStandard(Items.TOOL_HOE_GOLD, "minecraft").setFull3D());
+
+        addDispatch(new ItemModelStandard(Items.SEEDS_WHEAT, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.WHEAT, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.FOOD_BREAD, "minecraft"));
+
+        addDispatch(new ItemModelStandard(Items.ARMOR_HELMET_LEATHER, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.ARMOR_CHESTPLATE_LEATHER, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.ARMOR_LEGGINGS_LEATHER, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.ARMOR_BOOTS_LEATHER, "minecraft"));
+
+        addDispatch(new ItemModelStandard(Items.ARMOR_HELMET_CHAINMAIL, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.ARMOR_CHESTPLATE_CHAINMAIL, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.ARMOR_LEGGINGS_CHAINMAIL, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.ARMOR_BOOTS_CHAINMAIL, "minecraft"));
+
+        addDispatch(new ItemModelStandard(Items.ARMOR_HELMET_IRON, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.ARMOR_CHESTPLATE_IRON, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.ARMOR_LEGGINGS_IRON, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.ARMOR_BOOTS_IRON, "minecraft"));
+
+        addDispatch(new ItemModelStandard(Items.ARMOR_HELMET_DIAMOND, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.ARMOR_CHESTPLATE_DIAMOND, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.ARMOR_LEGGINGS_DIAMOND, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.ARMOR_BOOTS_DIAMOND, "minecraft"));
+
+        addDispatch(new ItemModelStandard(Items.ARMOR_HELMET_GOLD, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.ARMOR_CHESTPLATE_GOLD, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.ARMOR_LEGGINGS_GOLD, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.ARMOR_BOOTS_GOLD, "minecraft"));
+
+        addDispatch(new ItemModelStandard(Items.FLINT, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.FOOD_PORKCHOP_RAW, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.FOOD_PORKCHOP_COOKED, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.PAINTING, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.FOOD_APPLE_GOLD, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.SIGN, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.DOOR_OAK, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.DOOR_GLASS, "minecraft"));
+        addDispatch(new ItemModelDoorPainted(Items.DOOR_OAK_PAINTED));
+        addDispatch(new ItemModelStandard(Items.BUCKET, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.BUCKET_WATER, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.BUCKET_LAVA, "minecraft").setFullBright());
+        addDispatch(new ItemModelStandard(Items.MINECART, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.SADDLE, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.DOOR_IRON, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.DUST_REDSTONE, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.AMMO_SNOWBALL, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.BOAT, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.LEATHER, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.BUCKET_MILK, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.BRICK_CLAY, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.CLAY, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.SUGARCANE, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.PAPER, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.BOOK, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.SLIMEBALL, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.MINECART_CHEST, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.MINECART_FURNACE, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.EGG_CHICKEN, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.TOOL_COMPASS, "minecraft"));
+        addDispatch(new ItemModelFishingRod(Items.TOOL_FISHINGROD, "minecraft").setFull3D().setRotateWhenRendering());
+        addDispatch(new ItemModelStandard(Items.TOOL_CLOCK, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.DUST_GLOWSTONE, "minecraft").setFullBright());
+        addDispatch(new ItemModelStandard(Items.FOOD_FISH_RAW, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.FOOD_FISH_COOKED, "minecraft"));
+        addDispatch(new ItemModelDye(Items.DYE));
+        addDispatch(new ItemModelStandard(Items.BONE, "minecraft").setFull3D());
+        addDispatch(new ItemModelStandard(Items.DUST_SUGAR, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.FOOD_CAKE, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.FOOD_PUMPKIN_PIE, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.BED, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.REPEATER, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.FOOD_COOKIE, "minecraft"));
+        addDispatch(new ItemModelMap(Items.MAP, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.TOOL_SHEARS, "minecraft"));
+
+        addDispatch(new ItemModelStandard(Items.NETHERCOAL, "minecraft").setFullBright());
+
+        addDispatch(new ItemModelStandard(Items.ARMOR_HELMET_STEEL, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.ARMOR_CHESTPLATE_STEEL, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.ARMOR_LEGGINGS_STEEL, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.ARMOR_BOOTS_STEEL, "minecraft"));
+
+        addDispatch(new ItemModelStandard(Items.TOOL_SWORD_STEEL, "minecraft").setFull3D());
+        addDispatch(new ItemModelStandard(Items.TOOL_SHOVEL_STEEL, "minecraft").setFull3D());
+        addDispatch(new ItemModelStandard(Items.TOOL_PICKAXE_STEEL, "minecraft").setFull3D());
+        addDispatch(new ItemModelStandard(Items.TOOL_AXE_STEEL, "minecraft").setFull3D());
+        addDispatch(new ItemModelStandard(Items.TOOL_HOE_STEEL, "minecraft").setFull3D());
+
+        addDispatch(new ItemModelStandard(Items.INGOT_STEEL, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.INGOT_STEEL_CRUDE, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.AMMO_FIREBALL, "minecraft").setFullBright());
+        addDispatch(new ItemModelStandard(Items.ARMOR_QUIVER_GOLD, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.HANDCANNON_UNLOADED, "minecraft").setFull3D());
+        addDispatch(new ItemModelStandard(Items.CHAINLINK, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.CLOTH, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.AMMO_CHARGE_EXPLOSIVE, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.HANDCANNON_LOADED, "minecraft").setFull3D().setFullBright());
+        addDispatch(new ItemModelStandard(Items.AMMO_ARROW_GOLD, "minecraft"));
+        addDispatch(new ItemModelQuiver(Items.ARMOR_QUIVER, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.TOOL_CALENDAR, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.ORE_RAW_GOLD, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.ORE_RAW_IRON, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.QUARTZ, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.OLIVINE, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.AMMO_PEBBLE, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.FOOD_CHERRY, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.BUCKET_ICECREAM, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.AMMO_ARROW_PURPLE, "minecraft"));
+        addDispatch(new ItemModelLabel(Items.LABEL, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.JAR, "minecraft"));
+
+        addDispatch(new ItemModelStandard(Items.LANTERN_FIREFLY_GREEN, "minecraft").setFullBright());
+        addDispatch(new ItemModelStandard(Items.LANTERN_FIREFLY_BLUE, "minecraft").setFullBright());
+        addDispatch(new ItemModelStandard(Items.LANTERN_FIREFLY_ORANGE, "minecraft").setFullBright());
+        addDispatch(new ItemModelStandard(Items.LANTERN_FIREFLY_RED, "minecraft").setFullBright());
+
+        addDispatch(new ItemModelStandard(Items.BASKET, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.FLAG, "minecraft").setFull3D());
+
+        addDispatch(new ItemModelStandard(Items.ARMOR_BOOTS_ICESKATES, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.TOOL_SHEARS_STEEL, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.TOOL_FIRESTRIKER_STEEL, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.SEEDS_PUMPKIN, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.SEAT, "minecraft"));
+
+        addDispatch(new ItemModelStandard(Items.ROPE, "minecraft"));
+
+        addDispatch(new ItemModelStandard(Items.WAND_MONSTER_SPAWNER, "minecraft").setFull3D());
+        addDispatch(new ItemModelStandard(Items.DOOR_STEEL, "minecraft"));
+        addDispatch(new ItemModelPaintbrush(Items.PAINTBRUSH, "minecraft").setFull3D());
+
+        addDispatch(new ItemModelStandard(Items.RECORD_13, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.RECORD_CAT, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.RECORD_BLOCKS, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.RECORD_CHIRP, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.RECORD_FAR, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.RECORD_MALL, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.RECORD_MELLOHI, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.RECORD_STAL, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.RECORD_STRAD, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.RECORD_WARD, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.RECORD_WAIT, "minecraft"));
+        addDispatch(new ItemModelStandard(Items.RECORD_DOG, "minecraft"));
+
+        addDispatch(new ItemModelBlock((ItemBlock) Blocks.TORCH_COAL.asItem()).setFullBright());
+        addDispatch(new ItemModelBlock((ItemBlock) Blocks.TORCH_REDSTONE_ACTIVE.asItem()).setFullBright());
+        addDispatch(new ItemModelBlock((ItemBlock) Blocks.GLOWSTONE.asItem()).setFullBright());
+        addDispatch(new ItemModelBlock((ItemBlock) Blocks.PUMPKIN_CARVED_ACTIVE.asItem()).setFullBright());
+        addDispatch(new ItemModelBlock((ItemBlock) Blocks.LAMP_ACTIVE.asItem()).setFullBright());
+        addDispatch(new ItemModelBlock((ItemBlock) Blocks.PORTAL_PARADISE.asItem()).setFullBright());
+        addDispatch(new ItemModelBlock((ItemBlock) Blocks.PORTAL_NETHER.asItem()).setFullBright());
 
         for (int i = 0; i < Block.blocksList.length; i++) {
             if (Block.blocksList[i] == null) continue;
             Item item = Block.blocksList[i].asItem();
             if (dispatches.containsKey(item)) continue;
-            if (!(item instanceof BlockItem)) continue;
-            addDispatch(new BlockItemModel((BlockItem) item));
+            if (!(item instanceof ItemBlock)) continue;
+            addDispatch(new ItemModelBlock((ItemBlock) item));
         }
     }
 }
diff --git a/src/main/java/net/minecraft/client/render/item/model/DoorPaintedItemModel.java b/src/main/java/net/minecraft/client/render/item/model/ItemModelDoorPainted.java
similarity index 89%
rename from src/main/java/net/minecraft/client/render/item/model/DoorPaintedItemModel.java
rename to src/main/java/net/minecraft/client/render/item/model/ItemModelDoorPainted.java
index 8cb52f0af..a40772c34 100644
--- a/src/main/java/net/minecraft/client/render/item/model/DoorPaintedItemModel.java
+++ b/src/main/java/net/minecraft/client/render/item/model/ItemModelDoorPainted.java
@@ -8,14 +8,14 @@ import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.util.helper.DyeColor;
 import org.jetbrains.annotations.NotNull;
 
-public class DoorPaintedItemModel extends StandardItemModel {
+public class ItemModelDoorPainted extends ItemModelStandard {
     public static IconCoordinate[] doorIcons = new IconCoordinate[DyeColor.COLOR_AMOUNT];
     static {
         for (DyeColor c : DyeColor.itemOrderedColors()){
             doorIcons[c.itemMeta] = TextureRegistry.getTexture("minecraft:item/door_" + c.colorID);
         }
     }
-    public DoorPaintedItemModel(Item item) {
+    public ItemModelDoorPainted(Item item) {
         super(item, null);
     }
     public @NotNull IconCoordinate getIcon(Entity entity, ItemStack itemStack){
diff --git a/src/main/java/net/minecraft/client/render/item/model/DyeItemModel.java b/src/main/java/net/minecraft/client/render/item/model/ItemModelDye.java
similarity index 91%
rename from src/main/java/net/minecraft/client/render/item/model/DyeItemModel.java
rename to src/main/java/net/minecraft/client/render/item/model/ItemModelDye.java
index fde28dfa1..575a2c636 100644
--- a/src/main/java/net/minecraft/client/render/item/model/DyeItemModel.java
+++ b/src/main/java/net/minecraft/client/render/item/model/ItemModelDye.java
@@ -9,14 +9,14 @@ import net.minecraft.core.util.helper.DyeColor;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
-public class DyeItemModel extends StandardItemModel {
+public class ItemModelDye extends ItemModelStandard {
     public static IconCoordinate[] dyeIcons = new IconCoordinate[DyeColor.COLOR_AMOUNT];
     static {
         for (DyeColor c : DyeColor.itemOrderedColors()){
             dyeIcons[c.itemMeta] = TextureRegistry.getTexture("minecraft:item/dye_" + c.colorID);
         }
     }
-    public DyeItemModel(Item item) {
+    public ItemModelDye(Item item) {
         super(item, null);
     }
 
diff --git a/src/main/java/net/minecraft/client/render/item/model/FishingRodItemModel.java b/src/main/java/net/minecraft/client/render/item/model/ItemModelFishingRod.java
similarity index 89%
rename from src/main/java/net/minecraft/client/render/item/model/FishingRodItemModel.java
rename to src/main/java/net/minecraft/client/render/item/model/ItemModelFishingRod.java
index 28da971ef..40441a96e 100644
--- a/src/main/java/net/minecraft/client/render/item/model/FishingRodItemModel.java
+++ b/src/main/java/net/minecraft/client/render/item/model/ItemModelFishingRod.java
@@ -9,9 +9,9 @@ import net.minecraft.core.item.ItemStack;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
-public class FishingRodItemModel extends StandardItemModel {
+public class ItemModelFishingRod extends ItemModelStandard {
     protected IconCoordinate rodCast = TextureRegistry.getTexture("minecraft:item/tool_fishingrod_cast");
-    public FishingRodItemModel(Item item, String namespace) {
+    public ItemModelFishingRod(Item item, String namespace) {
         super(item, namespace);
     }
 
diff --git a/src/main/java/net/minecraft/client/render/item/model/LabelItemModel.java b/src/main/java/net/minecraft/client/render/item/model/ItemModelLabel.java
similarity index 87%
rename from src/main/java/net/minecraft/client/render/item/model/LabelItemModel.java
rename to src/main/java/net/minecraft/client/render/item/model/ItemModelLabel.java
index 4a68592b6..28b2fdb10 100644
--- a/src/main/java/net/minecraft/client/render/item/model/LabelItemModel.java
+++ b/src/main/java/net/minecraft/client/render/item/model/ItemModelLabel.java
@@ -8,9 +8,9 @@ import net.minecraft.core.item.ItemStack;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
-public class LabelItemModel extends StandardItemModel {
+public class ItemModelLabel extends ItemModelStandard {
     protected IconCoordinate writtenLabel = TextureRegistry.getTexture("minecraft:item/label_written");
-    public LabelItemModel(Item item, String namespace) {
+    public ItemModelLabel(Item item, String namespace) {
         super(item, namespace);
     }
 
diff --git a/src/main/java/net/minecraft/client/render/item/model/MapItemModel.java b/src/main/java/net/minecraft/client/render/item/model/ItemModelMap.java
similarity index 93%
rename from src/main/java/net/minecraft/client/render/item/model/MapItemModel.java
rename to src/main/java/net/minecraft/client/render/item/model/ItemModelMap.java
index 85de3d540..726e3ac41 100644
--- a/src/main/java/net/minecraft/client/render/item/model/MapItemModel.java
+++ b/src/main/java/net/minecraft/client/render/item/model/ItemModelMap.java
@@ -7,16 +7,16 @@ import net.minecraft.client.render.LightmapHelper;
 import net.minecraft.client.render.MapItemRenderer;
 import net.minecraft.client.render.PlayerSkinParser;
 import net.minecraft.client.render.entity.EntityRenderer;
-import net.minecraft.client.render.entity.PlayerRenderer;
+import net.minecraft.client.render.entity.MobRendererPlayer;
 import net.minecraft.client.render.tessellator.Tessellator;
 import net.minecraft.client.render.texture.stitcher.IconCoordinate;
 import net.minecraft.client.render.texture.stitcher.TextureRegistry;
 import net.minecraft.core.entity.Entity;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.item.Item;
+import net.minecraft.core.item.ItemMap;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.item.Items;
-import net.minecraft.core.item.MapItem;
 import net.minecraft.core.util.helper.MathHelper;
 import net.minecraft.core.world.saveddata.maps.ItemMapSavedData;
 import org.jetbrains.annotations.NotNull;
@@ -24,11 +24,11 @@ import org.jetbrains.annotations.Nullable;
 import org.lwjgl.opengl.GL11;
 import org.lwjgl.opengl.GL12;
 
-public class MapItemModel extends StandardItemModel {
+public class ItemModelMap extends ItemModelStandard {
     private final Minecraft mc = Minecraft.getMinecraft(Minecraft.class);
     private final MapItemRenderer renderMapInstance = new MapItemRenderer(mc.font, mc.gameSettings, mc.textureManager);
 
-    public MapItemModel(Item item, String namespace) {
+    public ItemModelMap(Item item, String namespace) {
         super(item, namespace);
     }
 
@@ -65,7 +65,7 @@ public class MapItemModel extends StandardItemModel {
 
         // Render both player arms
         mc.textureManager.bindDownloadableTexture(mc.thePlayer.skinURL, mc.thePlayer.getEntityTexture(), PlayerSkinParser.instance);
-        PlayerRenderer playerRenderer = (PlayerRenderer) (EntityRenderer<? extends Entity>) EntityRenderDispatcher.instance.getRenderer(mc.thePlayer);
+        MobRendererPlayer playerRenderer = (MobRendererPlayer) (EntityRenderer<? extends Entity>) EntityRenderDispatcher.instance.getRenderer(mc.thePlayer);
 
         GL11.glPushMatrix();
         GL11.glTranslatef(-0F, -0.6F, -1.1F);
@@ -117,7 +117,7 @@ public class MapItemModel extends StandardItemModel {
     }
     @Override
     public @NotNull IconCoordinate getIcon(@Nullable Entity entity, ItemStack itemStack){
-        if (!MapItem.hasInitialized(itemStack)){
+        if (!ItemMap.hasInitialized(itemStack)){
             return TextureRegistry.getTexture("minecraft:item/map_blank");
         }
         return super.getIcon(entity, itemStack);
diff --git a/src/main/java/net/minecraft/client/render/item/model/PaintbrushItemModel.java b/src/main/java/net/minecraft/client/render/item/model/ItemModelPaintbrush.java
similarity index 80%
rename from src/main/java/net/minecraft/client/render/item/model/PaintbrushItemModel.java
rename to src/main/java/net/minecraft/client/render/item/model/ItemModelPaintbrush.java
index e0b5cb18e..beeafa9ff 100644
--- a/src/main/java/net/minecraft/client/render/item/model/PaintbrushItemModel.java
+++ b/src/main/java/net/minecraft/client/render/item/model/ItemModelPaintbrush.java
@@ -1,34 +1,34 @@
-package net.minecraft.client.render.item.model;
-
-import net.minecraft.client.render.texture.stitcher.IconCoordinate;
-import net.minecraft.client.render.texture.stitcher.TextureRegistry;
-import net.minecraft.core.entity.Entity;
-import net.minecraft.core.item.Item;
-import net.minecraft.core.item.ItemStack;
-import net.minecraft.core.item.PaintBrushItem;
-import net.minecraft.core.util.helper.DyeColor;
-import org.jetbrains.annotations.NotNull;
-import org.jetbrains.annotations.Nullable;
-
-public class PaintbrushItemModel extends StandardItemModel {
-    public static IconCoordinate emptyIcon = TextureRegistry.getTexture("minecraft:item/paintbrush");
-    public static IconCoordinate[] paintbrushIcons = new IconCoordinate[DyeColor.COLOR_AMOUNT];
-    static {
-        for (DyeColor c : DyeColor.itemOrderedColors()){
-            paintbrushIcons[c.itemMeta] = TextureRegistry.getTexture("minecraft:item/paintbrush_" + c.colorID);
-        }
-    }
-
-    public PaintbrushItemModel(Item item, String namespace) {
-        super(item, namespace);
-    }
-
-    @Override
-    public @NotNull IconCoordinate getIcon(@Nullable Entity entity, ItemStack itemStack) {
-        final DyeColor color = ((PaintBrushItem) itemStack.getItem()).getColor(itemStack);
-        if (color == null) {
-            return emptyIcon;
-        }
-        return paintbrushIcons[color.itemMeta];
-    }
-}
+package net.minecraft.client.render.item.model;
+
+import net.minecraft.client.render.texture.stitcher.IconCoordinate;
+import net.minecraft.client.render.texture.stitcher.TextureRegistry;
+import net.minecraft.core.entity.Entity;
+import net.minecraft.core.item.Item;
+import net.minecraft.core.item.ItemStack;
+import net.minecraft.core.item.ItemPaintBrush;
+import net.minecraft.core.util.helper.DyeColor;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
+
+public class ItemModelPaintbrush extends ItemModelStandard {
+    public static IconCoordinate emptyIcon = TextureRegistry.getTexture("minecraft:item/paintbrush");
+    public static IconCoordinate[] paintbrushIcons = new IconCoordinate[DyeColor.COLOR_AMOUNT];
+    static {
+        for (DyeColor c : DyeColor.itemOrderedColors()){
+            paintbrushIcons[c.itemMeta] = TextureRegistry.getTexture("minecraft:item/paintbrush_" + c.colorID);
+        }
+    }
+
+    public ItemModelPaintbrush(Item item, String namespace) {
+        super(item, namespace);
+    }
+
+    @Override
+    public @NotNull IconCoordinate getIcon(@Nullable Entity entity, ItemStack itemStack) {
+        final DyeColor color = ((ItemPaintBrush) itemStack.getItem()).getColor(itemStack);
+        if (color == null) {
+            return emptyIcon;
+        }
+        return paintbrushIcons[color.itemMeta];
+    }
+}
diff --git a/src/main/java/net/minecraft/client/render/item/model/QuiverItemModel.java b/src/main/java/net/minecraft/client/render/item/model/ItemModelQuiver.java
similarity index 87%
rename from src/main/java/net/minecraft/client/render/item/model/QuiverItemModel.java
rename to src/main/java/net/minecraft/client/render/item/model/ItemModelQuiver.java
index 6567638d5..fcc90a9e6 100644
--- a/src/main/java/net/minecraft/client/render/item/model/QuiverItemModel.java
+++ b/src/main/java/net/minecraft/client/render/item/model/ItemModelQuiver.java
@@ -8,9 +8,9 @@ import net.minecraft.core.item.ItemStack;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
-public class QuiverItemModel extends StandardItemModel {
+public class ItemModelQuiver extends ItemModelStandard {
     protected IconCoordinate quiverFull = TextureRegistry.getTexture("minecraft:item/armor_quiver_empty");
-    public QuiverItemModel(Item item, String namespace) {
+    public ItemModelQuiver(Item item, String namespace) {
         super(item, namespace);
     }
 
diff --git a/src/main/java/net/minecraft/client/render/item/model/StandardItemModel.java b/src/main/java/net/minecraft/client/render/item/model/ItemModelStandard.java
similarity index 98%
rename from src/main/java/net/minecraft/client/render/item/model/StandardItemModel.java
rename to src/main/java/net/minecraft/client/render/item/model/ItemModelStandard.java
index 699ee6cbc..2493fe0d4 100644
--- a/src/main/java/net/minecraft/client/render/item/model/StandardItemModel.java
+++ b/src/main/java/net/minecraft/client/render/item/model/ItemModelStandard.java
@@ -38,7 +38,7 @@ import static org.lwjgl.opengl.GL11.glRotated;
 import static org.lwjgl.opengl.GL11.glScaled;
 import static org.lwjgl.opengl.GL11.glTranslated;
 
-public class StandardItemModel extends ItemModel{
+public class ItemModelStandard extends ItemModel{
     final Minecraft mc = Minecraft.getMinecraft(Minecraft.class);
     public static final IconCoordinate ITEM_TEXTURE_MISSING = TextureRegistry.getTexture("minecraft:item/texture_missing");
     public static final IconCoordinate ITEM_TEXTURE_UNASSIGNED = TextureRegistry.getTexture("minecraft:item/texture_unassigned");
@@ -49,7 +49,7 @@ public class StandardItemModel extends ItemModel{
     protected boolean pointInfrontOfPlayer = false;
     protected boolean itemfullBright = false;
 
-    public StandardItemModel(Item item, String namespace) {
+    public ItemModelStandard(Item item, String namespace) {
         super(item);
         if (namespace != null){
             icon = TextureRegistry.getTexture(namespace + ":item/" + item.getKey().substring("item.".length()).replace(".", "_"));
@@ -464,22 +464,22 @@ public class StandardItemModel extends ItemModel{
 
     }
 
-    public StandardItemModel setFull3D()
+    public ItemModelStandard setFull3D()
     {
         bFull3D = true;
         return this;
     }
-    public StandardItemModel setRotateWhenRendering()
+    public ItemModelStandard setRotateWhenRendering()
     {
         rotateWhenRendering = true;
         return this;
     }
-    public StandardItemModel setPointInfrontOfPlayer()
+    public ItemModelStandard setPointInfrontOfPlayer()
     {
         pointInfrontOfPlayer = true;
         return this;
     }
-    public StandardItemModel setFullBright()
+    public ItemModelStandard setFullBright()
     {
         itemfullBright = true;
         return this;
diff --git a/src/main/java/net/minecraft/client/render/model/Cube.java b/src/main/java/net/minecraft/client/render/model/Cube.java
index 1e80c0e0f..9de2dcf52 100644
--- a/src/main/java/net/minecraft/client/render/model/Cube.java
+++ b/src/main/java/net/minecraft/client/render/model/Cube.java
@@ -141,7 +141,7 @@ public class Cube
         if(mirror)
         {
             for (Polygon face : polygons) {
-                face.mirrorU();
+                face.mirror();
             }
         }
     }
diff --git a/src/main/java/net/minecraft/client/render/model/BaseModel.java b/src/main/java/net/minecraft/client/render/model/ModelBase.java
similarity index 91%
rename from src/main/java/net/minecraft/client/render/model/BaseModel.java
rename to src/main/java/net/minecraft/client/render/model/ModelBase.java
index fa5a0c5a3..714fada2c 100644
--- a/src/main/java/net/minecraft/client/render/model/BaseModel.java
+++ b/src/main/java/net/minecraft/client/render/model/ModelBase.java
@@ -2,10 +2,10 @@ package net.minecraft.client.render.model;
 
 import net.minecraft.core.entity.Mob;
 
-public abstract class BaseModel
+public abstract class ModelBase
 {
 
-    public BaseModel()
+    public ModelBase()
     {
         isRiding = false;
     }
diff --git a/src/main/java/net/minecraft/client/render/model/BipedModel.java b/src/main/java/net/minecraft/client/render/model/ModelBiped.java
similarity index 96%
rename from src/main/java/net/minecraft/client/render/model/BipedModel.java
rename to src/main/java/net/minecraft/client/render/model/ModelBiped.java
index 959de6707..fc7abcc7e 100644
--- a/src/main/java/net/minecraft/client/render/model/BipedModel.java
+++ b/src/main/java/net/minecraft/client/render/model/ModelBiped.java
@@ -2,11 +2,11 @@ package net.minecraft.client.render.model;
 
 
 // Referenced classes of package net.minecraft.src:
-//            BaseModel, ModelRenderer, MathHelper
+//            ModelBase, ModelRenderer, MathHelper
 
 import net.minecraft.core.util.helper.MathHelper;
 
-public class BipedModel extends BaseModel
+public class ModelBiped extends ModelBase
 {
     public Cube head;
     public Cube hair;
@@ -23,17 +23,17 @@ public class BipedModel extends BaseModel
     public boolean sneaking;
 
 
-    public BipedModel()
+    public ModelBiped()
     {
         this(0.0F);
     }
 
-    public BipedModel(float expansion)
+    public ModelBiped(float expansion)
     {
         this(expansion, 0.0F);
     }
 
-    public BipedModel(float expansion, float yRotOffset)
+    public ModelBiped(float expansion, float yRotOffset)
     {
         holdingLeftHand = false;
         holdingRightHand = false;
diff --git a/src/main/java/net/minecraft/client/render/model/BoatModel.java b/src/main/java/net/minecraft/client/render/model/ModelBoat.java
similarity index 94%
rename from src/main/java/net/minecraft/client/render/model/BoatModel.java
rename to src/main/java/net/minecraft/client/render/model/ModelBoat.java
index a2f287f7f..7c5fb9a3d 100644
--- a/src/main/java/net/minecraft/client/render/model/BoatModel.java
+++ b/src/main/java/net/minecraft/client/render/model/ModelBoat.java
@@ -2,14 +2,14 @@ package net.minecraft.client.render.model;
 
 
 // Referenced classes of package net.minecraft.src:
-//            BaseModel, ModelRenderer
+//            ModelBase, ModelRenderer
 
 import net.minecraft.core.util.helper.MathHelper;
 
-public class BoatModel extends BaseModel
+public class ModelBoat extends ModelBase
 {
     public Cube[] boatSides;
-    public BoatModel()
+    public ModelBoat()
     {
         boatSides = new Cube[5];
         boatSides[0] = new Cube(0, 8);
diff --git a/src/main/java/net/minecraft/client/render/model/CannonballModel.java b/src/main/java/net/minecraft/client/render/model/ModelCannonball.java
similarity index 83%
rename from src/main/java/net/minecraft/client/render/model/CannonballModel.java
rename to src/main/java/net/minecraft/client/render/model/ModelCannonball.java
index 9e2da7dce..6defaba13 100644
--- a/src/main/java/net/minecraft/client/render/model/CannonballModel.java
+++ b/src/main/java/net/minecraft/client/render/model/ModelCannonball.java
@@ -2,12 +2,12 @@ package net.minecraft.client.render.model;
 
 
 // Referenced classes of package net.minecraft.src:
-//            BaseModel, ModelRenderer
+//            ModelBase, ModelRenderer
 
-public class CannonballModel extends BaseModel
+public class ModelCannonball extends ModelBase
 {
 
-    public CannonballModel()
+    public ModelCannonball()
     {
         ball = new Cube(0, 0);
         ball.addBox(0F, 0F, 0F, 8, 8, 8);
diff --git a/src/main/java/net/minecraft/client/render/model/ChickenModel.java b/src/main/java/net/minecraft/client/render/model/ModelChicken.java
similarity index 95%
rename from src/main/java/net/minecraft/client/render/model/ChickenModel.java
rename to src/main/java/net/minecraft/client/render/model/ModelChicken.java
index 58046c1b0..b1d9d2a0c 100644
--- a/src/main/java/net/minecraft/client/render/model/ChickenModel.java
+++ b/src/main/java/net/minecraft/client/render/model/ModelChicken.java
@@ -2,11 +2,11 @@ package net.minecraft.client.render.model;
 
 
 // Referenced classes of package net.minecraft.src:
-//            BaseModel, ModelRenderer, MathHelper
+//            ModelBase, ModelRenderer, MathHelper
 
 import net.minecraft.core.util.helper.MathHelper;
 
-public class ChickenModel extends BaseModel
+public class ModelChicken extends ModelBase
 {
     public Cube head;
     public Cube body;
@@ -18,7 +18,7 @@ public class ChickenModel extends BaseModel
     public Cube chin;
 
 
-    public ChickenModel()
+    public ModelChicken()
     {
         byte yOff = 16;
         head = new Cube(0, 0);
diff --git a/src/main/java/net/minecraft/client/render/model/CowModel.java b/src/main/java/net/minecraft/client/render/model/ModelCow.java
similarity index 94%
rename from src/main/java/net/minecraft/client/render/model/CowModel.java
rename to src/main/java/net/minecraft/client/render/model/ModelCow.java
index c591dd67e..b78ed52c9 100644
--- a/src/main/java/net/minecraft/client/render/model/CowModel.java
+++ b/src/main/java/net/minecraft/client/render/model/ModelCow.java
@@ -2,18 +2,18 @@ package net.minecraft.client.render.model;
 
 
 // Referenced classes of package net.minecraft.src:
-//            QuadrupedModel, ModelRenderer
+//            ModelQuadruped, ModelRenderer
 
 import net.minecraft.core.util.helper.MathHelper;
 
-public class CowModel extends QuadrupedModel
+public class ModelCow extends ModelQuadruped
 {
     Cube udders;
     Cube horn1;
     Cube horn2;
 
 
-    public CowModel()
+    public ModelCow()
     {
         super(12, 0.0F);
         head = new Cube(0, 0);
diff --git a/src/main/java/net/minecraft/client/render/model/CreeperModel.java b/src/main/java/net/minecraft/client/render/model/ModelCreeper.java
similarity index 93%
rename from src/main/java/net/minecraft/client/render/model/CreeperModel.java
rename to src/main/java/net/minecraft/client/render/model/ModelCreeper.java
index de86dc9be..e86fefeb5 100644
--- a/src/main/java/net/minecraft/client/render/model/CreeperModel.java
+++ b/src/main/java/net/minecraft/client/render/model/ModelCreeper.java
@@ -2,11 +2,11 @@ package net.minecraft.client.render.model;
 
 
 // Referenced classes of package net.minecraft.src:
-//            BaseModel, ModelRenderer, MathHelper
+//            ModelBase, ModelRenderer, MathHelper
 
 import net.minecraft.core.util.helper.MathHelper;
 
-public class CreeperModel extends BaseModel
+public class ModelCreeper extends ModelBase
 {
     public Cube head;
     public Cube hair;
@@ -17,12 +17,12 @@ public class CreeperModel extends BaseModel
     public Cube leg4;
 
 
-    public CreeperModel()
+    public ModelCreeper()
     {
         this(0.0F);
     }
 
-    public CreeperModel(float expansion)
+    public ModelCreeper(float expansion)
     {
         int yOff = 4;
         head = new Cube(0, 0);
diff --git a/src/main/java/net/minecraft/client/render/model/FlagModel.java b/src/main/java/net/minecraft/client/render/model/ModelFlag.java
similarity index 95%
rename from src/main/java/net/minecraft/client/render/model/FlagModel.java
rename to src/main/java/net/minecraft/client/render/model/ModelFlag.java
index 5660ec454..e27508e4b 100644
--- a/src/main/java/net/minecraft/client/render/model/FlagModel.java
+++ b/src/main/java/net/minecraft/client/render/model/ModelFlag.java
@@ -2,14 +2,14 @@ package net.minecraft.client.render.model;
 
 import net.minecraft.client.render.Polygon;
 
-public class FlagModel {
+public class ModelFlag {
     public Cube flagPole;
     public Cube flagPoleShort;
     public Cube flag;
     public Cube flagOverlay;
     public Cube flagBase;
 
-    public FlagModel(boolean mirrored)
+    public ModelFlag(boolean mirrored)
     {
         flagPole = new Cube(0, 0, 64, 48);
         flagPole.addBox(-1F, -22F, -1F, 2, 33, 2, 0.0F);
diff --git a/src/main/java/net/minecraft/client/render/model/BaseFlagModel.java b/src/main/java/net/minecraft/client/render/model/ModelFlagBase.java
similarity index 81%
rename from src/main/java/net/minecraft/client/render/model/BaseFlagModel.java
rename to src/main/java/net/minecraft/client/render/model/ModelFlagBase.java
index 61108cea2..7b5a5d2d4 100644
--- a/src/main/java/net/minecraft/client/render/model/BaseFlagModel.java
+++ b/src/main/java/net/minecraft/client/render/model/ModelFlagBase.java
@@ -1,9 +1,9 @@
 package net.minecraft.client.render.model;
 
-public class BaseFlagModel {
+public class ModelFlagBase {
     public Cube flagBase;
 
-    public BaseFlagModel()
+    public ModelFlagBase()
     {
         flagBase = new Cube(0, 0);
         flagBase.addBox(-2F, 10F, -2F, 4, 2, 4, 0.0F);
diff --git a/src/main/java/net/minecraft/client/render/model/GhastModel.java b/src/main/java/net/minecraft/client/render/model/ModelGhast.java
similarity index 93%
rename from src/main/java/net/minecraft/client/render/model/GhastModel.java
rename to src/main/java/net/minecraft/client/render/model/ModelGhast.java
index e133d69be..d71139133 100644
--- a/src/main/java/net/minecraft/client/render/model/GhastModel.java
+++ b/src/main/java/net/minecraft/client/render/model/ModelGhast.java
@@ -5,15 +5,15 @@ import net.minecraft.core.util.helper.MathHelper;
 import java.util.Random;
 
 // Referenced classes of package net.minecraft.src:
-//            BaseModel, ModelRenderer, MathHelper
+//            ModelBase, ModelRenderer, MathHelper
 
-public class GhastModel extends BaseModel
+public class ModelGhast extends ModelBase
 {
 
     Cube body;
     Cube[] tentacles;
 
-    public GhastModel()
+    public ModelGhast()
     {
         tentacles = new Cube[9];
         byte yOff = -16;
diff --git a/src/main/java/net/minecraft/client/render/model/MinecartModel.java b/src/main/java/net/minecraft/client/render/model/ModelMinecart.java
similarity index 95%
rename from src/main/java/net/minecraft/client/render/model/MinecartModel.java
rename to src/main/java/net/minecraft/client/render/model/ModelMinecart.java
index f18602867..f02f6b282 100644
--- a/src/main/java/net/minecraft/client/render/model/MinecartModel.java
+++ b/src/main/java/net/minecraft/client/render/model/ModelMinecart.java
@@ -2,14 +2,14 @@ package net.minecraft.client.render.model;
 
 
 // Referenced classes of package net.minecraft.src:
-//            BaseModel, ModelRenderer
+//            ModelBase, ModelRenderer
 
 import net.minecraft.core.util.helper.MathHelper;
 
-public class MinecartModel extends BaseModel
+public class ModelMinecart extends ModelBase
 {
 
-    public MinecartModel()
+    public ModelMinecart()
     {
         sideModels = new Cube[7];
         sideModels[0] = new Cube(0, 10);
diff --git a/src/main/java/net/minecraft/client/render/model/PigModel.java b/src/main/java/net/minecraft/client/render/model/ModelPig.java
similarity index 87%
rename from src/main/java/net/minecraft/client/render/model/PigModel.java
rename to src/main/java/net/minecraft/client/render/model/ModelPig.java
index c0098cf0a..d5017e0a7 100644
--- a/src/main/java/net/minecraft/client/render/model/PigModel.java
+++ b/src/main/java/net/minecraft/client/render/model/ModelPig.java
@@ -2,17 +2,17 @@ package net.minecraft.client.render.model;
 
 
 // Referenced classes of package net.minecraft.src:
-//            QuadrupedModel
+//            ModelQuadruped
 
-public class PigModel extends QuadrupedModel
+public class ModelPig extends ModelQuadruped
 {
 
-    public PigModel()
+    public ModelPig()
     {
         this(0.0F);
     }
 
-    public PigModel(float f)
+    public ModelPig(float f)
     {
         super(6, f);
         nose = new Cube(16, 16);
diff --git a/src/main/java/net/minecraft/client/render/model/PlayerModel.java b/src/main/java/net/minecraft/client/render/model/ModelPlayer.java
similarity index 96%
rename from src/main/java/net/minecraft/client/render/model/PlayerModel.java
rename to src/main/java/net/minecraft/client/render/model/ModelPlayer.java
index 3cdb2183e..96d2c46a6 100644
--- a/src/main/java/net/minecraft/client/render/model/PlayerModel.java
+++ b/src/main/java/net/minecraft/client/render/model/ModelPlayer.java
@@ -2,7 +2,7 @@ package net.minecraft.client.render.model;
 
 import org.lwjgl.opengl.GL11;
 
-public class PlayerModel extends BipedModel {
+public class ModelPlayer extends ModelBiped {
 
     public Cube bipedLeftArmOverlay;
     public Cube bipedRightArmOverlay;
@@ -10,11 +10,11 @@ public class PlayerModel extends BipedModel {
     public Cube bipedRightLegOverlay;
     public Cube bipedBodyOverlay;
 
-    public PlayerModel(float expansion){
+    public ModelPlayer(float expansion){
         this(expansion, 0.0F);
     }
 
-    public PlayerModel(float expansion, float yRotOffset){
+    public ModelPlayer(float expansion, float yRotOffset){
         holdingLeftHand = false;
         holdingRightHand = false;
         sneaking = false;
diff --git a/src/main/java/net/minecraft/client/render/model/PlayerSlimModel.java b/src/main/java/net/minecraft/client/render/model/ModelPlayerSlim.java
similarity index 85%
rename from src/main/java/net/minecraft/client/render/model/PlayerSlimModel.java
rename to src/main/java/net/minecraft/client/render/model/ModelPlayerSlim.java
index 0e8645d01..12b34f5a5 100644
--- a/src/main/java/net/minecraft/client/render/model/PlayerSlimModel.java
+++ b/src/main/java/net/minecraft/client/render/model/ModelPlayerSlim.java
@@ -1,12 +1,12 @@
 package net.minecraft.client.render.model;
 
-public class PlayerSlimModel extends PlayerModel {
+public class ModelPlayerSlim extends ModelPlayer {
 
-    public PlayerSlimModel(float f) {
+    public ModelPlayerSlim(float f) {
         this(f, 0f);
     }
 
-    public PlayerSlimModel(float expansion, float yRotOffset){
+    public ModelPlayerSlim(float expansion, float yRotOffset){
         super(expansion, yRotOffset);
         bipedLeftArmOverlay = new Cube(48, 48, 64, 64);
         bipedLeftArmOverlay.addBox(-1.0F, -2.0F, -2.0F, 3, 12, 4, expansion + 0.25F);
diff --git a/src/main/java/net/minecraft/client/render/model/QuadrupedModel.java b/src/main/java/net/minecraft/client/render/model/ModelQuadruped.java
similarity index 93%
rename from src/main/java/net/minecraft/client/render/model/QuadrupedModel.java
rename to src/main/java/net/minecraft/client/render/model/ModelQuadruped.java
index d089d3f13..6e8bc6733 100644
--- a/src/main/java/net/minecraft/client/render/model/QuadrupedModel.java
+++ b/src/main/java/net/minecraft/client/render/model/ModelQuadruped.java
@@ -2,14 +2,14 @@ package net.minecraft.client.render.model;
 
 
 // Referenced classes of package net.minecraft.src:
-//            BaseModel, ModelRenderer, MathHelper
+//            ModelBase, ModelRenderer, MathHelper
 
 import net.minecraft.core.util.helper.MathHelper;
 
-public class QuadrupedModel extends BaseModel
+public class ModelQuadruped extends ModelBase
 {
 
-    public QuadrupedModel(int i, float f)
+    public ModelQuadruped(int i, float f)
     {
         head = new Cube(0, 0);
         head.addBox(-4F, -4F, -8F, 8, 8, 8, f);
diff --git a/src/main/java/net/minecraft/client/render/model/ScorpionModel.java b/src/main/java/net/minecraft/client/render/model/ModelScorpion.java
similarity index 98%
rename from src/main/java/net/minecraft/client/render/model/ScorpionModel.java
rename to src/main/java/net/minecraft/client/render/model/ModelScorpion.java
index 285c2405d..c3c869bed 100644
--- a/src/main/java/net/minecraft/client/render/model/ScorpionModel.java
+++ b/src/main/java/net/minecraft/client/render/model/ModelScorpion.java
@@ -3,7 +3,7 @@ package net.minecraft.client.render.model;
 import net.minecraft.core.util.helper.MathHelper;
 import org.lwjgl.opengl.GL11;
 
-public class ScorpionModel extends BaseModel
+public class ModelScorpion extends ModelBase
 {
     private final Cube body;
     private final Cube clawLeft;
@@ -19,7 +19,7 @@ public class ScorpionModel extends BaseModel
     private final Cube tail2;
 
 
-    public ScorpionModel()
+    public ModelScorpion()
     {
         body = new Cube(0, 0);
         body.addBox(-2.5F, -4.0F, -5.0F, 5, 3, 10);
diff --git a/src/main/java/net/minecraft/client/render/model/SheepModel.java b/src/main/java/net/minecraft/client/render/model/ModelSheep.java
similarity index 93%
rename from src/main/java/net/minecraft/client/render/model/SheepModel.java
rename to src/main/java/net/minecraft/client/render/model/ModelSheep.java
index 3d8acb520..eaf5889b6 100644
--- a/src/main/java/net/minecraft/client/render/model/SheepModel.java
+++ b/src/main/java/net/minecraft/client/render/model/ModelSheep.java
@@ -2,16 +2,16 @@ package net.minecraft.client.render.model;
 
 
 // Referenced classes of package net.minecraft.src:
-//            QuadrupedModel, ModelRenderer
+//            ModelQuadruped, ModelRenderer
 
 import net.minecraft.core.entity.Mob;
-import net.minecraft.core.entity.animal.SheepMob;
+import net.minecraft.core.entity.animal.MobSheep;
 import net.minecraft.core.util.helper.MathHelper;
 
-public class SheepModel extends QuadrupedModel
+public class ModelSheep extends ModelQuadruped
 {
 
-    public SheepModel()
+    public ModelSheep()
     {
         super(12, 0.0F);
         head = new Cube(0, 0);
@@ -63,7 +63,7 @@ public class SheepModel extends QuadrupedModel
     @Override
     public void setLivingAnimations(Mob mob, float limbSwing, float limbYaw, float partialTick)
     {
-        SheepMob entitySheep = (SheepMob) mob;
+        MobSheep entitySheep = (MobSheep) mob;
         head.y = 6F;
         isEatingAnimPlaying = false;
         if(entitySheep.getIsSheepEating())
diff --git a/src/main/java/net/minecraft/client/render/model/SheepOverlayModel.java b/src/main/java/net/minecraft/client/render/model/ModelSheepOverlay.java
similarity index 71%
rename from src/main/java/net/minecraft/client/render/model/SheepOverlayModel.java
rename to src/main/java/net/minecraft/client/render/model/ModelSheepOverlay.java
index 5c3034c99..a3b63114f 100644
--- a/src/main/java/net/minecraft/client/render/model/SheepOverlayModel.java
+++ b/src/main/java/net/minecraft/client/render/model/ModelSheepOverlay.java
@@ -2,19 +2,19 @@ package net.minecraft.client.render.model;
 
 
 // Referenced classes of package net.minecraft.src:
-//            QuadrupedModel, ModelRenderer
+//            ModelQuadruped, ModelRenderer
 
 import net.minecraft.client.render.LightmapHelper;
 import net.minecraft.core.Global;
 import net.minecraft.core.entity.Mob;
-import net.minecraft.core.entity.animal.SheepMob;
+import net.minecraft.core.entity.animal.MobSheep;
 import org.lwjgl.opengl.GL11;
 
-public class SheepOverlayModel extends SheepModel
+public class ModelSheepOverlay extends ModelSheep
 {
     Mob sheep;
 
-    public SheepOverlayModel()
+    public ModelSheepOverlay()
     {
         super();
     }
@@ -26,8 +26,8 @@ public class SheepOverlayModel extends SheepModel
         this.sheep = mob;
         float brightness = sheep.getBrightness(limbSwing);
         if (Global.accessor.isFullbrightEnabled() || LightmapHelper.isLightmapEnabled()) brightness = 1.0f;
-        int j = ((SheepMob)sheep).getFleeceColor().blockMeta;
-        GL11.glColor3f(brightness * SheepMob.FLEECE_COLOR_TABLE[j][0], brightness * SheepMob.FLEECE_COLOR_TABLE[j][1], brightness * SheepMob.FLEECE_COLOR_TABLE[j][2]);
+        int j = ((MobSheep)sheep).getFleeceColor().blockMeta;
+        GL11.glColor3f(brightness * MobSheep.FLEECE_COLOR_TABLE[j][0], brightness * MobSheep.FLEECE_COLOR_TABLE[j][1], brightness * MobSheep.FLEECE_COLOR_TABLE[j][2]);
 
     }
 
diff --git a/src/main/java/net/minecraft/client/render/model/SheepWoolModel.java b/src/main/java/net/minecraft/client/render/model/ModelSheepWool.java
similarity index 88%
rename from src/main/java/net/minecraft/client/render/model/SheepWoolModel.java
rename to src/main/java/net/minecraft/client/render/model/ModelSheepWool.java
index de73c81e2..f71921810 100644
--- a/src/main/java/net/minecraft/client/render/model/SheepWoolModel.java
+++ b/src/main/java/net/minecraft/client/render/model/ModelSheepWool.java
@@ -2,12 +2,12 @@ package net.minecraft.client.render.model;
 
 
 // Referenced classes of package net.minecraft.src:
-//            QuadrupedModel, ModelRenderer
+//            ModelQuadruped, ModelRenderer
 
-public class SheepWoolModel extends SheepModel
+public class ModelSheepWool extends ModelSheep
 {
 
-    public SheepWoolModel()
+    public ModelSheepWool()
     {
         head = new Cube(0, 0);
         head.addBox(-3F, -4F, -4F, 6, 6, 6, 0.6F);
diff --git a/src/main/java/net/minecraft/client/render/model/SignModel.java b/src/main/java/net/minecraft/client/render/model/ModelSign.java
similarity index 91%
rename from src/main/java/net/minecraft/client/render/model/SignModel.java
rename to src/main/java/net/minecraft/client/render/model/ModelSign.java
index 7d3dfddaf..d5bfce78f 100644
--- a/src/main/java/net/minecraft/client/render/model/SignModel.java
+++ b/src/main/java/net/minecraft/client/render/model/ModelSign.java
@@ -4,10 +4,10 @@ package net.minecraft.client.render.model;
 // Referenced classes of package net.minecraft.src:
 //            ModelRenderer
 
-public class SignModel
+public class ModelSign
 {
 
-    public SignModel()
+    public ModelSign()
     {
         signBoard = new Cube(0, 0);
         signBoard.addBox(-12F, -14F, -1F, 24, 12, 2, 0.0F);
diff --git a/src/main/java/net/minecraft/client/render/model/SkeletonModel.java b/src/main/java/net/minecraft/client/render/model/ModelSkeleton.java
similarity index 86%
rename from src/main/java/net/minecraft/client/render/model/SkeletonModel.java
rename to src/main/java/net/minecraft/client/render/model/ModelSkeleton.java
index 34f3d82fb..5f14c77f6 100644
--- a/src/main/java/net/minecraft/client/render/model/SkeletonModel.java
+++ b/src/main/java/net/minecraft/client/render/model/ModelSkeleton.java
@@ -2,12 +2,12 @@ package net.minecraft.client.render.model;
 
 
 // Referenced classes of package net.minecraft.src:
-//            ZombieModel, ModelRenderer
+//            ModelZombie, ModelRenderer
 
-public class SkeletonModel extends ZombieModel
+public class ModelSkeleton extends ModelZombie
 {
 
-    public SkeletonModel()
+    public ModelSkeleton()
     {
         float f = 0.0F;
         armRight = new Cube(40, 16);
diff --git a/src/main/java/net/minecraft/client/render/model/SlimeModel.java b/src/main/java/net/minecraft/client/render/model/ModelSlime.java
similarity index 92%
rename from src/main/java/net/minecraft/client/render/model/SlimeModel.java
rename to src/main/java/net/minecraft/client/render/model/ModelSlime.java
index f025a7e14..6f21a48e8 100644
--- a/src/main/java/net/minecraft/client/render/model/SlimeModel.java
+++ b/src/main/java/net/minecraft/client/render/model/ModelSlime.java
@@ -2,12 +2,12 @@ package net.minecraft.client.render.model;
 
 
 // Referenced classes of package net.minecraft.src:
-//            BaseModel, ModelRenderer
+//            ModelBase, ModelRenderer
 
-public class SlimeModel extends BaseModel
+public class ModelSlime extends ModelBase
 {
 
-    public SlimeModel(int i)
+    public ModelSlime(int i)
     {
         slimeBodies = new Cube(0, i);
         slimeBodies.addBox(-4F, 16F, -4F, 8, 8, 8);
diff --git a/src/main/java/net/minecraft/client/render/model/SpiderModel.java b/src/main/java/net/minecraft/client/render/model/ModelSpider.java
similarity index 97%
rename from src/main/java/net/minecraft/client/render/model/SpiderModel.java
rename to src/main/java/net/minecraft/client/render/model/ModelSpider.java
index 833a973bc..90a48e53a 100644
--- a/src/main/java/net/minecraft/client/render/model/SpiderModel.java
+++ b/src/main/java/net/minecraft/client/render/model/ModelSpider.java
@@ -2,11 +2,11 @@ package net.minecraft.client.render.model;
 
 
 // Referenced classes of package net.minecraft.src:
-//            BaseModel, ModelRenderer, MathHelper
+//            ModelBase, ModelRenderer, MathHelper
 
 import net.minecraft.core.util.helper.MathHelper;
 
-public class SpiderModel extends BaseModel
+public class ModelSpider extends ModelBase
 {
     public Cube spiderHead;
     public Cube spiderNeck;
@@ -21,7 +21,7 @@ public class SpiderModel extends BaseModel
     public Cube spiderLeg8;
 
 
-    public SpiderModel(float expandAmount)
+    public ModelSpider(float expandAmount)
     {
         int yOff = 15;
         spiderHead = new Cube(32, 4);
diff --git a/src/main/java/net/minecraft/client/render/model/SquidModel.java b/src/main/java/net/minecraft/client/render/model/ModelSquid.java
similarity index 94%
rename from src/main/java/net/minecraft/client/render/model/SquidModel.java
rename to src/main/java/net/minecraft/client/render/model/ModelSquid.java
index 0e65edec1..f80a81968 100644
--- a/src/main/java/net/minecraft/client/render/model/SquidModel.java
+++ b/src/main/java/net/minecraft/client/render/model/ModelSquid.java
@@ -2,12 +2,12 @@ package net.minecraft.client.render.model;
 
 
 // Referenced classes of package net.minecraft.src:
-//            BaseModel, ModelRenderer
+//            ModelBase, ModelRenderer
 
-public class SquidModel extends BaseModel
+public class ModelSquid extends ModelBase
 {
 
-    public SquidModel()
+    public ModelSquid()
     {
         squidTentacles = new Cube[8];
         byte yOffs = -16;
diff --git a/src/main/java/net/minecraft/client/render/model/WolfModel.java b/src/main/java/net/minecraft/client/render/model/ModelWolf.java
similarity index 96%
rename from src/main/java/net/minecraft/client/render/model/WolfModel.java
rename to src/main/java/net/minecraft/client/render/model/ModelWolf.java
index d2898284a..3dc9a884a 100644
--- a/src/main/java/net/minecraft/client/render/model/WolfModel.java
+++ b/src/main/java/net/minecraft/client/render/model/ModelWolf.java
@@ -3,18 +3,18 @@ package net.minecraft.client.render.model;
 import net.minecraft.client.render.LightmapHelper;
 import net.minecraft.core.Global;
 import net.minecraft.core.entity.Mob;
-import net.minecraft.core.entity.animal.WolfMob;
+import net.minecraft.core.entity.animal.MobWolf;
 import net.minecraft.core.util.helper.MathHelper;
 import org.lwjgl.opengl.GL11;
 
 // Referenced classes of package net.minecraft.src:
-//            BaseModel, ModelRenderer, WolfMob, MathHelper,
+//            ModelBase, ModelRenderer, MobWolf, MathHelper,
 //            Mob
 
-public class WolfModel extends BaseModel
+public class ModelWolf extends ModelBase
 {
 
-    public WolfModel(float expandAmount)
+    public ModelWolf(float expandAmount)
     {
         float f1 = 13.5F;
         wolfHeadMain = new Cube(0, 0);
@@ -73,7 +73,7 @@ public class WolfModel extends BaseModel
     @Override
     public void setLivingAnimations(Mob mob, float limbSwing, float limbYaw, float partialTick)
     {
-        WolfMob entitywolf = (WolfMob) mob;
+        MobWolf entitywolf = (MobWolf) mob;
         if(entitywolf.isWolfAngry())
         {
             wolfTail.yRot = 0.0F;
diff --git a/src/main/java/net/minecraft/client/render/model/ZombieModel.java b/src/main/java/net/minecraft/client/render/model/ModelZombie.java
similarity index 94%
rename from src/main/java/net/minecraft/client/render/model/ZombieModel.java
rename to src/main/java/net/minecraft/client/render/model/ModelZombie.java
index 942e0cfa8..d46280adc 100644
--- a/src/main/java/net/minecraft/client/render/model/ZombieModel.java
+++ b/src/main/java/net/minecraft/client/render/model/ModelZombie.java
@@ -2,16 +2,16 @@ package net.minecraft.client.render.model;
 
 
 // Referenced classes of package net.minecraft.src:
-//            BipedModel, MathHelper, ModelRenderer
+//            ModelBiped, MathHelper, ModelRenderer
 
 import net.minecraft.core.util.helper.MathHelper;
 
-public class ZombieModel extends BipedModel {
-    public ZombieModel() {
+public class ModelZombie extends ModelBiped {
+    public ModelZombie() {
         this(0.0F);
     }
 
-    public ZombieModel(float var1) {
+    public ModelZombie(float var1) {
         this.parts(var1, 0.0F);
     }
 
diff --git a/src/main/java/net/minecraft/client/render/shader/PhotoModeRenderer.java b/src/main/java/net/minecraft/client/render/shader/PhotoModeRenderer.java
index 0c5c34dde..1521e22b7 100644
--- a/src/main/java/net/minecraft/client/render/shader/PhotoModeRenderer.java
+++ b/src/main/java/net/minecraft/client/render/shader/PhotoModeRenderer.java
@@ -1,17 +1,17 @@
 package net.minecraft.client.render.shader;
 
 import net.minecraft.client.Minecraft;
-import net.minecraft.client.gui.PhotoModeScreen;
+import net.minecraft.client.gui.ScreenPhotoMode;
 
 public class PhotoModeRenderer extends ShadersRenderer {
 
 	public static final String[] shaders = new String[] { null, "blur", "silhouette", "vignette", "tiltshift", "outline", "outline2", "eerie", "sepia", "inverted", "distantblur" };
 
-	public final PhotoModeScreen screen;
+	public final ScreenPhotoMode screen;
 
 	private int selectedShader = 0;
 
-	public PhotoModeRenderer(Minecraft minecraft, PhotoModeScreen screen) {
+	public PhotoModeRenderer(Minecraft minecraft, ScreenPhotoMode screen) {
 		super(minecraft);
 
 		this.screen = screen;
diff --git a/src/main/java/net/minecraft/client/render/shader/Shaders.java b/src/main/java/net/minecraft/client/render/shader/Shaders.java
index 9314f3eb7..0c0a42649 100644
--- a/src/main/java/net/minecraft/client/render/shader/Shaders.java
+++ b/src/main/java/net/minecraft/client/render/shader/Shaders.java
@@ -4,7 +4,7 @@ package net.minecraft.client.render.shader;
 import static org.lwjgl.opengl.GL11.*;
 
 import net.minecraft.client.Minecraft;
-import net.minecraft.client.gui.PhotoModeScreen;
+import net.minecraft.client.gui.ScreenPhotoMode;
 import net.minecraft.client.render.camera.CameraUtil;
 import net.minecraft.core.block.material.Material;
 
@@ -103,12 +103,12 @@ public abstract class Shaders {
 			shader.uniformFloat("gMod", 1.0f);
 			shader.uniformFloat("bMod", 1.0f);
 		}
-		shader.uniformFloat("photoMode", minecraft.currentScreen instanceof PhotoModeScreen);
+		shader.uniformFloat("photoMode", minecraft.currentScreen instanceof ScreenPhotoMode);
 		shader.uniformFloat("guiOpened", minecraft.currentScreen != null);
 		
-		if(minecraft.currentScreen instanceof PhotoModeScreen) {
-			PhotoModeScreen photoModeScreen = (PhotoModeScreen) minecraft.currentScreen;
-			shader.uniformFloat("intensity", photoModeScreen.intensityValue);
+		if(minecraft.currentScreen instanceof ScreenPhotoMode) {
+			ScreenPhotoMode screenPhotoMode = (ScreenPhotoMode) minecraft.currentScreen;
+			shader.uniformFloat("intensity", screenPhotoMode.intensityValue);
 		}else {
 			shader.uniformFloat("intensity", 1.0f);
 		}
diff --git a/src/main/java/net/minecraft/client/render/terrain/ChunkRenderer.java b/src/main/java/net/minecraft/client/render/terrain/ChunkRenderer.java
index 2b2cfd8b1..a964f5ffb 100644
--- a/src/main/java/net/minecraft/client/render/terrain/ChunkRenderer.java
+++ b/src/main/java/net/minecraft/client/render/terrain/ChunkRenderer.java
@@ -3,6 +3,7 @@ package net.minecraft.client.render.terrain;
 import java.util.ArrayList;
 import java.util.List;
 
+import net.minecraft.core.block.entity.TileEntity;
 import org.lwjgl.opengl.GL11;
 
 import net.minecraft.client.render.RenderBlocks;
@@ -10,10 +11,9 @@ import net.minecraft.client.render.block.model.BlockModel;
 import net.minecraft.client.render.block.model.BlockModelDispatcher;
 import net.minecraft.client.render.camera.ICamera;
 import net.minecraft.client.render.culling.CameraFrustum;
-import net.minecraft.client.render.entity.ItemEntityRenderer;
+import net.minecraft.client.render.entity.EntityRendererItem;
 import net.minecraft.client.render.tessellator.Tessellator;
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.entity.BlockEntity;
 import net.minecraft.core.entity.Entity;
 import net.minecraft.core.util.helper.MathHelper;
 import net.minecraft.core.util.phys.AABB;
@@ -52,10 +52,10 @@ public abstract class ChunkRenderer
     public int occlusionId;
     public boolean skyLit;
     protected boolean compiled;
-    public List<BlockEntity> renderableBlockEntities;
-    protected final List<BlockEntity> globalRenderableBlockEntities;
+    public List<TileEntity> renderableBlockEntities;
+    protected final List<TileEntity> globalRenderableBlockEntities;
 
-    public ChunkRenderer(World world, List<BlockEntity> globalRenderableTileEntities, int x, int y, int z, int size, int lists)
+    public ChunkRenderer(World world, List<TileEntity> globalRenderableTileEntities, int x, int y, int z, int size, int lists)
     {
         visible = false;
         empty = new boolean[MAX_RENDER_PASSES];
@@ -92,7 +92,7 @@ public abstract class ChunkRenderer
             float f = 6F;
             bb = AABB.getPermanentBB((float)x - f, (float)y - f, (float)z - f, (float)(x + sizeX) + f, (float)(y + sizeY) + f, (float)(z + sizeZ) + f);
             GL11.glNewList(lists + MAX_RENDER_PASSES, GL11.GL_COMPILE);
-            ItemEntityRenderer.renderFlatAABB(AABB.getTemporaryBB((float) xRenderOffs - f, (float) yRenderOffs - f, (float) zRenderOffs - f, (float)(xRenderOffs + sizeX) + f, (float)(yRenderOffs + sizeY) + f, (float)(zRenderOffs + sizeZ) + f));
+            EntityRendererItem.renderFlatAABB(AABB.getTemporaryBB((float) xRenderOffs - f, (float) yRenderOffs - f, (float) zRenderOffs - f, (float)(xRenderOffs + sizeX) + f, (float)(yRenderOffs + sizeY) + f, (float)(zRenderOffs + sizeZ) + f));
             GL11.glEndList();
             setDirty();
         }
diff --git a/src/main/java/net/minecraft/client/render/terrain/ChunkRendererLegacy.java b/src/main/java/net/minecraft/client/render/terrain/ChunkRendererLegacy.java
index f1f2fb8df..355de9d45 100644
--- a/src/main/java/net/minecraft/client/render/terrain/ChunkRendererLegacy.java
+++ b/src/main/java/net/minecraft/client/render/terrain/ChunkRendererLegacy.java
@@ -4,6 +4,7 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
+import net.minecraft.core.block.entity.TileEntity;
 import org.lwjgl.opengl.GL11;
 
 import net.minecraft.client.render.BlockEntityRenderDispatcher;
@@ -12,14 +13,13 @@ import net.minecraft.client.render.RenderBlocks;
 import net.minecraft.client.render.block.model.BlockModel;
 import net.minecraft.client.render.tessellator.Tessellator;
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.entity.BlockEntity;
 import net.minecraft.core.world.World;
 import net.minecraft.core.world.chunk.Chunk;
 import net.minecraft.core.world.chunk.ChunkCache;
 
 public class ChunkRendererLegacy extends ChunkRenderer {
 
-	public ChunkRendererLegacy(World world, List<BlockEntity> globalRenderableTileEntities, int x, int y, int z, int size, int lists) {
+	public ChunkRendererLegacy(World world, List<TileEntity> globalRenderableTileEntities, int x, int y, int z, int size, int lists) {
 		super(world, globalRenderableTileEntities, x, y, z, size, lists);
 	}
 
@@ -37,7 +37,7 @@ public class ChunkRendererLegacy extends ChunkRenderer {
         for(int i = 0; i < MAX_RENDER_PASSES; i++) { empty[i] = true; }
 
         Chunk.isLit = false;
-        final Set<BlockEntity> lastSpecialTileEntities = new HashSet<>(renderableBlockEntities);
+        final Set<TileEntity> lastSpecialTileEntities = new HashSet<>(renderableBlockEntities);
         renderableBlockEntities.clear();
         final int cacheRadius = 1;
         final ChunkCache chunkcache = new ChunkCache(world, minX - cacheRadius, minY - cacheRadius, minZ - cacheRadius, maxX + cacheRadius, maxY + cacheRadius, maxZ + cacheRadius);
@@ -81,7 +81,7 @@ public class ChunkRendererLegacy extends ChunkRenderer {
                             }
                         }
                         if(renderPass == 0 && Block.isEntityTile[blockId]) {
-                            final BlockEntity tileentity = chunkcache.getBlockEntity(x, y, z);
+                            final TileEntity tileentity = chunkcache.getBlockEntity(x, y, z);
                             if(BlockEntityRenderDispatcher.instance.hasRenderer(tileentity)) {
                                 renderableBlockEntities.add(tileentity);
                             }
@@ -120,7 +120,7 @@ public class ChunkRendererLegacy extends ChunkRenderer {
             
             renderPass++;
         } while(true);
-        HashSet<BlockEntity> newSpecialTileEntities = new HashSet<>(renderableBlockEntities);
+        HashSet<TileEntity> newSpecialTileEntities = new HashSet<>(renderableBlockEntities);
         newSpecialTileEntities.removeAll(lastSpecialTileEntities);
         globalRenderableBlockEntities.addAll(newSpecialTileEntities);
         renderableBlockEntities.forEach(lastSpecialTileEntities::remove);
diff --git a/src/main/java/net/minecraft/client/render/terrain/ChunkRendererMultiDraw.java b/src/main/java/net/minecraft/client/render/terrain/ChunkRendererMultiDraw.java
index 6dad6b056..a096785f2 100644
--- a/src/main/java/net/minecraft/client/render/terrain/ChunkRendererMultiDraw.java
+++ b/src/main/java/net/minecraft/client/render/terrain/ChunkRendererMultiDraw.java
@@ -13,7 +13,7 @@ import net.minecraft.client.render.terrain.VertexBuffer.Entry;
 import net.minecraft.client.render.tessellator.Tessellator;
 import net.minecraft.client.render.tessellator.TessellatorStandard;
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.world.World;
 import net.minecraft.core.world.chunk.Chunk;
 import net.minecraft.core.world.chunk.ChunkCache;
@@ -23,7 +23,7 @@ public class ChunkRendererMultiDraw extends ChunkRenderer {
 	public final TerrainRendererMultiDraw terrainRenderer;
 	public final Entry[] renderListEntries;
 	
-	public ChunkRendererMultiDraw(TerrainRendererMultiDraw terrainRenderer, World world, List<BlockEntity> globalRenderableTileEntities, int x, int y, int z, int size, int lists) {
+	public ChunkRendererMultiDraw(TerrainRendererMultiDraw terrainRenderer, World world, List<TileEntity> globalRenderableTileEntities, int x, int y, int z, int size, int lists) {
 		super(world, globalRenderableTileEntities, x, y, z, size, lists);
 		
 		if(terrainRenderer == null) {
@@ -55,7 +55,7 @@ public class ChunkRendererMultiDraw extends ChunkRenderer {
 		terrainRenderer.chunkDeleted(this);
 		
 		Chunk.isLit = false;
-		final Set<BlockEntity> lastSpecialTileEntities = new HashSet<>(renderableBlockEntities);
+		final Set<TileEntity> lastSpecialTileEntities = new HashSet<>(renderableBlockEntities);
 		renderableBlockEntities.clear();
 		
 		final int cacheRadius = 1;
@@ -92,7 +92,7 @@ public class ChunkRendererMultiDraw extends ChunkRenderer {
 							tessellator.setTextureUV(0.0, 0.0);
 						}
 						if(renderPass == 0 && Block.isEntityTile[blockId]) {
-							final BlockEntity tileentity = chunkCache.getBlockEntity(x, y, z);
+							final TileEntity tileentity = chunkCache.getBlockEntity(x, y, z);
 							if(BlockEntityRenderDispatcher.instance.hasRenderer(tileentity)) {
 								renderableBlockEntities.add(tileentity);
 							}
@@ -124,7 +124,7 @@ public class ChunkRendererMultiDraw extends ChunkRenderer {
 			}
 		}
 		
-		HashSet<BlockEntity> newSpecialTileEntities = new HashSet<>(renderableBlockEntities);
+		HashSet<TileEntity> newSpecialTileEntities = new HashSet<>(renderableBlockEntities);
 		newSpecialTileEntities.removeAll(lastSpecialTileEntities);
 		globalRenderableBlockEntities.addAll(newSpecialTileEntities);
 		renderableBlockEntities.forEach(lastSpecialTileEntities::remove);
diff --git a/src/main/java/net/minecraft/client/render/terrain/TerrainRenderer.java b/src/main/java/net/minecraft/client/render/terrain/TerrainRenderer.java
index 19ca2f610..78b6c85ee 100644
--- a/src/main/java/net/minecraft/client/render/terrain/TerrainRenderer.java
+++ b/src/main/java/net/minecraft/client/render/terrain/TerrainRenderer.java
@@ -3,7 +3,7 @@ package net.minecraft.client.render.terrain;
 import java.util.List;
 
 import net.minecraft.client.Minecraft;
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.world.World;
 
 public abstract class TerrainRenderer {
@@ -18,6 +18,6 @@ public abstract class TerrainRenderer {
 	
 	public abstract void renderTranslucentTerrain(float partialTicks);
 	
-	public abstract ChunkRenderer createChunkRenderer(World world, List<BlockEntity> globalRenderableTileEntities, int x, int y, int z, int size, int lists);
+	public abstract ChunkRenderer createChunkRenderer(World world, List<TileEntity> globalRenderableTileEntities, int x, int y, int z, int size, int lists);
 
 }
diff --git a/src/main/java/net/minecraft/client/render/terrain/TerrainRendererLegacy.java b/src/main/java/net/minecraft/client/render/terrain/TerrainRendererLegacy.java
index b1dd01cd8..b14ad2712 100644
--- a/src/main/java/net/minecraft/client/render/terrain/TerrainRendererLegacy.java
+++ b/src/main/java/net/minecraft/client/render/terrain/TerrainRendererLegacy.java
@@ -6,7 +6,7 @@ import java.util.List;
 
 import net.minecraft.client.Minecraft;
 import net.minecraft.client.render.RenderGlobal;
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.world.World;
 
 public class TerrainRendererLegacy extends TerrainRenderer {
@@ -38,7 +38,7 @@ public class TerrainRendererLegacy extends TerrainRenderer {
 	}
 
 	@Override
-	public ChunkRenderer createChunkRenderer(World world, List<BlockEntity> globalRenderableTileEntities, int x, int y, int z, int size, int lists) {
+	public ChunkRenderer createChunkRenderer(World world, List<TileEntity> globalRenderableTileEntities, int x, int y, int z, int size, int lists) {
 		return new ChunkRendererLegacy(world, globalRenderableTileEntities, x, y, z, size, lists);
 	}
 }
diff --git a/src/main/java/net/minecraft/client/render/terrain/TerrainRendererMultiDraw.java b/src/main/java/net/minecraft/client/render/terrain/TerrainRendererMultiDraw.java
index e7f0b6cfa..cfb6debe9 100644
--- a/src/main/java/net/minecraft/client/render/terrain/TerrainRendererMultiDraw.java
+++ b/src/main/java/net/minecraft/client/render/terrain/TerrainRendererMultiDraw.java
@@ -4,13 +4,13 @@ import static org.lwjgl.opengl.GL11.*;
 
 import java.util.List;
 
+import net.minecraft.core.block.entity.TileEntity;
 import org.lwjgl.opengl.GL11;
 
 import net.minecraft.client.Minecraft;
 import net.minecraft.client.render.camera.ICamera;
 import net.minecraft.client.render.terrain.VertexBuffer.Entry;
 import net.minecraft.client.render.tessellator.TessellatorStandard;
-import net.minecraft.core.block.entity.BlockEntity;
 import net.minecraft.core.util.helper.MathHelper;
 import net.minecraft.core.world.World;
 
@@ -250,7 +250,7 @@ public class TerrainRendererMultiDraw extends TerrainRenderer {
 	}
 
 	@Override
-	public ChunkRenderer createChunkRenderer(World world, List<BlockEntity> globalRenderableTileEntities, int x, int y, int z, int size, int lists) {
+	public ChunkRenderer createChunkRenderer(World world, List<TileEntity> globalRenderableTileEntities, int x, int y, int z, int size, int lists) {
 		return new ChunkRendererMultiDraw(this, world, globalRenderableTileEntities, x, y, z, size, lists);
 	}
 	
diff --git a/src/main/java/net/minecraft/client/render/texture/BufferedTexture.java b/src/main/java/net/minecraft/client/render/texture/TextureBuffered.java
similarity index 83%
rename from src/main/java/net/minecraft/client/render/texture/BufferedTexture.java
rename to src/main/java/net/minecraft/client/render/texture/TextureBuffered.java
index 260a00a17..b805f9e3e 100644
--- a/src/main/java/net/minecraft/client/render/texture/BufferedTexture.java
+++ b/src/main/java/net/minecraft/client/render/texture/TextureBuffered.java
@@ -2,14 +2,14 @@ package net.minecraft.client.render.texture;
 
 import java.awt.image.BufferedImage;
 
-public class BufferedTexture extends FileTexture{
+public class TextureBuffered extends TextureFile {
     protected BufferedImage image;
 
     protected boolean blur;
     protected boolean clamp;
     protected boolean mipmap;
 
-    public BufferedTexture(BufferedImage image, boolean blur, boolean clamp, boolean mipmap) {
+    public TextureBuffered(BufferedImage image, boolean blur, boolean clamp, boolean mipmap) {
         generate();
         this.blur = blur;
         this.clamp = clamp;
diff --git a/src/main/java/net/minecraft/client/render/texture/DownloadedTexture.java b/src/main/java/net/minecraft/client/render/texture/TextureDownloaded.java
similarity index 74%
rename from src/main/java/net/minecraft/client/render/texture/DownloadedTexture.java
rename to src/main/java/net/minecraft/client/render/texture/TextureDownloaded.java
index 61895d88f..bd0399236 100644
--- a/src/main/java/net/minecraft/client/render/texture/DownloadedTexture.java
+++ b/src/main/java/net/minecraft/client/render/texture/TextureDownloaded.java
@@ -5,12 +5,12 @@ import net.minecraft.client.render.ImageParser;
 
 import java.awt.image.BufferedImage;
 
-public class DownloadedTexture extends FileTexture {
+public class TextureDownloaded extends TextureFile {
 
 	public BufferedImage image;
 	public int referenceCount;
 
-	public DownloadedTexture(String url, ImageParser imageParser) {
+	public TextureDownloaded(String url, ImageParser imageParser) {
 		referenceCount = 1;
 		
 		new ThreadDownloadImage(this, url, imageParser).start();
diff --git a/src/main/java/net/minecraft/client/render/texture/FileTexture.java b/src/main/java/net/minecraft/client/render/texture/TextureFile.java
similarity index 95%
rename from src/main/java/net/minecraft/client/render/texture/FileTexture.java
rename to src/main/java/net/minecraft/client/render/texture/TextureFile.java
index 1557368bf..2a0fbc945 100644
--- a/src/main/java/net/minecraft/client/render/texture/FileTexture.java
+++ b/src/main/java/net/minecraft/client/render/texture/TextureFile.java
@@ -13,17 +13,17 @@ import java.io.InputStream;
 import static net.minecraft.client.util.helper.Textures.missingTexture;
 import static net.minecraft.client.util.helper.Textures.readImage;
 
-public class FileTexture extends Texture{
+public class TextureFile extends Texture{
     private static final Logger LOGGER = LogUtils.getLogger();
     protected final String sourcePath;
 
     protected TextureMetaHandler metaHandler = new TextureMetaHandler();
 
-    public FileTexture() {
+    public TextureFile() {
         this.sourcePath = null;
     }
 
-    public FileTexture(String path) {
+    public TextureFile(String path) {
         generate();
         this.sourcePath = path;
         init();
diff --git a/src/main/java/net/minecraft/client/render/texturepack/TexturePackCustom.java b/src/main/java/net/minecraft/client/render/texturepack/TexturePackCustom.java
index 29b80487c..f66503639 100644
--- a/src/main/java/net/minecraft/client/render/texturepack/TexturePackCustom.java
+++ b/src/main/java/net/minecraft/client/render/texturepack/TexturePackCustom.java
@@ -16,7 +16,7 @@ import java.util.zip.ZipFile;
 import com.mojang.logging.LogUtils;
 import net.minecraft.client.Minecraft;
 import net.minecraft.client.holiday.Holidays;
-import net.minecraft.client.render.texture.BufferedTexture;
+import net.minecraft.client.render.texture.TextureBuffered;
 import net.minecraft.client.render.texturepack.Manifest.ManifestException;
 import org.slf4j.Logger;
 
@@ -25,7 +25,7 @@ import javax.imageio.ImageIO;
 public class TexturePackCustom extends TexturePack
 {
 	private static final Logger LOGGER = LogUtils.getLogger();
-	private BufferedTexture thumbnailImage;
+	private TextureBuffered thumbnailImage;
 	private BufferedImage thumbnailBuffer;
 	public final File file;
 	private ZipFile zipFile;
diff --git a/src/main/java/net/minecraft/client/render/texturepack/TexturePackDefault.java b/src/main/java/net/minecraft/client/render/texturepack/TexturePackDefault.java
index b2f11687e..7428e1650 100644
--- a/src/main/java/net/minecraft/client/render/texturepack/TexturePackDefault.java
+++ b/src/main/java/net/minecraft/client/render/texturepack/TexturePackDefault.java
@@ -8,13 +8,13 @@ import javax.imageio.ImageIO;
 
 import com.mojang.logging.LogUtils;
 import net.minecraft.client.Minecraft;
-import net.minecraft.client.render.texture.BufferedTexture;
+import net.minecraft.client.render.texture.TextureBuffered;
 import org.slf4j.Logger;
 
 public class TexturePackDefault extends TexturePack
 {
     private static final Logger LOGGER = LogUtils.getLogger();
-    private BufferedTexture texturePackThumbnailTexture;
+    private TextureBuffered texturePackThumbnailTexture;
     private BufferedImage texturePackThumbnail;
 
     public TexturePackDefault()
diff --git a/src/main/java/net/minecraft/client/sound/SoundCategoryHelper.java b/src/main/java/net/minecraft/client/sound/SoundCategoryHelper.java
index 73fa45e5a..f12b0a0da 100644
--- a/src/main/java/net/minecraft/client/sound/SoundCategoryHelper.java
+++ b/src/main/java/net/minecraft/client/sound/SoundCategoryHelper.java
@@ -2,7 +2,7 @@ package net.minecraft.client.sound;
 
 import com.mojang.logging.LogUtils;
 import net.minecraft.client.option.GameSettings;
-import net.minecraft.client.option.VolumeOption;
+import net.minecraft.client.option.OptionVolume;
 import net.minecraft.core.sound.SoundCategory;
 import org.slf4j.Logger;
 
@@ -51,7 +51,7 @@ public class SoundCategoryHelper
 
         try
         {
-            return ((VolumeOption) field.get(gameSettings)).value;
+            return ((OptionVolume) field.get(gameSettings)).value;
         }
         catch (Exception e)
         {
@@ -67,7 +67,7 @@ public class SoundCategoryHelper
 
         try
         {
-            float value = ((VolumeOption) field.get(gameSettings)).value;
+            float value = ((OptionVolume) field.get(gameSettings)).value;
             return value * gameSettings.masterVolume.value;
         }
         catch (Exception e)
@@ -84,7 +84,7 @@ public class SoundCategoryHelper
 
         try
         {
-            VolumeOption option = (VolumeOption) field.get(gameSettings);
+            OptionVolume option = (OptionVolume) field.get(gameSettings);
             option.value = value;
         }
         catch (Exception e)
diff --git a/src/main/java/net/minecraft/client/util/helper/ItemDragHandler.java b/src/main/java/net/minecraft/client/util/helper/ItemDragHandler.java
index a179ad506..6b41dc830 100644
--- a/src/main/java/net/minecraft/client/util/helper/ItemDragHandler.java
+++ b/src/main/java/net/minecraft/client/util/helper/ItemDragHandler.java
@@ -11,7 +11,7 @@ import org.lwjgl.input.Keyboard;
 
 import net.minecraft.client.Minecraft;
 import net.minecraft.client.gui.Gui;
-import net.minecraft.client.gui.container.AbstractContainerScreen;
+import net.minecraft.client.gui.container.ScreenContainerAbstract;
 import net.minecraft.client.gui.ItemElement;
 import net.minecraft.core.InventoryAction;
 import net.minecraft.core.item.ItemStack;
@@ -20,7 +20,7 @@ import net.minecraft.core.player.inventory.slot.Slot;
 public class ItemDragHandler extends Gui {
 	
 	public final Minecraft mc;
-	public final AbstractContainerScreen container;
+	public final ScreenContainerAbstract container;
 	public final ItemElement itemElement;
 	
 	private int renderOffsetX;
@@ -45,7 +45,7 @@ public class ItemDragHandler extends Gui {
 	private boolean lastClickHoldingItem = false;
 	private boolean doubleClick = false;
 	
-	public ItemDragHandler(Minecraft minecraft, AbstractContainerScreen screen, ItemElement itemElement) {
+	public ItemDragHandler(Minecraft minecraft, ScreenContainerAbstract screen, ItemElement itemElement) {
 		this.mc = minecraft;
 		this.container = screen;
 		this.itemElement = itemElement;
diff --git a/src/main/java/net/minecraft/client/world/WorldClient.java b/src/main/java/net/minecraft/client/world/WorldClient.java
index e26ac9d9b..6ebf4e6f4 100644
--- a/src/main/java/net/minecraft/client/world/WorldClient.java
+++ b/src/main/java/net/minecraft/client/world/WorldClient.java
@@ -1,7 +1,7 @@
 package net.minecraft.client.world;
 
 import net.minecraft.client.Minecraft;
-import net.minecraft.client.net.handler.ClientPacketHandler;
+import net.minecraft.client.net.handler.PacketHandlerClient;
 import net.minecraft.client.world.chunk.provider.ChunkProviderClient;
 import net.minecraft.core.data.gamerule.GameRules;
 import net.minecraft.core.data.registry.Registries;
@@ -20,20 +20,20 @@ import java.util.Set;
 
 // Referenced classes of package net.minecraft.src:
 //            World, SaveHandlerMP, WorldProvider, MCHash, 
-//            ChunkCoordinates, ClientPacketHandler, IWorldAccess, Entity,
+//            ChunkCoordinates, PacketHandlerClient, IWorldAccess, Entity,
 //            WorldBlockPositionType, ChunkProviderClient, DisconnectPacket, WorldInfo,
 //            IChunkProvider
 
 public class WorldClient extends World {
     private final Minecraft mc;
     private final LinkedList<WorldBlockPositionType> positionTypesList;
-    private final ClientPacketHandler sendQueue;
+    private final PacketHandlerClient sendQueue;
     private ChunkProviderClient chunkCache;
     private final IntHashMap<Entity> entitiesById;
     private final Set<Entity> forced;
     private final Set<Entity> reEntries;
 
-    public WorldClient(Minecraft minecraft, ClientPacketHandler netclienthandler, long seed, int dimensionId, int worldTypeId)
+    public WorldClient(Minecraft minecraft, PacketHandlerClient netclienthandler, long seed, int dimensionId, int worldTypeId)
     {
         super(new SaveHandlerClientMP(), "MpServer", Dimension.getDimensionList().get(dimensionId), Registries.WORLD_TYPES.getItemByNumericId(worldTypeId), seed);
         this.mc = minecraft;
diff --git a/src/main/java/net/minecraft/core/block/Block.java b/src/main/java/net/minecraft/core/block/Block.java
index bd4dceb6b..3f0250c31 100644
--- a/src/main/java/net/minecraft/core/block/Block.java
+++ b/src/main/java/net/minecraft/core/block/Block.java
@@ -9,9 +9,11 @@ import java.util.Random;
 import java.util.function.Function;
 import java.util.function.Supplier;
 
-import net.minecraft.core.block.entity.ActivatorBlockEntity;
+import net.minecraft.core.block.entity.TileEntityActivator;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.block.support.FullSupport;
 import net.minecraft.core.block.support.ISupport;
+import net.minecraft.core.entity.EntityFallingBlock;
 import net.minecraft.core.util.helper.Direction;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
@@ -20,22 +22,21 @@ import com.b100.utils.Utils;
 
 import net.minecraft.core.achievement.stat.Stat;
 import net.minecraft.core.achievement.stat.StatList;
-import net.minecraft.core.block.entity.BlockEntity;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.block.material.MaterialColor;
 import net.minecraft.core.block.tag.BlockTags;
 import net.minecraft.core.data.tag.ITaggable;
 import net.minecraft.core.data.tag.Tag;
 import net.minecraft.core.entity.Entity;
-import net.minecraft.core.entity.ItemEntity;
+import net.minecraft.core.entity.EntityItem;
 import net.minecraft.core.entity.Mob;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.item.IItemConvertible;
 import net.minecraft.core.item.Item;
 import net.minecraft.core.item.ItemStack;
-import net.minecraft.core.item.ToolShearsItem;
-import net.minecraft.core.item.block.BlockItem;
+import net.minecraft.core.item.tool.ItemToolShears;
+import net.minecraft.core.item.block.ItemBlock;
 import net.minecraft.core.sound.BlockSound;
 import net.minecraft.core.sound.BlockSounds;
 import net.minecraft.core.util.HardIllegalArgumentException;
@@ -249,14 +250,14 @@ public class Block
     }
 
     /**
-     * Make sure if this gets overridden in a block that {@link Block#getBreakResult(World, EnumDropCause, int, BlockEntity)} also has a valid method since {@link net.minecraft.core.entity.FallingBlockEntity FallingBlockEntity} uses it!
+     * Make sure if this gets overridden in a block that {@link Block#getBreakResult(World, EnumDropCause, int, TileEntity)} also has a valid method since {@link EntityFallingBlock EntityFallingBlock} uses it!
      */
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int x, int y, int z, int meta, BlockEntity blockEntity)
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int x, int y, int z, int meta, TileEntity tileEntity)
     {
-        return getBreakResult(world, dropCause, meta, blockEntity);
+        return getBreakResult(world, dropCause, meta, tileEntity);
     }
 
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity)
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity)
     {
         if (dropCause != EnumDropCause.IMPROPER_TOOL)
         {
@@ -554,7 +555,7 @@ public class Block
         return false;
     }
 
-    public void onActivatorInteract(World world, int x, int y, int z, ActivatorBlockEntity activator, Direction direction) {
+    public void onActivatorInteract(World world, int x, int y, int z, TileEntityActivator activator, Direction direction) {
     }
 
     public void onEntityWalking(World world, int x, int y, int z, Entity entity)
@@ -601,7 +602,7 @@ public class Block
         return false;
     }
 
-    public void harvestBlock(World world, Player player, int x, int y, int z, int meta, BlockEntity blockEntity)
+    public void harvestBlock(World world, Player player, int x, int y, int z, int meta, TileEntity tileEntity)
     {
     	player.addStat(getStat(StatList.STAT_MINED), 1);
 
@@ -612,13 +613,13 @@ public class Block
         {
             if (heldItem.isSilkTouch() && player.canHarvestBlock(this))
             {
-                dropBlockWithCause(world, EnumDropCause.SILK_TOUCH, x, y, z, meta, blockEntity, player);
+                dropBlockWithCause(world, EnumDropCause.SILK_TOUCH, x, y, z, meta, tileEntity, player);
                 return;
             }
-            else if (heldItem instanceof ToolShearsItem && (this.hasTag(BlockTags.SHEARS_DO_SILK_TOUCH) || this.hasTag(BlockTags.MINEABLE_BY_SHEARS)))
+            else if (heldItem instanceof ItemToolShears && (this.hasTag(BlockTags.SHEARS_DO_SILK_TOUCH) || this.hasTag(BlockTags.MINEABLE_BY_SHEARS)))
             {
-                ToolShearsItem heldShears = (ToolShearsItem) heldItem;
-                dropBlockWithCause(world, EnumDropCause.SILK_TOUCH, x, y, z, meta, blockEntity, player);
+                ItemToolShears heldShears = (ItemToolShears) heldItem;
+                dropBlockWithCause(world, EnumDropCause.SILK_TOUCH, x, y, z, meta, tileEntity, player);
                 heldShears.onBlockSheared(player, heldItemStack);
                 return;
             }
@@ -626,11 +627,11 @@ public class Block
 
         if (player.canHarvestBlock(this))
         {
-            dropBlockWithCause(world, EnumDropCause.PROPER_TOOL, x, y, z, meta, blockEntity, player);
+            dropBlockWithCause(world, EnumDropCause.PROPER_TOOL, x, y, z, meta, tileEntity, player);
         }
         else
         {
-            dropBlockWithCause(world, EnumDropCause.IMPROPER_TOOL, x, y, z, meta, blockEntity, player);
+            dropBlockWithCause(world, EnumDropCause.IMPROPER_TOOL, x, y, z, meta, tileEntity, player);
         }
 	}
 
@@ -639,11 +640,11 @@ public class Block
         return asItem().getStat(statID);
     }
 
-	public void dropBlockWithCause(World world, EnumDropCause cause, int x, int y, int z, int meta, BlockEntity blockEntity, Player player) {
+	public void dropBlockWithCause(World world, EnumDropCause cause, int x, int y, int z, int meta, TileEntity tileEntity, Player player) {
 		if(world.isClientSide)
 			return;
 
-		ItemStack[] drops = getBreakResult(world, cause, x, y, z, meta, blockEntity);
+		ItemStack[] drops = getBreakResult(world, cause, x, y, z, meta, tileEntity);
 		if(dropOverride > 0) {
 			drops = new ItemStack[] { Item.itemsList[dropOverride].getDefaultStack() };
 		}
@@ -658,7 +659,7 @@ public class Block
 						continue;
 					}
 				}
-				if(ItemEntity.enableItemClumping) {
+				if(EntityItem.enableItemClumping) {
 					world.dropItem(x, y, z, drop.copy());
 				}else {
 					for(int i = 0; i < drop.stackSize; i++) {
@@ -808,7 +809,7 @@ public class Block
     	return null;
     }
     @NotNull
-    public Supplier<Item> blockItemSupplier = () -> new BlockItem(this);
+    public Supplier<Item> blockItemSupplier = () -> new ItemBlock(this);
 
     @Override
 	public boolean isIn(Tag<Block> tag) {
diff --git a/src/main/java/net/minecraft/core/block/ActivatorBlock.java b/src/main/java/net/minecraft/core/block/BlockActivator.java
similarity index 85%
rename from src/main/java/net/minecraft/core/block/ActivatorBlock.java
rename to src/main/java/net/minecraft/core/block/BlockActivator.java
index 15db03bcf..703d8f102 100644
--- a/src/main/java/net/minecraft/core/block/ActivatorBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockActivator.java
@@ -1,7 +1,7 @@
 package net.minecraft.core.block;
 
-import net.minecraft.core.block.entity.ActivatorBlockEntity;
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntityActivator;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.item.Item;
@@ -14,10 +14,10 @@ import net.minecraft.core.world.World;
 
 import java.util.Random;
 
-public class ActivatorBlock extends VeryRotatableEntityBlock
+public class BlockActivator extends BlockTileEntityVeryRotatable
 {
     public static final int MASK_POWERED = 0b0000_1000;
-    public ActivatorBlock(String key, String namespaceId, int id)
+    public BlockActivator(String key, String namespaceId, int id)
     {
         super(key, namespaceId, id, Material.netherrack);
     }
@@ -32,7 +32,7 @@ public class ActivatorBlock extends VeryRotatableEntityBlock
     public boolean onBlockRightClicked(World world, int x, int y, int z, Player player, Side side, double xPlaced, double yPlaced)
     {
         if (!world.isClientSide) {
-            ActivatorBlockEntity dispenserBlockEntity = (ActivatorBlockEntity) world.getBlockEntity(x, y, z);
+            TileEntityActivator dispenserBlockEntity = (TileEntityActivator) world.getBlockEntity(x, y, z);
             player.displayActivatorScreen(dispenserBlockEntity);
         }
         return true;
@@ -40,12 +40,12 @@ public class ActivatorBlock extends VeryRotatableEntityBlock
 
     private void useItem(World world, int x, int y, int z, Random random)
     {
-        Direction direction = RotatableBlock.getDirectionFromMeta(world.getBlockMetadata(x, y, z));
+        Direction direction = BlockRotatable.getDirectionFromMeta(world.getBlockMetadata(x, y, z));
         int xOffset = direction.getOffsetX();
         int yOffset = direction.getOffsetY();
         int zOffset = direction.getOffsetZ();
 
-        ActivatorBlockEntity activator = (ActivatorBlockEntity)world.getBlockEntity(x, y, z);
+        TileEntityActivator activator = (TileEntityActivator)world.getBlockEntity(x, y, z);
         if (!activator.locked(activator.stackSelector)) {
             ItemStack itemStack = activator.getNextStack();
 
@@ -78,7 +78,7 @@ public class ActivatorBlock extends VeryRotatableEntityBlock
     public void onNeighborBlockChange(World world, int x, int y, int z, int blockId)
     {
         int meta = world.getBlockMetadata(x, y, z);
-        boolean flag = getNeighborSignal(world, x, y, z, RotatableBlock.getDirectionFromMeta(meta));
+        boolean flag = getNeighborSignal(world, x, y, z, BlockRotatable.getDirectionFromMeta(meta));
         if(flag && (meta & MASK_POWERED) == 0)
         {
             world.scheduleBlockUpdate(x, y, z, id, tickDelay());
@@ -120,9 +120,9 @@ public class ActivatorBlock extends VeryRotatableEntityBlock
     }
 
     @Override
-    protected BlockEntity getNewBlockEntity()
+    protected TileEntity getNewBlockEntity()
     {
-        return new ActivatorBlockEntity();
+        return new TileEntityActivator();
     }
 
 }
diff --git a/src/main/java/net/minecraft/core/block/AlgaeBlock.java b/src/main/java/net/minecraft/core/block/BlockAlgae.java
similarity index 90%
rename from src/main/java/net/minecraft/core/block/AlgaeBlock.java
rename to src/main/java/net/minecraft/core/block/BlockAlgae.java
index f068bce4b..6b2d71208 100644
--- a/src/main/java/net/minecraft/core/block/AlgaeBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockAlgae.java
@@ -1,6 +1,6 @@
 package net.minecraft.core.block;
 
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.block.tag.BlockTags;
 import net.minecraft.core.entity.Entity;
 import net.minecraft.core.entity.vehicle.BoatEntity;
@@ -14,13 +14,13 @@ import net.minecraft.core.util.phys.AABB;
 
 // Referenced classes of package net.minecraft.src:
 //            Block, Material, World, AxisAlignedBB,
-//            IBlockAccess, Item, ItemEntity, ItemStack,
+//            IBlockAccess, Item, EntityItem, ItemStack,
 //            StatList, Player, EnumSkyBlock
 
-public class AlgaeBlock extends Block
+public class BlockAlgae extends Block
 {
 
-    protected AlgaeBlock(String key, String namespaceId, int id, Material material)
+    protected BlockAlgae(String key, String namespaceId, int id, Material material)
     {
         super(key, namespaceId, id, material);
         setBlockBounds(0.0F, -0.125F, 0.0F, 1.0F, 0.00625f, 1.0F);
@@ -71,7 +71,7 @@ public class AlgaeBlock extends Block
     }
 
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity)
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity)
     {
         switch (dropCause)
         {
diff --git a/src/main/java/net/minecraft/core/block/AxisAlignedBlock.java b/src/main/java/net/minecraft/core/block/BlockAxisAligned.java
similarity index 91%
rename from src/main/java/net/minecraft/core/block/AxisAlignedBlock.java
rename to src/main/java/net/minecraft/core/block/BlockAxisAligned.java
index 2452f1a51..b18d96ae7 100644
--- a/src/main/java/net/minecraft/core/block/AxisAlignedBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockAxisAligned.java
@@ -8,9 +8,9 @@ import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.world.World;
 import org.jetbrains.annotations.NotNull;
 
-public class AxisAlignedBlock extends Block {
+public class BlockAxisAligned extends Block {
 
-	public AxisAlignedBlock(String key, String namespaceId, int id, Material material) {
+	public BlockAxisAligned(String key, String namespaceId, int id, Material material) {
 		super(key, namespaceId, id, material);
 	}
 
diff --git a/src/main/java/net/minecraft/core/block/BasketBlock.java b/src/main/java/net/minecraft/core/block/BlockBasket.java
similarity index 72%
rename from src/main/java/net/minecraft/core/block/BasketBlock.java
rename to src/main/java/net/minecraft/core/block/BlockBasket.java
index c3ab79445..30043a126 100644
--- a/src/main/java/net/minecraft/core/block/BasketBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockBasket.java
@@ -1,7 +1,7 @@
 package net.minecraft.core.block;
-import net.minecraft.core.block.entity.ActivatorBlockEntity;
-import net.minecraft.core.block.entity.BlockEntity;
-import net.minecraft.core.block.entity.BasketBlockEntity;
+import net.minecraft.core.block.entity.TileEntityActivator;
+import net.minecraft.core.block.entity.TileEntity;
+import net.minecraft.core.block.entity.TileEntityBasket;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.enums.EnumDropCause;
@@ -12,9 +12,9 @@ import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.world.WorldSource;
 import net.minecraft.core.world.World;
 
-public class BasketBlock extends EntityBlock
+public class BlockBasket extends BlockTileEntity
 {
-    protected BasketBlock(final String blockName, String namespaceId, int id, final Material material)
+    protected BlockBasket(final String blockName, String namespaceId, int id, final Material material)
     {
         super(blockName, namespaceId, id, material);
     }
@@ -22,7 +22,7 @@ public class BasketBlock extends EntityBlock
     @Override
     public boolean onBlockRightClicked(final World world, final int x, final int y, final int z, final Player entityplayer, Side side, double xPlaced, double yPlaced)
     {
-        final BasketBlockEntity te = (BasketBlockEntity) world.getBlockEntity(x, y, z);
+        final TileEntityBasket te = (TileEntityBasket) world.getBlockEntity(x, y, z);
 
         if (te.getNumUnitsInside() > 0)
         {
@@ -35,8 +35,8 @@ public class BasketBlock extends EntityBlock
     }
 
     @Override
-    public void onActivatorInteract(World world, int x, int y, int z, ActivatorBlockEntity activator, Direction direction) {
-        final BasketBlockEntity te = (BasketBlockEntity) world.getBlockEntity(x, y, z);
+    public void onActivatorInteract(World world, int x, int y, int z, TileEntityActivator activator, Direction direction) {
+        final TileEntityBasket te = (TileEntityBasket) world.getBlockEntity(x, y, z);
 
         if (te.getNumUnitsInside() > 0)
         {
@@ -50,14 +50,14 @@ public class BasketBlock extends EntityBlock
     }
 
     @Override
-    protected BlockEntity getNewBlockEntity()
+    protected TileEntity getNewBlockEntity()
     {
-        return new BasketBlockEntity();
+        return new TileEntityBasket();
     }
 
     public int getFillLevel(final WorldSource world, final int x, final int y, final int z)
     {
-        final BasketBlockEntity te = (BasketBlockEntity) world.getBlockEntity(x, y, z);
+        final TileEntityBasket te = (TileEntityBasket) world.getBlockEntity(x, y, z);
 
         final float fill = te.getNumUnitsInside() / (float)te.getMaxUnits();
 
@@ -85,7 +85,7 @@ public class BasketBlock extends EntityBlock
     @Override
     public boolean getSignal(WorldSource worldSource, int x, int y, int z, Side side)
     {
-        BasketBlockEntity basketTileEntity = (BasketBlockEntity) worldSource.getBlockEntity(x, y, z);
+        TileEntityBasket basketTileEntity = (TileEntityBasket) worldSource.getBlockEntity(x, y, z);
         if(basketTileEntity != null){
             return basketTileEntity.getNumUnitsInside() == basketTileEntity.getMaxUnits();
         }
@@ -93,7 +93,7 @@ public class BasketBlock extends EntityBlock
     }
 
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity)
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity)
     {
         return new ItemStack[] { new ItemStack(Items.BASKET) };
     }
diff --git a/src/main/java/net/minecraft/core/block/BedBlock.java b/src/main/java/net/minecraft/core/block/BlockBed.java
similarity index 96%
rename from src/main/java/net/minecraft/core/block/BedBlock.java
rename to src/main/java/net/minecraft/core/block/BlockBed.java
index ef326abf5..a66ddef1d 100644
--- a/src/main/java/net/minecraft/core/block/BedBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockBed.java
@@ -1,7 +1,7 @@
 package net.minecraft.core.block;
 
 import net.minecraft.core.achievement.Achievements;
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.enums.EnumDropCause;
@@ -13,9 +13,9 @@ import net.minecraft.core.world.World;
 import net.minecraft.core.world.WorldSource;
 import net.minecraft.core.world.chunk.ChunkCoordinates;
 
-public class BedBlock extends Block {
+public class BlockBed extends Block {
 
-	public BedBlock(String key, String namespaceId, int id) {
+	public BlockBed(String key, String namespaceId, int id) {
 		super(key, namespaceId, id, Material.wood);
 		setBounds();
 	}
@@ -113,7 +113,7 @@ public class BedBlock extends Block {
 	}
 
 	@Override
-	public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity)
+	public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity)
 	{
 		return new ItemStack[] { new ItemStack(Items.BED) };
 	}
diff --git a/src/main/java/net/minecraft/core/block/BedrockBlock.java b/src/main/java/net/minecraft/core/block/BlockBedrock.java
similarity index 75%
rename from src/main/java/net/minecraft/core/block/BedrockBlock.java
rename to src/main/java/net/minecraft/core/block/BlockBedrock.java
index fd2d67119..68477c5b2 100644
--- a/src/main/java/net/minecraft/core/block/BedrockBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockBedrock.java
@@ -4,10 +4,10 @@ import net.minecraft.core.block.material.Material;
 import net.minecraft.core.util.helper.DyeColor;
 import net.minecraft.core.world.World;
 
-public class BedrockBlock
+public class BlockBedrock
 	extends Block
 {
-	public BedrockBlock(String key, String namespaceId, int id, Material material)
+	public BlockBedrock(String key, String namespaceId, int id, Material material)
     {
 		super(key, namespaceId, id, material);
 	}
@@ -16,7 +16,7 @@ public class BedrockBlock
 	public void onBlockPlacedByWorld(World world, int x, int y, int z)
     {
         if (world.getBlockId(x, y - 1, z) == Blocks.GLOWSTONE.id) {
-            ((PortalBlock) Blocks.PORTAL_PARADISE).tryToCreatePortal(world, x, y, z, DyeColor.SILVER);
+            ((BlockPortal) Blocks.PORTAL_PARADISE).tryToCreatePortal(world, x, y, z, DyeColor.SILVER);
         }
     }
 }
diff --git a/src/main/java/net/minecraft/core/block/BoneShaleBlock.java b/src/main/java/net/minecraft/core/block/BlockBoneShale.java
similarity index 79%
rename from src/main/java/net/minecraft/core/block/BoneShaleBlock.java
rename to src/main/java/net/minecraft/core/block/BlockBoneShale.java
index 5a238ebcf..931f5124d 100644
--- a/src/main/java/net/minecraft/core/block/BoneShaleBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockBoneShale.java
@@ -1,32 +1,32 @@
-package net.minecraft.core.block;
-
-import net.minecraft.core.block.material.Material;
-import net.minecraft.core.entity.player.Player;
-import net.minecraft.core.util.helper.Direction;
-import net.minecraft.core.util.helper.Side;
-import net.minecraft.core.world.World;
-
-public class BoneShaleBlock extends FullRotatableBlock {
-    public BoneShaleBlock(String translationKey, String namespaceId, int id, Material material) {
-        super(translationKey, namespaceId, id, material);
-    }
-
-    @Override
-    public float blockStrength(World world, int x, int y, int z, Side side, Player player) {
-        float blockHardness = this.blockHardness;
-        final int meta = world.getBlockMetadata(x, y, z);
-        final Direction direction = FullRotatableBlock.metaToDirection(meta);
-        if (side != direction.getSide()) {
-            blockHardness *= 66.6f;
-        }
-
-        if (!player.canHarvestBlock(this))
-        {
-            return 1.0F / blockHardness / 30F;
-        }
-        else
-        {
-            return player.getCurrentPlayerStrVsBlock(this) / blockHardness / 30F;
-        }
-    }
-}
+package net.minecraft.core.block;
+
+import net.minecraft.core.block.material.Material;
+import net.minecraft.core.entity.player.Player;
+import net.minecraft.core.util.helper.Direction;
+import net.minecraft.core.util.helper.Side;
+import net.minecraft.core.world.World;
+
+public class BlockBoneShale extends BlockFullyRotatable {
+    public BlockBoneShale(String translationKey, String namespaceId, int id, Material material) {
+        super(translationKey, namespaceId, id, material);
+    }
+
+    @Override
+    public float blockStrength(World world, int x, int y, int z, Side side, Player player) {
+        float blockHardness = this.blockHardness;
+        final int meta = world.getBlockMetadata(x, y, z);
+        final Direction direction = BlockFullyRotatable.metaToDirection(meta);
+        if (side != direction.getSide()) {
+            blockHardness *= 66.6f;
+        }
+
+        if (!player.canHarvestBlock(this))
+        {
+            return 1.0F / blockHardness / 30F;
+        }
+        else
+        {
+            return player.getCurrentPlayerStrVsBlock(this) / blockHardness / 30F;
+        }
+    }
+}
diff --git a/src/main/java/net/minecraft/core/block/BrazierBlock.java b/src/main/java/net/minecraft/core/block/BlockBrazier.java
similarity index 77%
rename from src/main/java/net/minecraft/core/block/BrazierBlock.java
rename to src/main/java/net/minecraft/core/block/BlockBrazier.java
index ffa7a1a0c..b33eed6d2 100644
--- a/src/main/java/net/minecraft/core/block/BrazierBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockBrazier.java
@@ -1,11 +1,11 @@
 package net.minecraft.core.block;
 
-import net.minecraft.core.block.entity.ActivatorBlockEntity;
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntityActivator;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.enums.EnumDropCause;
-import net.minecraft.core.item.FireStrikerItem;
+import net.minecraft.core.item.ItemFireStriker;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.sound.SoundCategory;
 import net.minecraft.core.util.helper.Direction;
@@ -14,11 +14,11 @@ import net.minecraft.core.world.World;
 
 import java.util.Random;
 
-public class BrazierBlock
+public class BlockBrazier
     extends Block {
     private final boolean burning;
 
-    public BrazierBlock(String key, String namespaceId, int id, boolean burning) {
+    public BlockBrazier(String key, String namespaceId, int id, boolean burning) {
         super(key, namespaceId, id, Material.metal);
         this.burning = burning;
     }
@@ -38,18 +38,18 @@ public class BrazierBlock
     }
 
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity) {
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity) {
         return new ItemStack[] { new ItemStack(Blocks.BRAZIER_INACTIVE, 1) };
     }
 
     @Override
     public boolean onBlockRightClicked(World world, int x, int y, int z, Player player, Side side, double xPlaced, double yPlaced) {
         ItemStack heldItem = player.getHeldItem();
-        if (heldItem != null && heldItem.getItem() instanceof FireStrikerItem && !burning) {
-            if (world.getBlock(x + 1, y, z) instanceof FluidBlock ||
-                world.getBlock(x - 1, y, z) instanceof FluidBlock ||
-                world.getBlock(x, y, z + 1) instanceof FluidBlock ||
-                world.getBlock(x, y, z - 1) instanceof FluidBlock) {
+        if (heldItem != null && heldItem.getItem() instanceof ItemFireStriker && !burning) {
+            if (world.getBlock(x + 1, y, z) instanceof BlockFluid ||
+                world.getBlock(x - 1, y, z) instanceof BlockFluid ||
+                world.getBlock(x, y, z + 1) instanceof BlockFluid ||
+                world.getBlock(x, y, z - 1) instanceof BlockFluid) {
                 return false;
             }
             world.setBlockAndMetadataWithNotify(x, y, z, Blocks.BRAZIER_ACTIVE.id, 0);
@@ -66,7 +66,7 @@ public class BrazierBlock
     }
 
     @Override
-    public void onActivatorInteract(World world, int x, int y, int z, ActivatorBlockEntity activator, Direction direction) {
+    public void onActivatorInteract(World world, int x, int y, int z, TileEntityActivator activator, Direction direction) {
         if (burning) {
             world.setBlockAndMetadataWithNotify(x, y, z, Blocks.BRAZIER_INACTIVE.id, 0);
         }
@@ -83,7 +83,7 @@ public class BrazierBlock
     public void onNeighborBlockChange(World world, int x, int y, int z, int blockId) {
         if (!burning) return;
         Block block = Block.blocksList[blockId];
-        if (block instanceof FluidBlock) {
+        if (block instanceof BlockFluid) {
             world.setBlockAndMetadataWithNotify(x, y, z, Blocks.BRAZIER_INACTIVE.id, 0);
         }
     }
diff --git a/src/main/java/net/minecraft/core/block/ButtonBlock.java b/src/main/java/net/minecraft/core/block/BlockButton.java
similarity index 98%
rename from src/main/java/net/minecraft/core/block/ButtonBlock.java
rename to src/main/java/net/minecraft/core/block/BlockButton.java
index e4a3b4cb7..0f80e44bd 100644
--- a/src/main/java/net/minecraft/core/block/ButtonBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockButton.java
@@ -1,6 +1,6 @@
 package net.minecraft.core.block;
 
-import net.minecraft.core.block.entity.ActivatorBlockEntity;
+import net.minecraft.core.block.entity.TileEntityActivator;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.entity.Mob;
 import net.minecraft.core.entity.player.Player;
@@ -22,7 +22,7 @@ import java.util.Random;
 //            Block, Material, World, IBlockAccess, 
 //            AxisAlignedBB, Player
 
-public class ButtonBlock extends Block
+public class BlockButton extends Block
 {
     public static final int MASK_POWERED = 0b0000_1000;
     public static final int MASK_DIRECTION = 0b0000_0111;
@@ -33,7 +33,7 @@ public class ButtonBlock extends Block
     public static final int SIDE_TOP = 5;
     public static final int SIDE_BOTTOM = 6;
 
-	public ButtonBlock(String key, String namespaceId, int id)
+	public BlockButton(String key, String namespaceId, int id)
     {
         super(key, namespaceId, id, Material.decoration);
         setTicking(true);
@@ -327,7 +327,7 @@ public class ButtonBlock extends Block
     }
 
     @Override
-    public void onActivatorInteract(World world, int x, int y, int z, ActivatorBlockEntity activator, Direction direction) {
+    public void onActivatorInteract(World world, int x, int y, int z, TileEntityActivator activator, Direction direction) {
         press(world, x, y, z, null);
     }
 
diff --git a/src/main/java/net/minecraft/core/block/CactusBlock.java b/src/main/java/net/minecraft/core/block/BlockCactus.java
similarity index 96%
rename from src/main/java/net/minecraft/core/block/CactusBlock.java
rename to src/main/java/net/minecraft/core/block/BlockCactus.java
index 5a8134634..2f882f821 100644
--- a/src/main/java/net/minecraft/core/block/CactusBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockCactus.java
@@ -23,10 +23,10 @@ import java.util.Random;
 //            Block, Material, World, AxisAlignedBB, 
 //            Entity
 
-public class CactusBlock extends Block implements IBonemealable
+public class BlockCactus extends Block implements IBonemealable
 {
 
-	public CactusBlock(String key, String namespaceId, int id)
+	public BlockCactus(String key, String namespaceId, int id)
     {
         super(key, namespaceId, id, Material.cactus);
         setTicking(true);
@@ -154,7 +154,7 @@ public class CactusBlock extends Block implements IBonemealable
     public boolean onBonemealUsed(ItemStack itemstack, @Nullable Player player, World world, int blockX, int blockY, int blockZ, Side side, double xPlaced, double yPlaced) {
         if(!world.isClientSide)
         {
-            ((CactusBlock)Block.blocksList[id]).growCactusOnTop(world, blockX, blockY, blockZ);
+            ((BlockCactus)Block.blocksList[id]).growCactusOnTop(world, blockX, blockY, blockZ);
             if (player == null || player.getGamemode().consumeBlocks())
             {
                 itemstack.stackSize--;
diff --git a/src/main/java/net/minecraft/core/block/CakeBlock.java b/src/main/java/net/minecraft/core/block/BlockCake.java
similarity index 92%
rename from src/main/java/net/minecraft/core/block/CakeBlock.java
rename to src/main/java/net/minecraft/core/block/BlockCake.java
index d0ac974af..40571d730 100644
--- a/src/main/java/net/minecraft/core/block/CakeBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockCake.java
@@ -4,10 +4,10 @@ import net.minecraft.core.item.Items;
 import net.minecraft.core.util.phys.AABB;
 import net.minecraft.core.world.WorldSource;
 
-public class CakeBlock extends EdibleBlock
+public class BlockCake extends BlockEdible
 {
 
-	public CakeBlock(String key, String namespaceId, int id)
+	public BlockCake(String key, String namespaceId, int id)
     {
         super(key, namespaceId, id, 6, 3, () -> Items.FOOD_CAKE);
     }
diff --git a/src/main/java/net/minecraft/core/block/CandleBlock.java b/src/main/java/net/minecraft/core/block/BlockCandle.java
similarity index 90%
rename from src/main/java/net/minecraft/core/block/CandleBlock.java
rename to src/main/java/net/minecraft/core/block/BlockCandle.java
index 9d4cb53a1..0d94b5329 100644
--- a/src/main/java/net/minecraft/core/block/CandleBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockCandle.java
@@ -1,6 +1,6 @@
 package net.minecraft.core.block;
 
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.util.phys.AABB;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.block.material.Material;
@@ -10,9 +10,9 @@ import net.minecraft.core.world.WorldSource;
 
 import java.util.Random;
 
-public class CandleBlock extends Block
+public class BlockCandle extends Block
 {
-    public CandleBlock(String key, String namespaceId, int id, Material material)
+    public BlockCandle(String key, String namespaceId, int id, Material material)
     {
         super(key, namespaceId, id, material);
         setTicking(true);
@@ -61,7 +61,7 @@ public class CandleBlock extends Block
     }
 
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity)
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity)
     {
         return new ItemStack[] { null };//new ItemStack(Item.candleSoulwax) };
     }
diff --git a/src/main/java/net/minecraft/core/block/ChestBlock.java b/src/main/java/net/minecraft/core/block/BlockChest.java
similarity index 96%
rename from src/main/java/net/minecraft/core/block/ChestBlock.java
rename to src/main/java/net/minecraft/core/block/BlockChest.java
index da168c4c0..e8fa4260b 100644
--- a/src/main/java/net/minecraft/core/block/ChestBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockChest.java
@@ -1,13 +1,13 @@
 package net.minecraft.core.block;
 
 import com.mojang.logging.LogUtils;
-import net.minecraft.core.block.entity.BlockEntity;
-import net.minecraft.core.block.entity.ChestBlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
+import net.minecraft.core.block.entity.TileEntityChest;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.entity.Mob;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.player.inventory.container.Container;
-import net.minecraft.core.player.inventory.container.CompoundContainer;
+import net.minecraft.core.player.inventory.container.ContainerCompound;
 import net.minecraft.core.util.helper.Direction;
 import net.minecraft.core.util.helper.DyeColor;
 import net.minecraft.core.util.helper.Side;
@@ -15,9 +15,9 @@ import net.minecraft.core.world.World;
 import org.jetbrains.annotations.NotNull;
 import org.slf4j.Logger;
 
-public class ChestBlock extends EntityBlock implements IPaintable {
+public class BlockChest extends BlockTileEntity implements IPaintable {
 	private static final Logger LOGGER = LogUtils.getLogger();
-	public ChestBlock(String key, String namespaceId, int id, Material material) {
+	public BlockChest(String key, String namespaceId, int id, Material material) {
 		super(key, namespaceId, id, material);
 	}
 	
@@ -270,7 +270,7 @@ public class ChestBlock extends EntityBlock implements IPaintable {
 	}
 
 	public static boolean isChest(World world, int x, int y, int z) {
-		return Block.blocksList[world.getBlockId(x, y, z)] instanceof ChestBlock;
+		return Block.blocksList[world.getBlockId(x, y, z)] instanceof BlockChest;
 	}
 	
 	public static boolean isSingleChest(World world, int x, int y, int z) {
@@ -283,8 +283,8 @@ public class ChestBlock extends EntityBlock implements IPaintable {
 	}
 	
 	@Override
-	protected BlockEntity getNewBlockEntity() {
-		return new ChestBlockEntity();
+	protected TileEntity getNewBlockEntity() {
+		return new TileEntityChest();
 	}
 	
 	public void setDirection(World world, int x, int y, int z, Direction direction) {
@@ -362,7 +362,7 @@ public class ChestBlock extends EntityBlock implements IPaintable {
 				}
 			}
 			if(inv2 != null) {
-				inventory = new CompoundContainer("Large Chest", inventory, inv2);
+				inventory = new ContainerCompound("Large Chest", inventory, inv2);
 			}
 		}
 		
diff --git a/src/main/java/net/minecraft/core/block/LegacyChestBlock.java b/src/main/java/net/minecraft/core/block/BlockChestLegacy.java
similarity index 87%
rename from src/main/java/net/minecraft/core/block/LegacyChestBlock.java
rename to src/main/java/net/minecraft/core/block/BlockChestLegacy.java
index da4701aed..e836d3f1f 100644
--- a/src/main/java/net/minecraft/core/block/LegacyChestBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockChestLegacy.java
@@ -1,9 +1,9 @@
 package net.minecraft.core.block;
 
 import net.minecraft.core.Global;
-import net.minecraft.core.block.ChestBlock.Type;
-import net.minecraft.core.block.entity.BlockEntity;
-import net.minecraft.core.block.entity.ChestBlockEntity;
+import net.minecraft.core.block.BlockChest.Type;
+import net.minecraft.core.block.entity.TileEntity;
+import net.minecraft.core.block.entity.TileEntityChest;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.enums.EnumDropCause;
@@ -13,14 +13,14 @@ import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.world.World;
 
 @Deprecated
-public class LegacyChestBlock extends EntityBlock {
+public class BlockChestLegacy extends BlockTileEntity {
 	
-	public LegacyChestBlock(String key, String namespaceId, int id) {
+	public BlockChestLegacy(String key, String namespaceId, int id) {
 		super(key, namespaceId, id, Material.wood);
 	}
 	
 	@Override
-	public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity) {
+	public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity) {
 		if (dropCause != EnumDropCause.IMPROPER_TOOL)
 		{
 			return new ItemStack[] { new ItemStack(Blocks.CHEST_PLANKS_OAK) };
@@ -29,8 +29,8 @@ public class LegacyChestBlock extends EntityBlock {
 	}
 
 	@Override
-	protected BlockEntity getNewBlockEntity() {
-		return new ChestBlockEntity();
+	protected TileEntity getNewBlockEntity() {
+		return new TileEntityChest();
 	}
 	
 	public static boolean isLegacyChest(World world, int x, int y, int z) {
@@ -40,7 +40,7 @@ public class LegacyChestBlock extends EntityBlock {
 	
 	@Override
 	public void onBlockRemoved(World world, int x, int y, int z, int data) {
-		BlockEntity entity = world.getBlockEntity(x, y, z);
+		TileEntity entity = world.getBlockEntity(x, y, z);
 		if (entity != null) {
 			entity.dropContents(world, x, y, z);
 		}
@@ -92,8 +92,8 @@ public class LegacyChestBlock extends EntityBlock {
 				facingDirection = Direction.SOUTH;
 			}
 			
-			meta = ChestBlock.getMetaWithDirection(meta, facingDirection);
-			meta = ChestBlock.getMetaWithType(meta, Type.SINGLE);
+			meta = BlockChest.getMetaWithDirection(meta, facingDirection);
+			meta = BlockChest.getMetaWithType(meta, Type.SINGLE);
 			
 			ItemStack[] items = getAndClearChestInventory(world, x, y, z);
 			
@@ -155,11 +155,11 @@ public class LegacyChestBlock extends EntityBlock {
 			if(type == Type.LEFT) otherType = Type.RIGHT;
 			if(type == Type.RIGHT) otherType = Type.LEFT;
 			
-			meta = ChestBlock.getMetaWithDirection(meta, facingDirection);
-			meta = ChestBlock.getMetaWithType(meta, type);
+			meta = BlockChest.getMetaWithDirection(meta, facingDirection);
+			meta = BlockChest.getMetaWithType(meta, type);
 			
-			otherMeta = ChestBlock.getMetaWithDirection(otherMeta, facingDirection);
-			otherMeta = ChestBlock.getMetaWithType(otherMeta, otherType);
+			otherMeta = BlockChest.getMetaWithDirection(otherMeta, facingDirection);
+			otherMeta = BlockChest.getMetaWithType(otherMeta, otherType);
 			
 			ItemStack[] items1 = getAndClearChestInventory(world, x, y, z);
 			ItemStack[] items2 = getAndClearChestInventory(world, otherChestX, y, otherChestZ);
@@ -178,7 +178,7 @@ public class LegacyChestBlock extends EntityBlock {
 	}
 	
 	private ItemStack[] getAndClearChestInventory(World world, int x, int y, int z) {
-		ChestBlockEntity tileEntityChest = (ChestBlockEntity) world.getBlockEntity(x, y, z);
+		TileEntityChest tileEntityChest = (TileEntityChest) world.getBlockEntity(x, y, z);
 		
 		ItemStack[] items = new ItemStack[tileEntityChest.getContainerSize()];
 		
@@ -191,7 +191,7 @@ public class LegacyChestBlock extends EntityBlock {
 	}
 	
 	private void setChestInventory(World world, int x, int y, int z, ItemStack[] items) {
-		ChestBlockEntity tileEntityChest = (ChestBlockEntity) world.getBlockEntity(x, y, z);
+		TileEntityChest tileEntityChest = (TileEntityChest) world.getBlockEntity(x, y, z);
 		
 		for(int i=0; i < items.length; i++) {
 			tileEntityChest.setItem(i, items[i]);
diff --git a/src/main/java/net/minecraft/core/block/ChestBlockPainted.java b/src/main/java/net/minecraft/core/block/BlockChestPainted.java
similarity index 88%
rename from src/main/java/net/minecraft/core/block/ChestBlockPainted.java
rename to src/main/java/net/minecraft/core/block/BlockChestPainted.java
index d7453247e..af52439bc 100644
--- a/src/main/java/net/minecraft/core/block/ChestBlockPainted.java
+++ b/src/main/java/net/minecraft/core/block/BlockChestPainted.java
@@ -1,6 +1,6 @@
 package net.minecraft.core.block;
 
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.enums.EnumDropCause;
@@ -10,9 +10,9 @@ import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.world.World;
 import org.jetbrains.annotations.Nullable;
 
-public class ChestBlockPainted extends ChestBlock implements IPainted {
+public class BlockChestPainted extends BlockChest implements IPainted {
 
-	protected ChestBlockPainted(String key, String namespaceId, int id, Material material) {
+	protected BlockChestPainted(String key, String namespaceId, int id, Material material) {
 		super(key, namespaceId, id, material);
 	}
 	
@@ -22,7 +22,7 @@ public class ChestBlockPainted extends ChestBlock implements IPainted {
 	}
 
 	@Override
-	public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity)
+	public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity)
 	{
 		return new ItemStack[] { new ItemStack(this, 1, meta & colorBits) };
 	}
diff --git a/src/main/java/net/minecraft/core/block/ClayBlock.java b/src/main/java/net/minecraft/core/block/BlockClay.java
similarity index 75%
rename from src/main/java/net/minecraft/core/block/ClayBlock.java
rename to src/main/java/net/minecraft/core/block/BlockClay.java
index b5bab4aae..20a1cb742 100644
--- a/src/main/java/net/minecraft/core/block/ClayBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockClay.java
@@ -1,27 +1,24 @@
 package net.minecraft.core.block;
 
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.item.Items;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.world.World;
 
-import java.util.HashMap;
-import java.util.Map;
-
 // Referenced classes of package net.minecraft.src:
 //            Block, Material, Item
 
-public class ClayBlock extends Block
+public class BlockClay extends Block
 {
-    public ClayBlock(String key, String namespaceId, int id)
+    public BlockClay(String key, String namespaceId, int id)
     {
         super(key, namespaceId, id, Material.clay);
     }
 
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity)
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity)
     {
         switch (dropCause)
         {
diff --git a/src/main/java/net/minecraft/core/block/CobbleBlock.java b/src/main/java/net/minecraft/core/block/BlockCobble.java
similarity index 73%
rename from src/main/java/net/minecraft/core/block/CobbleBlock.java
rename to src/main/java/net/minecraft/core/block/BlockCobble.java
index a2c65846e..1120b9f60 100644
--- a/src/main/java/net/minecraft/core/block/CobbleBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockCobble.java
@@ -1,6 +1,6 @@
 package net.minecraft.core.block;
 
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.item.IItemConvertible;
@@ -9,18 +9,18 @@ import net.minecraft.core.world.World;
 
 import java.util.function.Supplier;
 
-public class CobbleBlock extends Block{
+public class BlockCobble extends Block{
     private final Supplier<IItemConvertible> crushDrop;
-    public CobbleBlock(String translationKey, String namespaceId, int id, Material material, Supplier<IItemConvertible> crushResult) {
+    public BlockCobble(String translationKey, String namespaceId, int id, Material material, Supplier<IItemConvertible> crushResult) {
         super(translationKey, namespaceId, id, material);
         this.crushDrop = crushResult;
     }
 
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity) {
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity) {
         if (crushDrop != null && dropCause == EnumDropCause.PISTON_CRUSH) {
             return new ItemStack[] {new ItemStack(crushDrop.get())};
         }
-        return super.getBreakResult(world, dropCause, meta, blockEntity);
+        return super.getBreakResult(world, dropCause, meta, tileEntity);
     }
 }
diff --git a/src/main/java/net/minecraft/core/block/CobwebBlock.java b/src/main/java/net/minecraft/core/block/BlockCobweb.java
similarity index 88%
rename from src/main/java/net/minecraft/core/block/CobwebBlock.java
rename to src/main/java/net/minecraft/core/block/BlockCobweb.java
index cebcc4c84..9f1753adf 100644
--- a/src/main/java/net/minecraft/core/block/CobwebBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockCobweb.java
@@ -1,6 +1,6 @@
 package net.minecraft.core.block;
 
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.entity.Entity;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.item.Items;
@@ -14,10 +14,10 @@ import net.minecraft.core.world.WorldSource;
 //            Block, Material, Entity, Item, 
 //            World, AxisAlignedBB
 
-public class CobwebBlock extends Block
+public class BlockCobweb extends Block
 {
 
-    public CobwebBlock(String key, String namespaceId, int id, Material mat)
+    public BlockCobweb(String key, String namespaceId, int id, Material mat)
     {
         super(key, namespaceId, id, mat);
     }
@@ -30,7 +30,7 @@ public class CobwebBlock extends Block
     }
 
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity)
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity)
     {
         switch (dropCause)
         {
diff --git a/src/main/java/net/minecraft/core/block/CropsPumpkinBlock.java b/src/main/java/net/minecraft/core/block/BlockCropsPumpkin.java
similarity index 93%
rename from src/main/java/net/minecraft/core/block/CropsPumpkinBlock.java
rename to src/main/java/net/minecraft/core/block/BlockCropsPumpkin.java
index 512446800..573f74fbe 100644
--- a/src/main/java/net/minecraft/core/block/CropsPumpkinBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockCropsPumpkin.java
@@ -1,6 +1,6 @@
 package net.minecraft.core.block;
 
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.item.IBonemealable;
@@ -14,9 +14,9 @@ import org.jetbrains.annotations.Nullable;
 
 import java.util.Random;
 
-public class CropsPumpkinBlock
-    extends FlowerBlock implements IBonemealable {
-    public CropsPumpkinBlock(String key, String namespaceId, int id) {
+public class BlockCropsPumpkin
+    extends BlockFlower implements IBonemealable {
+    public BlockCropsPumpkin(String key, String namespaceId, int id) {
         super(key, namespaceId, id);
     }
 
@@ -99,7 +99,7 @@ public class CropsPumpkinBlock
 
         }
 
-        boolean isFertilized = FarmlandBlock.isFertilized(world.getBlockMetadata(x, y - 1, z));
+        boolean isFertilized = BlockFarmland.isFertilized(world.getBlockMetadata(x, y - 1, z));
         if (!isFertilized) {
             if (world.getSeasonManager().getCurrentSeason() != null)
             {
@@ -112,7 +112,7 @@ public class CropsPumpkinBlock
     }
 
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity) {
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity) {
         return new ItemStack[] { new ItemStack(Items.SEEDS_PUMPKIN, 1)};
     }
 
@@ -131,7 +131,7 @@ public class CropsPumpkinBlock
         {
             if (!world.isClientSide)
             {
-                ((CropsPumpkinBlock)Blocks.CROPS_PUMPKIN).fertilize(world, blockX, blockY, blockZ);
+                ((BlockCropsPumpkin)Blocks.CROPS_PUMPKIN).fertilize(world, blockX, blockY, blockZ);
                 if (player == null || player.getGamemode().consumeBlocks())
                 {
                     itemstack.stackSize--;
diff --git a/src/main/java/net/minecraft/core/block/CropsWheatBlock.java b/src/main/java/net/minecraft/core/block/BlockCropsWheat.java
similarity index 89%
rename from src/main/java/net/minecraft/core/block/CropsWheatBlock.java
rename to src/main/java/net/minecraft/core/block/BlockCropsWheat.java
index ee1167de8..f0672224f 100644
--- a/src/main/java/net/minecraft/core/block/CropsWheatBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockCropsWheat.java
@@ -2,7 +2,7 @@ package net.minecraft.core.block;
 
 import java.util.Random;
 
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.item.IBonemealable;
@@ -13,11 +13,11 @@ import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.world.World;
 import org.jetbrains.annotations.Nullable;
 
-public class CropsWheatBlock extends FlowerBlock implements IBonemealable
+public class BlockCropsWheat extends BlockFlower implements IBonemealable
 {
     public static final int MASK_GROWTH = 0b0000_0111;
     public static final int MAX_GROWTH_STATE = 7;
-	public CropsWheatBlock(String key, String namespaceId, int id)
+	public BlockCropsWheat(String key, String namespaceId, int id)
     {
         super(key, namespaceId, id);
         setTicking(true);
@@ -96,7 +96,7 @@ public class CropsWheatBlock extends FlowerBlock implements IBonemealable
             growthRate /= 2.0F;
         }
 
-        boolean isFertilized = FarmlandBlock.isFertilized(world.getBlockMetadata(x, y - 1, z));
+        boolean isFertilized = BlockFarmland.isFertilized(world.getBlockMetadata(x, y - 1, z));
         if (!isFertilized) {
             if (world.getSeasonManager().getCurrentSeason() != null)
             {
@@ -110,17 +110,17 @@ public class CropsWheatBlock extends FlowerBlock implements IBonemealable
 
     @Override
     public void onBlockDestroyedByPlayer(World world, int x, int y, int z, Side side, int meta, Player player, Item item) {
-        boolean isFertilized = FarmlandBlock.isFertilized(world.getBlockMetadata(x, y - 1, z));
+        boolean isFertilized = BlockFarmland.isFertilized(world.getBlockMetadata(x, y - 1, z));
         if (isFertilized && !world.isClientSide) {
             boolean shouldDefertilize = world.rand.nextInt(3) == 2;
             if (shouldDefertilize) {
-                world.setBlockMetadata(x, y - 1, z, FarmlandBlock.setFertilized(world.getBlockMetadata(x, y - 1, z), false));
+                world.setBlockMetadata(x, y - 1, z, BlockFarmland.setFertilized(world.getBlockMetadata(x, y - 1, z), false));
             }
         }
     }
 
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity)
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity)
     {
         if (meta != MAX_GROWTH_STATE)
         {
@@ -138,7 +138,7 @@ public class CropsWheatBlock extends FlowerBlock implements IBonemealable
         {
             if(!world.isClientSide)
             {
-                ((CropsWheatBlock)Blocks.CROPS_WHEAT).fertilize(world, blockX, blockY, blockZ);
+                ((BlockCropsWheat)Blocks.CROPS_WHEAT).fertilize(world, blockX, blockY, blockZ);
                 if (player == null || player.getGamemode().consumeBlocks())
                 {
                     itemstack.stackSize--;
diff --git a/src/main/java/net/minecraft/core/block/DeadBushBlock.java b/src/main/java/net/minecraft/core/block/BlockDeadBush.java
similarity index 80%
rename from src/main/java/net/minecraft/core/block/DeadBushBlock.java
rename to src/main/java/net/minecraft/core/block/BlockDeadBush.java
index 24bdc04c0..c070c8ba3 100644
--- a/src/main/java/net/minecraft/core/block/DeadBushBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockDeadBush.java
@@ -1,18 +1,18 @@
 package net.minecraft.core.block;
 
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.item.Items;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.world.World;
 
 // Referenced classes of package net.minecraft.src:
-//            FlowerBlock, Block
+//            BlockFlower, Block
 
-public class DeadBushBlock extends FlowerBlock
+public class BlockDeadBush extends BlockFlower
 {
 
-	public DeadBushBlock(String key, String namespaceId, int id)
+	public BlockDeadBush(String key, String namespaceId, int id)
     {
         super(key, namespaceId, id);
         float f = 0.4F;
@@ -26,7 +26,7 @@ public class DeadBushBlock extends FlowerBlock
     }
 
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity)
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity)
     {
         int quantity = world.rand.nextInt(3);
 
diff --git a/src/main/java/net/minecraft/core/block/DispenserBlock.java b/src/main/java/net/minecraft/core/block/BlockDispenser.java
similarity index 77%
rename from src/main/java/net/minecraft/core/block/DispenserBlock.java
rename to src/main/java/net/minecraft/core/block/BlockDispenser.java
index e79a0a7c5..cbac228c2 100644
--- a/src/main/java/net/minecraft/core/block/DispenserBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockDispenser.java
@@ -2,8 +2,8 @@ package net.minecraft.core.block;
 
 import java.util.Random;
 
-import net.minecraft.core.block.entity.BlockEntity;
-import net.minecraft.core.block.entity.DispenserBlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
+import net.minecraft.core.block.entity.TileEntityDispenser;
 import net.minecraft.core.entity.*;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.entity.projectile.*;
@@ -16,10 +16,10 @@ import net.minecraft.core.world.LevelListener;
 import net.minecraft.core.world.World;
 import net.minecraft.core.block.material.Material;
 
-public class DispenserBlock extends VeryRotatableEntityBlock
+public class BlockDispenser extends BlockTileEntityVeryRotatable
 {
     public static final int MASK_POWERED = 0b0000_1000;
-	public DispenserBlock(String key, String namespaceId, int id)
+	public BlockDispenser(String key, String namespaceId, int id)
     {
         super(key, namespaceId, id, Material.stone);
     }
@@ -38,20 +38,20 @@ public class DispenserBlock extends VeryRotatableEntityBlock
             return true;
         } else
         {
-            DispenserBlockEntity dispenserBlockEntity = (DispenserBlockEntity)world.getBlockEntity(x, y, z);
-            player.displayDispenserScreen(dispenserBlockEntity);
+            TileEntityDispenser tileEntityDispenser = (TileEntityDispenser)world.getBlockEntity(x, y, z);
+            player.displayDispenserScreen(tileEntityDispenser);
             return true;
         }
     }
 
     private void dispenseItem(World world, int x, int y, int z, Random random)
     {
-        Direction direction = VeryRotatableEntityBlock.metaToDirection(world.getBlockMetadata(x, y, z));
+        Direction direction = BlockTileEntityVeryRotatable.metaToDirection(world.getBlockMetadata(x, y, z));
         int xOffset = direction.getOffsetX();
         int yOffset = direction.getOffsetY();
         int zOffset = direction.getOffsetZ();
 
-        DispenserBlockEntity tileEntity = (DispenserBlockEntity)world.getBlockEntity(x, y, z);
+        TileEntityDispenser tileEntity = (TileEntityDispenser)world.getBlockEntity(x, y, z);
         ItemStack itemStack = tileEntity.getRandomStackFromInventory();
         double px = (double)x + (double)xOffset * 0.6D + 0.5D;
         double py = (double)y + (double)yOffset * 0.6D + 0.5D;
@@ -71,7 +71,7 @@ public class DispenserBlock extends VeryRotatableEntityBlock
             else if (itemStack.itemID == Items.AMMO_ARROW.id || itemStack.itemID == Items.AMMO_ARROW_GOLD.id)
             {
 
-                ArrowProjectile arrow = itemStack.itemID == Items.AMMO_ARROW.id ? new ArrowProjectile(world, px, py, pz, 0) : new GoldenArrowProjectile(world, px, py, pz);
+                ProjectileArrow arrow = itemStack.itemID == Items.AMMO_ARROW.id ? new ProjectileArrow(world, px, py, pz, 0) : new ProjectileArrowGolden(world, px, py, pz);
                 arrow.setHeading(xOffset, yOffset + 0.1D, zOffset, 1.1F, 6F);
                 arrow.setDoesArrowBelongToPlayer(true);
                 world.entityJoinedWorld(arrow);
@@ -79,14 +79,14 @@ public class DispenserBlock extends VeryRotatableEntityBlock
             }
             else if (itemStack.itemID == Items.AMMO_CHARGE_EXPLOSIVE.id)
             {
-                CannonballProjectile cannonballProjectile = new CannonballProjectile(world, px, py, pz);
-                cannonballProjectile.setHeading(xOffset, yOffset + 0.1D, zOffset, 1.1F, 6F);
-                world.entityJoinedWorld(cannonballProjectile);
+                ProjectileCannonball projectileCannonball = new ProjectileCannonball(world, px, py, pz);
+                projectileCannonball.setHeading(xOffset, yOffset + 0.1D, zOffset, 1.1F, 6F);
+                world.entityJoinedWorld(projectileCannonball);
                 world.playBlockEvent(LevelListener.EVENT_DISPENSER_PROJECTILE, x, y, z, 0);
             }
             else
             {
-                ItemEntity item = new ItemEntity(world, px, py - 0.3D, pz, itemStack);
+                EntityItem item = new EntityItem(world, px, py - 0.3D, pz, itemStack);
                 double randOffset = random.nextDouble() * 0.1D + 0.2D;
                 item.xd = (double)xOffset * randOffset;
                 item.yd = (double)yOffset + 0.2D;
@@ -122,9 +122,9 @@ public class DispenserBlock extends VeryRotatableEntityBlock
     }
 
     @Override
-	protected BlockEntity getNewBlockEntity()
+	protected TileEntity getNewBlockEntity()
     {
-        return new DispenserBlockEntity();
+        return new TileEntityDispenser();
     }
 
 }
diff --git a/src/main/java/net/minecraft/core/block/DoorBlock.java b/src/main/java/net/minecraft/core/block/BlockDoor.java
similarity index 94%
rename from src/main/java/net/minecraft/core/block/DoorBlock.java
rename to src/main/java/net/minecraft/core/block/BlockDoor.java
index c829e33c5..b5f77f3d4 100644
--- a/src/main/java/net/minecraft/core/block/DoorBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockDoor.java
@@ -3,12 +3,12 @@ package net.minecraft.core.block;
 import java.util.Random;
 import java.util.function.Supplier;
 
-import net.minecraft.core.block.entity.ActivatorBlockEntity;
+import net.minecraft.core.block.entity.TileEntityActivator;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.util.helper.Direction;
 import net.minecraft.core.util.helper.DyeColor;
 import net.minecraft.core.util.phys.HitResult;
-import net.minecraft.core.block.entity.BlockEntity;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.item.Item;
@@ -28,7 +28,7 @@ import org.jetbrains.annotations.Nullable;
 //            Item, AxisAlignedBB, Player, Vec3D,
 //            MovingObjectPosition
 
-public class DoorBlock extends Block implements IPaintable
+public class BlockDoor extends Block implements IPaintable
 {
     public static final int MASK_ROTATION = 0b0000_0011;
     public static final int MASK_OPENED = 0b0000_0100;
@@ -39,7 +39,7 @@ public class DoorBlock extends Block implements IPaintable
     @Nullable
     public final Supplier<Item> droppedItem;
 	
-	public DoorBlock(String key, String namespaceId, int id, Material material, boolean isTop, boolean requireTool, @Nullable Supplier<Item> droppedItem)
+	public BlockDoor(String key, String namespaceId, int id, Material material, boolean isTop, boolean requireTool, @Nullable Supplier<Item> droppedItem)
     {
         super(key, namespaceId, id, material);
         this.isTop = isTop;
@@ -153,13 +153,13 @@ public class DoorBlock extends Block implements IPaintable
         int l = world.getBlockMetadata(x, y, z);
         if(isTop)
         {
-            if(Block.blocksList[world.getBlockId(x, y - 1, z)] instanceof DoorBlock)
+            if(Block.blocksList[world.getBlockId(x, y - 1, z)] instanceof BlockDoor)
             {
             	Block.blocksList[world.getBlockId(x, y - 1, z)].onBlockRightClicked(world, x, y - 1, z, player, side, xPlaced, yPlaced);
             }
             return true;
         }
-        if(Block.blocksList[world.getBlockId(x, y + 1, z)] instanceof DoorBlock)
+        if(Block.blocksList[world.getBlockId(x, y + 1, z)] instanceof BlockDoor)
         {
             world.setBlockMetadataWithNotify(x, y + 1, z, l ^ MASK_OPENED);
         }
@@ -170,7 +170,7 @@ public class DoorBlock extends Block implements IPaintable
     }
 
     @Override
-    public void onActivatorInteract(World world, int x, int y, int z, ActivatorBlockEntity activator, Direction direction) {
+    public void onActivatorInteract(World world, int x, int y, int z, TileEntityActivator activator, Direction direction) {
         onBlockRightClicked(world, x, y, z, null, direction.getSide(), 0.5, 0.5);
     }
 
@@ -182,9 +182,9 @@ public class DoorBlock extends Block implements IPaintable
         
         if(isTop)
         {
-            if(Block.blocksList[world.getBlockId(x, y - 1, z)] instanceof DoorBlock)
+            if(Block.blocksList[world.getBlockId(x, y - 1, z)] instanceof BlockDoor)
             {
-            	((DoorBlock)Block.blocksList[world.getBlockId(x, y - 1, z)]).onPoweredBlockChange(world, x, y - 1, z, isPowered);
+            	((BlockDoor)Block.blocksList[world.getBlockId(x, y - 1, z)]).onPoweredBlockChange(world, x, y - 1, z, isPowered);
             }
             return;
         }
@@ -193,7 +193,7 @@ public class DoorBlock extends Block implements IPaintable
         {
             return;
         }
-        if(Block.blocksList[world.getBlockId(x, y + 1, z)] instanceof DoorBlock)
+        if(Block.blocksList[world.getBlockId(x, y + 1, z)] instanceof BlockDoor)
         {
             world.setBlockMetadataWithNotify(x, y + 1, z, meta ^ MASK_OPENED);
         }
@@ -209,7 +209,7 @@ public class DoorBlock extends Block implements IPaintable
         if(isTop)
         {
         	Block otherBlock = Block.blocksList[world.getBlockId(x, y - 1, z)];
-            if(!(otherBlock instanceof DoorBlock))
+            if(!(otherBlock instanceof BlockDoor))
             {
                 world.setBlockWithNotify(x, y, z, 0);
             }
@@ -221,7 +221,7 @@ public class DoorBlock extends Block implements IPaintable
         {
             boolean flag = false;
         	Block otherBlock = Block.blocksList[world.getBlockId(x, y + 1, z)];
-            if(!(otherBlock instanceof DoorBlock))
+            if(!(otherBlock instanceof BlockDoor))
             {
                 world.setBlockWithNotify(x, y, z, 0);
                 //dropBlockAsItem(world, i, j, k, i1);
@@ -232,7 +232,7 @@ public class DoorBlock extends Block implements IPaintable
                 dropBlockWithCause(world, EnumDropCause.WORLD, x, y, z, world.getBlockMetadata(x, y, z), null, null);
                 world.setBlockWithNotify(x, y, z, 0);
                 flag = true;
-                if(otherBlock instanceof DoorBlock)
+                if(otherBlock instanceof BlockDoor)
                 {
                     world.setBlockWithNotify(x, y + 1, z, 0);
                 }
@@ -270,7 +270,7 @@ public class DoorBlock extends Block implements IPaintable
     }
 
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity)
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity)
     {
         if (droppedItem == null) return null;
         if (requireTool && dropCause != EnumDropCause.IMPROPER_TOOL)
diff --git a/src/main/java/net/minecraft/core/block/DoorPaintedBlock.java b/src/main/java/net/minecraft/core/block/BlockDoorPainted.java
similarity index 89%
rename from src/main/java/net/minecraft/core/block/DoorPaintedBlock.java
rename to src/main/java/net/minecraft/core/block/BlockDoorPainted.java
index 59f2b93c6..08e27fca4 100644
--- a/src/main/java/net/minecraft/core/block/DoorPaintedBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockDoorPainted.java
@@ -1,6 +1,6 @@
 package net.minecraft.core.block;
 
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.item.Items;
@@ -8,12 +8,12 @@ import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.util.helper.DyeColor;
 import net.minecraft.core.world.World;
 
-public class DoorPaintedBlock extends DoorBlock implements IPainted {
-    public DoorPaintedBlock(String key, String namespaceId, int id, Material material, boolean isTop) {
+public class BlockDoorPainted extends BlockDoor implements IPainted {
+    public BlockDoorPainted(String key, String namespaceId, int id, Material material, boolean isTop) {
         super(key, namespaceId, id, material, isTop, false, null);
     }
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity)
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity)
     {
         return new ItemStack[] { new ItemStack(Items.DOOR_OAK_PAINTED, 1, 15 - (meta >> 4 & 0xF)) };
     }
diff --git a/src/main/java/net/minecraft/core/block/EdibleBlock.java b/src/main/java/net/minecraft/core/block/BlockEdible.java
similarity index 92%
rename from src/main/java/net/minecraft/core/block/EdibleBlock.java
rename to src/main/java/net/minecraft/core/block/BlockEdible.java
index 851f04165..b9eb9c8bf 100644
--- a/src/main/java/net/minecraft/core/block/EdibleBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockEdible.java
@@ -1,6 +1,6 @@
 package net.minecraft.core.block;
 
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.enums.EnumDropCause;
@@ -12,13 +12,13 @@ import org.jetbrains.annotations.NotNull;
 
 import java.util.function.Supplier;
 
-public abstract class EdibleBlock extends Block {
+public abstract class BlockEdible extends Block {
     @NotNull
     private final Supplier<Item> itemSupplier;
     public int maxBites;
     public int healAmount;
 
-    public EdibleBlock(String key, String namespaceId, int id, int maxBites, int healAmount, @NotNull Supplier<Item> dropItemSupplier)
+    public BlockEdible(String key, String namespaceId, int id, int maxBites, int healAmount, @NotNull Supplier<Item> dropItemSupplier)
     {
         super(key, namespaceId, id, Material.cake);
         this.maxBites = maxBites;
@@ -28,7 +28,7 @@ public abstract class EdibleBlock extends Block {
     }
 
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity)
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity)
     {
         if (dropCause == EnumDropCause.PICK_BLOCK || meta == 0)
         {
diff --git a/src/main/java/net/minecraft/core/block/FarmlandBlock.java b/src/main/java/net/minecraft/core/block/BlockFarmland.java
similarity index 95%
rename from src/main/java/net/minecraft/core/block/FarmlandBlock.java
rename to src/main/java/net/minecraft/core/block/BlockFarmland.java
index 8fbaf76fa..b076f8af6 100644
--- a/src/main/java/net/minecraft/core/block/FarmlandBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockFarmland.java
@@ -1,6 +1,6 @@
 package net.minecraft.core.block;
 
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.block.tag.BlockTags;
 import net.minecraft.core.entity.Entity;
@@ -18,11 +18,11 @@ import org.jetbrains.annotations.Nullable;
 
 import java.util.Random;
 
-public class FarmlandBlock extends Block implements IBonemealable
+public class BlockFarmland extends Block implements IBonemealable
 {
 	public static final int MASK_FERTILIZED = 0b0001_0000;
 	public static final int MASK_WET = 0b0000_1111;
-	public FarmlandBlock(String key, String namespaceId, int id)
+	public BlockFarmland(String key, String namespaceId, int id)
 	{
 		super(key, namespaceId, id, Material.dirt);
 		setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.9375F, 1.0F);
@@ -78,7 +78,7 @@ public class FarmlandBlock extends Block implements IBonemealable
 	}
 
 	@Override
-	public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity)
+	public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity)
 	{
 		switch (dropCause)
 		{
@@ -196,7 +196,7 @@ public class FarmlandBlock extends Block implements IBonemealable
 					{
 						//...And the block is next to another wet mud block, it can become wet
 						int bID = world.getBlockId(x1, y1, z1);
-						if (bID == Blocks.MUD.id || (bID == Blocks.FARMLAND_DIRT.id && FarmlandBlock.isWet(world.getBlockMetadata(x1, y1, z1))))
+						if (bID == Blocks.MUD.id || (bID == Blocks.FARMLAND_DIRT.id && BlockFarmland.isWet(world.getBlockMetadata(x1, y1, z1))))
 						{
 							return true;
 						}
diff --git a/src/main/java/net/minecraft/core/block/FenceBlock.java b/src/main/java/net/minecraft/core/block/BlockFence.java
similarity index 97%
rename from src/main/java/net/minecraft/core/block/FenceBlock.java
rename to src/main/java/net/minecraft/core/block/BlockFence.java
index 5b6c71208..a4b897264 100644
--- a/src/main/java/net/minecraft/core/block/FenceBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockFence.java
@@ -12,7 +12,7 @@ import net.minecraft.core.world.World;
 import net.minecraft.core.world.WorldSource;
 
 
-public class FenceBlock extends Block implements IPaintable
+public class BlockFence extends Block implements IPaintable
 {
 //    private static final List<BoundingVolume> selectionVolumes = new ArrayList<>();
 //
@@ -58,7 +58,7 @@ public class FenceBlock extends Block implements IPaintable
 //        selectionVolumes.add(newVolume);
 //    }
 
-    public FenceBlock(String key, String namespaceId, int id)
+    public BlockFence(String key, String namespaceId, int id)
     {
         super(key, namespaceId, id, Material.wood);
     }
diff --git a/src/main/java/net/minecraft/core/block/ChainlinkFenceBlock.java b/src/main/java/net/minecraft/core/block/BlockFenceChainlink.java
similarity index 81%
rename from src/main/java/net/minecraft/core/block/ChainlinkFenceBlock.java
rename to src/main/java/net/minecraft/core/block/BlockFenceChainlink.java
index ebea485b6..a656ae989 100644
--- a/src/main/java/net/minecraft/core/block/ChainlinkFenceBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockFenceChainlink.java
@@ -2,13 +2,12 @@ package net.minecraft.core.block;
 
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.block.tag.BlockTags;
-import net.minecraft.core.util.helper.Direction;
 import net.minecraft.core.world.World;
 import net.minecraft.core.world.WorldSource;
 
-public class ChainlinkFenceBlock extends ThinFenceBlock
+public class BlockFenceChainlink extends BlockFenceThin
 {
-    public ChainlinkFenceBlock(String key, String namespaceId, int id, Material material)
+    public BlockFenceChainlink(String key, String namespaceId, int id, Material material)
     {
         super(key, namespaceId, id, material);
     }
diff --git a/src/main/java/net/minecraft/core/block/FenceGateBlock.java b/src/main/java/net/minecraft/core/block/BlockFenceGate.java
similarity index 95%
rename from src/main/java/net/minecraft/core/block/FenceGateBlock.java
rename to src/main/java/net/minecraft/core/block/BlockFenceGate.java
index 6c0f4e947..3b9ed0287 100644
--- a/src/main/java/net/minecraft/core/block/FenceGateBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockFenceGate.java
@@ -1,6 +1,6 @@
 package net.minecraft.core.block;
 
-import net.minecraft.core.block.entity.ActivatorBlockEntity;
+import net.minecraft.core.block.entity.TileEntityActivator;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.entity.Mob;
 import net.minecraft.core.entity.player.Player;
@@ -17,12 +17,12 @@ import net.minecraft.core.world.WorldSource;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
-public class FenceGateBlock extends Block implements IPaintable
+public class BlockFenceGate extends Block implements IPaintable
 {
     public static final int MASK_DIRECTION = 0b0000_0011;
     public static final int MASK_OPEN = 0b0000_0100;
 
-    public FenceGateBlock(String key, String namespaceId, int id)
+    public BlockFenceGate(String key, String namespaceId, int id)
     {
         super(key, namespaceId, id, Material.wood);
     }
@@ -137,7 +137,7 @@ public class FenceGateBlock extends Block implements IPaintable
     }
 
     @Override
-    public void onActivatorInteract(World world, int x, int y, int z, ActivatorBlockEntity activator, Direction direction) {
+    public void onActivatorInteract(World world, int x, int y, int z, TileEntityActivator activator, Direction direction) {
         onBlockRightClicked(world, x, y, z, null, direction.getSide(), 0.5, 0.5);
     }
 
diff --git a/src/main/java/net/minecraft/core/block/PaintedFenceGateBlock.java b/src/main/java/net/minecraft/core/block/BlockFenceGatePainted.java
similarity index 86%
rename from src/main/java/net/minecraft/core/block/PaintedFenceGateBlock.java
rename to src/main/java/net/minecraft/core/block/BlockFenceGatePainted.java
index 1dd83c3d5..ec37c65b9 100644
--- a/src/main/java/net/minecraft/core/block/PaintedFenceGateBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockFenceGatePainted.java
@@ -1,6 +1,6 @@
 package net.minecraft.core.block;
 
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.item.ItemStack;
@@ -9,10 +9,10 @@ import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.world.World;
 import org.jetbrains.annotations.Nullable;
 
-public class PaintedFenceGateBlock extends FenceGateBlock implements IPainted
+public class BlockFenceGatePainted extends BlockFenceGate implements IPainted
 {
 	public static final int MASK_COLOR = 0b1111_0000;
-	public PaintedFenceGateBlock(String key, String namespaceId, int id)
+	public BlockFenceGatePainted(String key, String namespaceId, int id)
 	{
 		super(key, namespaceId, id);
 	}
@@ -23,7 +23,7 @@ public class PaintedFenceGateBlock extends FenceGateBlock implements IPainted
 	}
 
 	@Override
-	public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity)
+	public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity)
 	{
 		return new ItemStack[] { new ItemStack(this, 1, meta & MASK_COLOR) };
 	}
diff --git a/src/main/java/net/minecraft/core/block/PaintedFenceBlock.java b/src/main/java/net/minecraft/core/block/BlockFencePainted.java
similarity index 85%
rename from src/main/java/net/minecraft/core/block/PaintedFenceBlock.java
rename to src/main/java/net/minecraft/core/block/BlockFencePainted.java
index 006bb02d8..8bb402d15 100644
--- a/src/main/java/net/minecraft/core/block/PaintedFenceBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockFencePainted.java
@@ -1,6 +1,6 @@
 package net.minecraft.core.block;
 
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.item.ItemStack;
@@ -9,9 +9,9 @@ import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.world.World;
 import org.jetbrains.annotations.Nullable;
 
-public class PaintedFenceBlock extends FenceBlock implements IPainted
+public class BlockFencePainted extends BlockFence implements IPainted
 {
-	public PaintedFenceBlock(String key, String namespaceId, int id)
+	public BlockFencePainted(String key, String namespaceId, int id)
 	{
 		super(key, namespaceId, id);
 	}
@@ -22,7 +22,7 @@ public class PaintedFenceBlock extends FenceBlock implements IPainted
 	}
 
 	@Override
-	public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity)
+	public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity)
 	{
 		return new ItemStack[] { new ItemStack(this, 1, meta & 0x0F) };
 	}
diff --git a/src/main/java/net/minecraft/core/block/SteelFenceBlock.java b/src/main/java/net/minecraft/core/block/BlockFenceSteel.java
similarity index 81%
rename from src/main/java/net/minecraft/core/block/SteelFenceBlock.java
rename to src/main/java/net/minecraft/core/block/BlockFenceSteel.java
index 5d84e70cd..54211a1ef 100644
--- a/src/main/java/net/minecraft/core/block/SteelFenceBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockFenceSteel.java
@@ -1,17 +1,17 @@
-package net.minecraft.core.block;
-
-import net.minecraft.core.block.material.Material;
-import net.minecraft.core.block.tag.BlockTags;
-import net.minecraft.core.world.WorldSource;
-
-public class SteelFenceBlock extends ThinFenceBlock {
-    public SteelFenceBlock(String key, String namespaceId, int id, Material material) {
-        super(key, namespaceId, id, material);
-    }
-
-    @Override
-    public boolean canConnectTo(WorldSource world, int x, int y, int z) {
-        int id = world.getBlockId(x, y, z);
-        return Block.hasTag(id, BlockTags.CHAINLINK_FENCES_CONNECT) || (Block.blocksList[id] != null && (Block.blocksList[id].blockMaterial.isStone() || Block.blocksList[id].blockMaterial.isMetal()));
-    }
-}
+package net.minecraft.core.block;
+
+import net.minecraft.core.block.material.Material;
+import net.minecraft.core.block.tag.BlockTags;
+import net.minecraft.core.world.WorldSource;
+
+public class BlockFenceSteel extends BlockFenceThin {
+    public BlockFenceSteel(String key, String namespaceId, int id, Material material) {
+        super(key, namespaceId, id, material);
+    }
+
+    @Override
+    public boolean canConnectTo(WorldSource world, int x, int y, int z) {
+        int id = world.getBlockId(x, y, z);
+        return Block.hasTag(id, BlockTags.CHAINLINK_FENCES_CONNECT) || (Block.blocksList[id] != null && (Block.blocksList[id].blockMaterial.isStone() || Block.blocksList[id].blockMaterial.isMetal()));
+    }
+}
diff --git a/src/main/java/net/minecraft/core/block/ThinFenceBlock.java b/src/main/java/net/minecraft/core/block/BlockFenceThin.java
similarity index 96%
rename from src/main/java/net/minecraft/core/block/ThinFenceBlock.java
rename to src/main/java/net/minecraft/core/block/BlockFenceThin.java
index 9252fc551..ece295b00 100644
--- a/src/main/java/net/minecraft/core/block/ThinFenceBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockFenceThin.java
@@ -5,9 +5,9 @@ import net.minecraft.core.util.helper.Direction;
 import net.minecraft.core.util.phys.AABB;
 import net.minecraft.core.world.WorldSource;
 
-public abstract class ThinFenceBlock extends Block
+public abstract class BlockFenceThin extends Block
 {
-    public ThinFenceBlock(String key, String namespaceId, int id, Material material)
+    public BlockFenceThin(String key, String namespaceId, int id, Material material)
     {
         super(key, namespaceId, id, material);
     }
diff --git a/src/main/java/net/minecraft/core/block/PaperWallFenceBlock.java b/src/main/java/net/minecraft/core/block/BlockFenceWallPaper.java
similarity index 73%
rename from src/main/java/net/minecraft/core/block/PaperWallFenceBlock.java
rename to src/main/java/net/minecraft/core/block/BlockFenceWallPaper.java
index 1dde81004..d8b13eab3 100644
--- a/src/main/java/net/minecraft/core/block/PaperWallFenceBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockFenceWallPaper.java
@@ -2,12 +2,11 @@ package net.minecraft.core.block;
 
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.block.tag.BlockTags;
-import net.minecraft.core.util.helper.Direction;
 import net.minecraft.core.world.WorldSource;
 
-public class PaperWallFenceBlock extends ThinFenceBlock
+public class BlockFenceWallPaper extends BlockFenceThin
 {
-    public PaperWallFenceBlock(String key, String namespaceId, int id, Material material)
+    public BlockFenceWallPaper(String key, String namespaceId, int id, Material material)
     {
         super(key, namespaceId, id, material);
     }
diff --git a/src/main/java/net/minecraft/core/block/FireBlock.java b/src/main/java/net/minecraft/core/block/BlockFire.java
similarity index 96%
rename from src/main/java/net/minecraft/core/block/FireBlock.java
rename to src/main/java/net/minecraft/core/block/BlockFire.java
index df2735cd6..c9c2edc0d 100644
--- a/src/main/java/net/minecraft/core/block/FireBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockFire.java
@@ -1,6 +1,6 @@
 package net.minecraft.core.block;
 
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.block.tag.BlockTags;
 import net.minecraft.core.data.gamerule.GameRules;
 import net.minecraft.core.sound.SoundCategory;
@@ -13,7 +13,7 @@ import net.minecraft.core.world.World;
 
 import java.util.Random;
 
-public class FireBlock extends Block {
+public class BlockFire extends Block {
 	public static final int FLAME_INSTANT = 60;
 	public static final int FLAME_EASY = 30;
 	public static final int FLAME_MEDIUM = 15;
@@ -26,14 +26,14 @@ public class FireBlock extends Block {
 	private static final int[] flameChance = new int[Block.blocksList.length];
 	private static final int[] burnChance = new int[Block.blocksList.length];
 
-	public FireBlock(String key, String namespaceId, int id) {
+	public BlockFire(String key, String namespaceId, int id) {
 		super(key, namespaceId, id, Material.fire);
 		setTicking(true);
 		setBlockBounds(0.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f);
 	}
 
 	@Override
-	public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity)
+	public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity)
 	{
 		return null;
 	}
@@ -72,8 +72,8 @@ public class FireBlock extends Block {
 	}
 
 	public static void setFlammable(int id, int flameChance, int burnChance) {
-		FireBlock.flameChance[id] = flameChance;
-		FireBlock.burnChance[id] = burnChance;
+		BlockFire.flameChance[id] = flameChance;
+		BlockFire.burnChance[id] = burnChance;
 	}
 
 	@Override
@@ -210,7 +210,7 @@ public class FireBlock extends Block {
 			}
 			
 			if (isTNT) {
-				TNTBlock TNTBlock = (TNTBlock) Blocks.TNT;
+				BlockTNT TNTBlock = (BlockTNT) Blocks.TNT;
 				TNTBlock.ignite(world, x, y, z, true);
 			}
 		}
@@ -271,7 +271,7 @@ public class FireBlock extends Block {
 
 	protected int getBurnResultId(World world, int x, int y, int z) {
 		int id = world.getBlockId(x, y, z);
-		Block stoneBlock = MossBlock.getStoneBlock(id);
+		Block stoneBlock = BlockMoss.getStoneBlock(id);
 		if (stoneBlock != null) {
 			return stoneBlock.id;
 		}
@@ -281,7 +281,7 @@ public class FireBlock extends Block {
 	@Override
 	public void onBlockPlacedByWorld(World world, int x, int y, int z) {
 		if (world.getBlockId(x, y - 1, z) == Blocks.OBSIDIAN.id
-				&& ((PortalBlock) Blocks.PORTAL_NETHER).tryToCreatePortal(world, x, y, z, null)) {
+				&& ((BlockPortal) Blocks.PORTAL_NETHER).tryToCreatePortal(world, x, y, z, null)) {
 			return;
 		}
 		if (!world.isBlockNormalCube(x, y - 1, z) && !canNeighborCatchFire(world, x, y, z)) {
diff --git a/src/main/java/net/minecraft/core/block/FlagBlock.java b/src/main/java/net/minecraft/core/block/BlockFlag.java
similarity index 79%
rename from src/main/java/net/minecraft/core/block/FlagBlock.java
rename to src/main/java/net/minecraft/core/block/BlockFlag.java
index 4e1fc375d..92c2be5e1 100644
--- a/src/main/java/net/minecraft/core/block/FlagBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockFlag.java
@@ -1,7 +1,7 @@
 package net.minecraft.core.block;
 
-import net.minecraft.core.block.entity.BlockEntity;
-import net.minecraft.core.block.entity.FlagBlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
+import net.minecraft.core.block.entity.TileEntityFlag;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.enums.EnumDropCause;
@@ -14,9 +14,9 @@ import net.minecraft.core.util.phys.AABB;
 import net.minecraft.core.world.World;
 import net.minecraft.core.world.WorldSource;
 
-public class FlagBlock extends EntityBlock {
+public class BlockFlag extends BlockTileEntity {
 
-    public FlagBlock(String key, String namespaceId, int id, Material material) {
+    public BlockFlag(String key, String namespaceId, int id, Material material) {
         super(key, namespaceId, id, material);
         float f = 2 / 16f;
         float f1 = 1.0F;
@@ -41,13 +41,13 @@ public class FlagBlock extends EntityBlock {
     }
 
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity)
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity)
     {
         ItemStack stack = new ItemStack(Items.FLAG);
-        if (blockEntity != null)
+        if (tileEntity != null)
         {
             CompoundTag compound = new CompoundTag();
-            ((FlagBlockEntity) blockEntity).writeFlagNBT(compound);
+            ((TileEntityFlag) tileEntity).writeFlagNBT(compound);
             stack.getData().putCompound("FlagData", compound);
         }
         return new ItemStack[] { stack };
@@ -56,7 +56,7 @@ public class FlagBlock extends EntityBlock {
 	@Override
 	public boolean onBlockRightClicked(World world, int x, int y, int z, Player player, Side side, double xPlaced, double yPlaced) {
 		if (!world.isClientSide) {
-			FlagBlockEntity flag = (FlagBlockEntity) world.getBlockEntity(x, y, z);
+			TileEntityFlag flag = (TileEntityFlag) world.getBlockEntity(x, y, z);
 			if (flag.owner != null && !player.uuid.equals(flag.owner)) {
 				return false;
 			}
@@ -76,10 +76,10 @@ public class FlagBlock extends EntityBlock {
     }
 
     @Override
-    protected BlockEntity getNewBlockEntity() {
+    protected TileEntity getNewBlockEntity() {
         try
         {
-            return new FlagBlockEntity();
+            return new TileEntityFlag();
         }
         catch(Exception exception)
         {
diff --git a/src/main/java/net/minecraft/core/block/FlowerBlock.java b/src/main/java/net/minecraft/core/block/BlockFlower.java
similarity index 95%
rename from src/main/java/net/minecraft/core/block/FlowerBlock.java
rename to src/main/java/net/minecraft/core/block/BlockFlower.java
index a5a25e320..cf3a4f045 100644
--- a/src/main/java/net/minecraft/core/block/FlowerBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockFlower.java
@@ -15,25 +15,25 @@ import org.jetbrains.annotations.Nullable;
 
 import java.util.Random;
 
-public class FlowerBlock extends Block implements IBonemealable {
+public class BlockFlower extends Block implements IBonemealable {
     public static final int MASK_PERMANENT = 0b1000_0000;
 
     public boolean killedByWeather = false;
     public boolean canBeBonemealed = false;
 
-    public FlowerBlock(String key, String namespaceId, int id) {
+    public BlockFlower(String key, String namespaceId, int id) {
         super(key, namespaceId, id, Material.plant);
         setTicking(true);
         float f = 0.2F;
         setBlockBounds(0.5F - f, 0.0F, 0.5F - f, 0.5F + f, f * 3F, 0.5F + f);
     }
 
-    public FlowerBlock setKilledByWeather() {
+    public BlockFlower setKilledByWeather() {
         killedByWeather = true;
         return this;
     }
 
-    public FlowerBlock setBonemealable() {
+    public BlockFlower setBonemealable() {
         canBeBonemealed = true;
         return this;
     }
diff --git a/src/main/java/net/minecraft/core/block/StackedFlowerBlock.java b/src/main/java/net/minecraft/core/block/BlockFlowerStackable.java
similarity index 90%
rename from src/main/java/net/minecraft/core/block/StackedFlowerBlock.java
rename to src/main/java/net/minecraft/core/block/BlockFlowerStackable.java
index fb726d84b..a5f24c6f8 100644
--- a/src/main/java/net/minecraft/core/block/StackedFlowerBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockFlowerStackable.java
@@ -1,70 +1,70 @@
-package net.minecraft.core.block;
-
-import net.minecraft.core.block.entity.BlockEntity;
-import net.minecraft.core.entity.player.Player;
-import net.minecraft.core.enums.EnumBlockSoundEffectType;
-import net.minecraft.core.enums.EnumDropCause;
-import net.minecraft.core.item.ItemStack;
-import net.minecraft.core.util.helper.Side;
-import net.minecraft.core.world.World;
-import org.jetbrains.annotations.Nullable;
-
-/**
- * Represents a flower block that can store multiple flowers within itself, up to a maximum of 4.
- */
-public class StackedFlowerBlock extends FlowerBlock {
-    public static final int MASK_STACK_COUNT = 0b0110_0000;
-    public static final int OFFSET_STACK_COUNT = 5;
-    public static final int MAX_STACK_COUNT = MASK_STACK_COUNT >> OFFSET_STACK_COUNT;
-
-    public StackedFlowerBlock(String key, String namespaceId, int id) {
-        super(key, namespaceId, id);
-    }
-
-    @Override
-    public int getPlacedBlockMetadata(@Nullable Player player, ItemStack stack, World world, int x, int y, int z, Side side, double xPlaced, double yPlaced) {
-        final int metadata = stack.getMetadata();
-        return setPermanent(metadata, true);
-    }
-
-    @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity) {
-        final int stackCount = getStackCount(meta) + 1;
-
-        if (dropCause == EnumDropCause.PICK_BLOCK) {
-            return new ItemStack[] { new ItemStack(this, 1, 0) };
-        } else if (dropCause == EnumDropCause.SILK_TOUCH) {
-            return new ItemStack[] { new ItemStack(this, 1, meta & MASK_STACK_COUNT)};
-        } else {
-            return new ItemStack[] { new ItemStack(this, stackCount, 0) };
-        }
-    }
-
-    @Override
-    public boolean onBlockRightClicked(World world, int x, int y, int z, Player player, Side side, double xHit, double yHit) {
-        final int metadata = world.getBlockMetadata(x, y, z);
-        final int currentStackCount = getStackCount(metadata);
-        if (currentStackCount >= MAX_STACK_COUNT) {
-            return false;
-        }
-
-        final ItemStack heldItem = player.getHeldItem();
-        if (heldItem == null || heldItem.stackSize < 1 || heldItem.getItem().id != this.id) {
-            return false;
-        }
-
-        final int newMetadata = setPermanent(setStackCount(metadata, currentStackCount + 1), true);
-        world.setBlockMetadataWithNotify(x, y, z, newMetadata);
-        world.playBlockSoundEffect(player, x + 0.5f, y + 0.5f, z + 0.5f, this, EnumBlockSoundEffectType.PLACE);
-        heldItem.consumeItem(player);
-        return true;
-    }
-
-    public static int getStackCount(int metadata) {
-        return (metadata & MASK_STACK_COUNT) >> OFFSET_STACK_COUNT;
-    }
-
-    public static int setStackCount(int metadata, int stackCount) {
-        return (metadata & ~MASK_STACK_COUNT) | ((stackCount << OFFSET_STACK_COUNT) & MASK_STACK_COUNT);
-    }
-}
+package net.minecraft.core.block;
+
+import net.minecraft.core.block.entity.TileEntity;
+import net.minecraft.core.entity.player.Player;
+import net.minecraft.core.enums.EnumBlockSoundEffectType;
+import net.minecraft.core.enums.EnumDropCause;
+import net.minecraft.core.item.ItemStack;
+import net.minecraft.core.util.helper.Side;
+import net.minecraft.core.world.World;
+import org.jetbrains.annotations.Nullable;
+
+/**
+ * Represents a flower block that can store multiple flowers within itself, up to a maximum of 4.
+ */
+public class BlockFlowerStackable extends BlockFlower {
+    public static final int MASK_STACK_COUNT = 0b0110_0000;
+    public static final int OFFSET_STACK_COUNT = 5;
+    public static final int MAX_STACK_COUNT = MASK_STACK_COUNT >> OFFSET_STACK_COUNT;
+
+    public BlockFlowerStackable(String key, String namespaceId, int id) {
+        super(key, namespaceId, id);
+    }
+
+    @Override
+    public int getPlacedBlockMetadata(@Nullable Player player, ItemStack stack, World world, int x, int y, int z, Side side, double xPlaced, double yPlaced) {
+        final int metadata = stack.getMetadata();
+        return setPermanent(metadata, true);
+    }
+
+    @Override
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity) {
+        final int stackCount = getStackCount(meta) + 1;
+
+        if (dropCause == EnumDropCause.PICK_BLOCK) {
+            return new ItemStack[] { new ItemStack(this, 1, 0) };
+        } else if (dropCause == EnumDropCause.SILK_TOUCH) {
+            return new ItemStack[] { new ItemStack(this, 1, meta & MASK_STACK_COUNT)};
+        } else {
+            return new ItemStack[] { new ItemStack(this, stackCount, 0) };
+        }
+    }
+
+    @Override
+    public boolean onBlockRightClicked(World world, int x, int y, int z, Player player, Side side, double xHit, double yHit) {
+        final int metadata = world.getBlockMetadata(x, y, z);
+        final int currentStackCount = getStackCount(metadata);
+        if (currentStackCount >= MAX_STACK_COUNT) {
+            return false;
+        }
+
+        final ItemStack heldItem = player.getHeldItem();
+        if (heldItem == null || heldItem.stackSize < 1 || heldItem.getItem().id != this.id) {
+            return false;
+        }
+
+        final int newMetadata = setPermanent(setStackCount(metadata, currentStackCount + 1), true);
+        world.setBlockMetadataWithNotify(x, y, z, newMetadata);
+        world.playBlockSoundEffect(player, x + 0.5f, y + 0.5f, z + 0.5f, this, EnumBlockSoundEffectType.PLACE);
+        heldItem.consumeItem(player);
+        return true;
+    }
+
+    public static int getStackCount(int metadata) {
+        return (metadata & MASK_STACK_COUNT) >> OFFSET_STACK_COUNT;
+    }
+
+    public static int setStackCount(int metadata, int stackCount) {
+        return (metadata & ~MASK_STACK_COUNT) | ((stackCount << OFFSET_STACK_COUNT) & MASK_STACK_COUNT);
+    }
+}
diff --git a/src/main/java/net/minecraft/core/block/FluidBlock.java b/src/main/java/net/minecraft/core/block/BlockFluid.java
similarity index 93%
rename from src/main/java/net/minecraft/core/block/FluidBlock.java
rename to src/main/java/net/minecraft/core/block/BlockFluid.java
index e9a7cf6bf..22be11beb 100644
--- a/src/main/java/net/minecraft/core/block/FluidBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockFluid.java
@@ -1,6 +1,6 @@
 package net.minecraft.core.block;
 
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.entity.Entity;
 import net.minecraft.core.enums.EnumDropCause;
@@ -15,10 +15,10 @@ import net.minecraft.core.world.WorldSource;
 
 import java.util.Random;
 
-public abstract class FluidBlock extends Block
+public abstract class BlockFluid extends Block
 {
 
-	public FluidBlock(String key, String namespaceId, int id, Material material)
+	public BlockFluid(String key, String namespaceId, int id, Material material)
     {
         super(key, namespaceId, id, material);
         setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
@@ -222,11 +222,11 @@ public abstract class FluidBlock extends Block
         Vec3 vec3 = null;
         if(material == Material.water)
         {
-            vec3 = ((FluidBlock)Blocks.FLUID_WATER_FLOWING).getFlow(blockAccess, x, y, z);
+            vec3 = ((BlockFluid)Blocks.FLUID_WATER_FLOWING).getFlow(blockAccess, x, y, z);
         }
         if(material == Material.lava)
         {
-            vec3 = ((FluidBlock)Blocks.FLUID_LAVA_FLOWING).getFlow(blockAccess, x, y, z);
+            vec3 = ((BlockFluid)Blocks.FLUID_LAVA_FLOWING).getFlow(blockAccess, x, y, z);
         }
         if(vec3 == null ||(vec3.x == 0.0D && vec3.z == 0.0D))
         {
@@ -307,7 +307,7 @@ public abstract class FluidBlock extends Block
     }
 
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity)
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity)
     {
         return null;
     }
@@ -323,10 +323,10 @@ public abstract class FluidBlock extends Block
     @Override
     public void setBlockBoundsBasedOnState(WorldSource world, int x, int y, int z)
     {
-        float f7 = FluidBlock.getFluidHeight(world, x, y, z, blockMaterial);
-        float f8 = FluidBlock.getFluidHeight(world, x, y, z + 1, blockMaterial);
-        float f9 = FluidBlock.getFluidHeight(world, x + 1, y, z + 1, blockMaterial);
-        float f10 = FluidBlock.getFluidHeight(world, x + 1, y, z, blockMaterial);
+        float f7 = BlockFluid.getFluidHeight(world, x, y, z, blockMaterial);
+        float f8 = BlockFluid.getFluidHeight(world, x, y, z + 1, blockMaterial);
+        float f9 = BlockFluid.getFluidHeight(world, x + 1, y, z + 1, blockMaterial);
+        float f10 = BlockFluid.getFluidHeight(world, x + 1, y, z, blockMaterial);
         setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, Math.max((f7 + f8 + f9 + f10)/4f, 0.2), 1.0F);
     }
 
@@ -348,10 +348,10 @@ public abstract class FluidBlock extends Block
                 int i2 = worldSource.getBlockMetadata(j1, y, l1);
                 if(i2 >= 8 || i2 == 0)
                 {
-                    f += FluidBlock.getWaterVolume(i2) * 10F;
+                    f += BlockFluid.getWaterVolume(i2) * 10F;
                     l += 10;
                 }
-                f += FluidBlock.getWaterVolume(i2);
+                f += BlockFluid.getWaterVolume(i2);
                 l++;
                 continue;
             }
diff --git a/src/main/java/net/minecraft/core/block/FlowingFluidBlock.java b/src/main/java/net/minecraft/core/block/BlockFluidFlowing.java
similarity index 97%
rename from src/main/java/net/minecraft/core/block/FlowingFluidBlock.java
rename to src/main/java/net/minecraft/core/block/BlockFluidFlowing.java
index 0a720d358..fae1bca73 100644
--- a/src/main/java/net/minecraft/core/block/FlowingFluidBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockFluidFlowing.java
@@ -9,17 +9,17 @@ import net.minecraft.core.world.World;
 import java.util.Random;
 
 // Referenced classes of package net.minecraft.src:
-//            FluidBlock, World, Material, WorldProvider,
+//            BlockFluid, World, Material, WorldProvider,
 //            Block
 
-public class FlowingFluidBlock extends FluidBlock
+public class BlockFluidFlowing extends BlockFluid
 {
     int maxCount;
     boolean[] result;
     int[] distance;
 
 
-	public FlowingFluidBlock(String key, String namespaceId, int id, Material material)
+	public BlockFluidFlowing(String key, String namespaceId, int id, Material material)
     {
         super(key, namespaceId, id, material);
         maxCount = 0;
@@ -273,7 +273,7 @@ public class FlowingFluidBlock extends FluidBlock
     private boolean isFluidBlocking(World world, int x, int y, int z)
     {
         int id = world.getBlockId(x, y, z);
-        if (Block.blocksList[id] == null || Block.blocksList[id] instanceof FluidBlock || Block.blocksList[id].hasTag(BlockTags.BROKEN_BY_FLUIDS)) return false;
+        if (Block.blocksList[id] == null || Block.blocksList[id] instanceof BlockFluid || Block.blocksList[id].hasTag(BlockTags.BROKEN_BY_FLUIDS)) return false;
         return true;
     }
 
diff --git a/src/main/java/net/minecraft/core/block/StillFluidBlock.java b/src/main/java/net/minecraft/core/block/BlockFluidStill.java
similarity index 93%
rename from src/main/java/net/minecraft/core/block/StillFluidBlock.java
rename to src/main/java/net/minecraft/core/block/BlockFluidStill.java
index 5e9e11587..7a5f4bdd4 100644
--- a/src/main/java/net/minecraft/core/block/StillFluidBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockFluidStill.java
@@ -5,10 +5,10 @@ import java.util.Random;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.world.World;
-public class StillFluidBlock extends FluidBlock
+public class BlockFluidStill extends BlockFluid
 {
 
-	public StillFluidBlock(String key, String namespaceId, int id, Material material)
+	public BlockFluidStill(String key, String namespaceId, int id, Material material)
     {
         super(key, namespaceId, id, material);
         setTicking(false);
@@ -71,6 +71,6 @@ public class StillFluidBlock extends FluidBlock
 
     private boolean isFlammable(World world, int x, int y, int z)
     {
-        return FireBlock.canBurn(world, x, y, z);
+        return BlockFire.canBurn(world, x, y, z);
     }
 }
diff --git a/src/main/java/net/minecraft/core/block/FullRotatableBlock.java b/src/main/java/net/minecraft/core/block/BlockFullyRotatable.java
similarity index 82%
rename from src/main/java/net/minecraft/core/block/FullRotatableBlock.java
rename to src/main/java/net/minecraft/core/block/BlockFullyRotatable.java
index cd1a70b42..16a5ec55e 100644
--- a/src/main/java/net/minecraft/core/block/FullRotatableBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockFullyRotatable.java
@@ -1,36 +1,35 @@
-package net.minecraft.core.block;
-
-import net.minecraft.core.block.material.Material;
-import net.minecraft.core.entity.Mob;
-import net.minecraft.core.util.helper.Direction;
-import net.minecraft.core.util.helper.Side;
-import net.minecraft.core.world.World;
-import net.minecraft.core.block.entity.ActivatorBlockEntity;
-import org.jetbrains.annotations.NotNull;
-
-public abstract class FullRotatableBlock extends Block {
-    public static final int MASK_DIRECTION = 0b0000_0111;
-    public FullRotatableBlock(String translationKey, String namespaceId, int id, Material material) {
-        super(translationKey, namespaceId, id, material);
-    }
-
-    @Override
-    public void onBlockPlacedByMob(World world, int x, int y, int z, @NotNull Side side, Mob mob, double xPlaced, double yPlaced) {
-        final Direction direction = mob.getPlacementDirection(side).getOpposite();
-
-        world.setBlockMetadataWithNotify(x, y, z, directionToMeta(direction));
-    }
-
-    @Override
-    public void onBlockPlacedOnSide(World world, int x, int y, int z, @NotNull Side side, double xPlaced, double yPlaced) {
-        world.setBlockMetadataWithNotify(x, y, z, directionToMeta(side.getDirection()));
-    }
-
-    public static int directionToMeta(Direction direction) {
-        return direction.getId() & MASK_DIRECTION;
-    }
-
-    public static Direction metaToDirection(int meta) {
-        return Direction.getDirectionById(meta & MASK_DIRECTION);
-    }
-}
+package net.minecraft.core.block;
+
+import net.minecraft.core.block.material.Material;
+import net.minecraft.core.entity.Mob;
+import net.minecraft.core.util.helper.Direction;
+import net.minecraft.core.util.helper.Side;
+import net.minecraft.core.world.World;
+import org.jetbrains.annotations.NotNull;
+
+public abstract class BlockFullyRotatable extends Block {
+    public static final int MASK_DIRECTION = 0b0000_0111;
+    public BlockFullyRotatable(String translationKey, String namespaceId, int id, Material material) {
+        super(translationKey, namespaceId, id, material);
+    }
+
+    @Override
+    public void onBlockPlacedByMob(World world, int x, int y, int z, @NotNull Side side, Mob mob, double xPlaced, double yPlaced) {
+        final Direction direction = mob.getPlacementDirection(side).getOpposite();
+
+        world.setBlockMetadataWithNotify(x, y, z, directionToMeta(direction));
+    }
+
+    @Override
+    public void onBlockPlacedOnSide(World world, int x, int y, int z, @NotNull Side side, double xPlaced, double yPlaced) {
+        world.setBlockMetadataWithNotify(x, y, z, directionToMeta(side.getDirection()));
+    }
+
+    public static int directionToMeta(Direction direction) {
+        return direction.getId() & MASK_DIRECTION;
+    }
+
+    public static Direction metaToDirection(int meta) {
+        return Direction.getDirectionById(meta & MASK_DIRECTION);
+    }
+}
diff --git a/src/main/java/net/minecraft/core/block/FurnaceBlock.java b/src/main/java/net/minecraft/core/block/BlockFurnace.java
similarity index 82%
rename from src/main/java/net/minecraft/core/block/FurnaceBlock.java
rename to src/main/java/net/minecraft/core/block/BlockFurnace.java
index 8928ba6da..9c380a1cd 100644
--- a/src/main/java/net/minecraft/core/block/FurnaceBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockFurnace.java
@@ -2,10 +2,9 @@ package net.minecraft.core.block;
 
 import com.mojang.logging.LogUtils;
 import net.minecraft.core.Global;
-import net.minecraft.core.block.entity.BlockEntity;
-import net.minecraft.core.block.entity.FurnaceBlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
+import net.minecraft.core.block.entity.TileEntityFurnace;
 import net.minecraft.core.block.material.Material;
-import net.minecraft.core.entity.ItemEntity;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.item.ItemStack;
@@ -18,21 +17,21 @@ import java.util.Random;
 
 // Referenced classes of package net.minecraft.src:
 //            BlockContainer, Material, Block, World, 
-//            IBlockAccess, FurnaceBlockEntity, Player, BlockEntity,
+//            IBlockAccess, TileEntityFurnace, Player, TileEntity,
 //            Mob, MathHelper, IInventory, ItemStack,
-//            ItemEntity
+//            EntityItem
 
-public class FurnaceBlock extends RotatableEntityBlock
+public class BlockFurnace extends BlockTileEntityRotatable
 {
     private static final Logger LOGGER = LogUtils.getLogger();
-	public FurnaceBlock(String key, String namespaceId, int id, boolean flag)
+	public BlockFurnace(String key, String namespaceId, int id, boolean flag)
     {
         super(key, namespaceId, id, Material.stone);
         isActive = flag;
     }
 
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity)
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity)
     {
         switch (dropCause)
         {
@@ -86,7 +85,7 @@ public class FurnaceBlock extends RotatableEntityBlock
     public boolean onBlockRightClicked(World world, int x, int y, int z, Player player, Side side, double xPlaced, double yPlaced)
     {
         if (!world.isClientSide) {
-            FurnaceBlockEntity tileentityfurnace = (FurnaceBlockEntity) world.getBlockEntity(x, y, z);
+            TileEntityFurnace tileentityfurnace = (TileEntityFurnace) world.getBlockEntity(x, y, z);
             player.displayFurnaceScreen(tileentityfurnace);
         }
         return true;
@@ -94,8 +93,8 @@ public class FurnaceBlock extends RotatableEntityBlock
 
 	public static void updateFurnaceBlockState(boolean lit, @NotNull World world, int x, int y, int z) {
 		int meta = world.getBlockMetadata(x, y, z);
-		BlockEntity blockEntity = world.getBlockEntity(x, y, z);
-		if(blockEntity == null) {
+		TileEntity tileEntity = world.getBlockEntity(x, y, z);
+		if(tileEntity == null) {
 			String msg = "Furnace is missing Tile Entity at x: "+x+" y: "+y+" z: "+z+", block will be removed!";
 			if(Global.BUILD_CHANNEL.isUnstableBuild()) {
 				throw new RuntimeException(msg);
@@ -112,14 +111,14 @@ public class FurnaceBlock extends RotatableEntityBlock
 		}
 		keepFurnaceInventory = false;
 		world.setBlockMetadataWithNotify(x, y, z, meta);
-		blockEntity.validate();
-		world.setBlockTileEntity(x, y, z, blockEntity);
+		tileEntity.validate();
+		world.setBlockTileEntity(x, y, z, tileEntity);
 	}
 
     @Override
-	protected BlockEntity getNewBlockEntity()
+	protected TileEntity getNewBlockEntity()
     {
-        return new FurnaceBlockEntity();
+        return new TileEntityFurnace();
     }
 
     protected Random furnaceRand;
diff --git a/src/main/java/net/minecraft/core/block/BlastFurnaceBlock.java b/src/main/java/net/minecraft/core/block/BlockFurnaceBlast.java
similarity index 82%
rename from src/main/java/net/minecraft/core/block/BlastFurnaceBlock.java
rename to src/main/java/net/minecraft/core/block/BlockFurnaceBlast.java
index 573109ede..d34d941a3 100644
--- a/src/main/java/net/minecraft/core/block/BlastFurnaceBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockFurnaceBlast.java
@@ -2,8 +2,8 @@ package net.minecraft.core.block;
 
 import com.mojang.logging.LogUtils;
 import net.minecraft.core.Global;
-import net.minecraft.core.block.entity.BlockEntity;
-import net.minecraft.core.block.entity.BlastFurnaceBlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
+import net.minecraft.core.block.entity.TileEntityFurnaceBlastFurnace;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.item.ItemStack;
@@ -15,21 +15,21 @@ import java.util.Random;
 
 // Referenced classes of package net.minecraft.src:
 //            BlockContainer, Material, Block, World,
-//            IBlockAccess, FurnaceBlockEntity, Player, BlockEntity,
+//            IBlockAccess, TileEntityFurnace, Player, TileEntity,
 //            Mob, MathHelper, IInventory, ItemStack,
-//            ItemEntity
+//            EntityItem
 
-public class BlastFurnaceBlock extends FurnaceBlock
+public class BlockFurnaceBlast extends BlockFurnace
 {
     private static final Logger LOGGER = LogUtils.getLogger();
 
-	public BlastFurnaceBlock(String key, String namespaceId, int id, boolean flag)
+	public BlockFurnaceBlast(String key, String namespaceId, int id, boolean flag)
     {
         super(key, namespaceId, id, flag);
     }
 
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity)
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity)
     {
         switch (dropCause)
         {
@@ -47,7 +47,7 @@ public class BlastFurnaceBlock extends FurnaceBlock
     public boolean onBlockRightClicked(World world, int x, int y, int z, Player player, Side side, double xPlaced, double yPlaced)
     {
         if (!world.isClientSide) {
-            BlastFurnaceBlockEntity tileentityblastfurnace = (BlastFurnaceBlockEntity) world.getBlockEntity(x, y, z);
+            TileEntityFurnaceBlastFurnace tileentityblastfurnace = (TileEntityFurnaceBlastFurnace) world.getBlockEntity(x, y, z);
             player.displayFurnaceScreen(tileentityblastfurnace);
         }
         return true;
@@ -90,8 +90,8 @@ public class BlastFurnaceBlock extends FurnaceBlock
 
 	public static void updateFurnaceBlockState(boolean lit, World world, int x, int y, int z) {
 		int meta = world.getBlockMetadata(x, y, z);
-		BlockEntity blockEntity = world.getBlockEntity(x, y, z);
-		if(blockEntity == null) {
+		TileEntity tileEntity = world.getBlockEntity(x, y, z);
+		if(tileEntity == null) {
 			String msg = "Blast Furnace is missing Tile Entity at x: "+x+" y: "+y+" z: "+z+", block will be removed!";
 			if(Global.BUILD_CHANNEL.isUnstableBuild()) {
 				throw new RuntimeException(msg);
@@ -108,14 +108,14 @@ public class BlastFurnaceBlock extends FurnaceBlock
 		}
 		keepFurnaceInventory = false;
 		world.setBlockMetadataWithNotify(x, y, z, meta);
-		blockEntity.validate();
-		world.setBlockTileEntity(x, y, z, blockEntity);
+		tileEntity.validate();
+		world.setBlockTileEntity(x, y, z, tileEntity);
 	}
 
     @Override
-	protected BlockEntity getNewBlockEntity()
+	protected TileEntity getNewBlockEntity()
     {
-        return new BlastFurnaceBlockEntity();
+        return new TileEntityFurnaceBlastFurnace();
     }
 
 }
diff --git a/src/main/java/net/minecraft/core/block/GlassBlock.java b/src/main/java/net/minecraft/core/block/BlockGlass.java
similarity index 76%
rename from src/main/java/net/minecraft/core/block/GlassBlock.java
rename to src/main/java/net/minecraft/core/block/BlockGlass.java
index 75b62585c..636ba6b05 100644
--- a/src/main/java/net/minecraft/core/block/GlassBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockGlass.java
@@ -1,6 +1,6 @@
 package net.minecraft.core.block;
 
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.item.ItemStack;
@@ -9,16 +9,16 @@ import net.minecraft.core.world.World;
 // Referenced classes of package net.minecraft.src:
 //            BlockBreakable, Material
 
-public class GlassBlock extends TransparentBlock
+public class BlockGlass extends BlockTransparent
 {
 
-    public GlassBlock(String key, String namespaceId, int id, Material material)
+    public BlockGlass(String key, String namespaceId, int id, Material material)
     {
         super(key, namespaceId, id, material);
     }
 
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity)
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity)
     {
         switch (dropCause)
         {
diff --git a/src/main/java/net/minecraft/core/block/TintedGlassBlock.java b/src/main/java/net/minecraft/core/block/BlockGlassTinted.java
similarity index 80%
rename from src/main/java/net/minecraft/core/block/TintedGlassBlock.java
rename to src/main/java/net/minecraft/core/block/BlockGlassTinted.java
index 67ae5e4d8..977d919e2 100644
--- a/src/main/java/net/minecraft/core/block/TintedGlassBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockGlassTinted.java
@@ -1,6 +1,6 @@
 package net.minecraft.core.block;
 
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.block.material.Material;
@@ -9,10 +9,10 @@ import net.minecraft.core.world.World;
 // Referenced classes of package net.minecraft.src:
 //            BlockBreakable, Material
 
-public class TintedGlassBlock extends GlassBlock
+public class BlockGlassTinted extends BlockGlass
 {
 
-    public TintedGlassBlock(String key, String namespaceID, int id)
+    public BlockGlassTinted(String key, String namespaceID, int id)
     {
         super(key, namespaceID, id, Material.glass);
     }
@@ -31,7 +31,7 @@ public class TintedGlassBlock extends GlassBlock
     }
 
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity)
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity)
     {
         switch (dropCause)
         {
diff --git a/src/main/java/net/minecraft/core/block/GlowStoneBlock.java b/src/main/java/net/minecraft/core/block/BlockGlowStone.java
similarity index 82%
rename from src/main/java/net/minecraft/core/block/GlowStoneBlock.java
rename to src/main/java/net/minecraft/core/block/BlockGlowStone.java
index ecf0302ae..106033879 100644
--- a/src/main/java/net/minecraft/core/block/GlowStoneBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockGlowStone.java
@@ -1,6 +1,6 @@
 package net.minecraft.core.block;
 
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.item.Items;
 import net.minecraft.core.item.ItemStack;
@@ -11,16 +11,16 @@ import net.minecraft.core.world.WorldSource;
 // Referenced classes of package net.minecraft.src:
 //            Block, Item, Material
 
-public class GlowStoneBlock extends Block
+public class BlockGlowStone extends Block
 {
 
-    public GlowStoneBlock(String key, String namespaceId, int id, Material material)
+    public BlockGlowStone(String key, String namespaceId, int id, Material material)
     {
         super(key, namespaceId, id, material);
     }
 
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity)
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity)
     {
         switch (dropCause)
         {
diff --git a/src/main/java/net/minecraft/core/block/GrassBlock.java b/src/main/java/net/minecraft/core/block/BlockGrass.java
similarity index 94%
rename from src/main/java/net/minecraft/core/block/GrassBlock.java
rename to src/main/java/net/minecraft/core/block/BlockGrass.java
index 65b19040c..cd3067d3c 100644
--- a/src/main/java/net/minecraft/core/block/GrassBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockGrass.java
@@ -2,7 +2,7 @@ package net.minecraft.core.block;
 
 import java.util.Random;
 
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.data.gamerule.GameRules;
 import net.minecraft.core.enums.EnumDropCause;
@@ -16,11 +16,11 @@ import net.minecraft.core.world.noise.ImprovedNoise;
 //            Block, Material, IBlockAccess, WorldChunkManager, 
 //            ColorizerGrass, World
 
-public class GrassBlock extends Block
+public class BlockGrass extends Block
 {
     private static ImprovedNoise grassColorPerlin = new ImprovedNoise(new Random(0));
 
-    public GrassBlock(String key, String namespaceId, int id, Material material)
+    public BlockGrass(String key, String namespaceId, int id, Material material)
     {
         super(key, namespaceId, id, material);
         setTicking(true);
@@ -83,7 +83,7 @@ public class GrassBlock extends Block
     }
 
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity)
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity)
     {
         switch (dropCause)
         {
diff --git a/src/main/java/net/minecraft/core/block/ScorchedGrassBlock.java b/src/main/java/net/minecraft/core/block/BlockGrassScorched.java
similarity index 76%
rename from src/main/java/net/minecraft/core/block/ScorchedGrassBlock.java
rename to src/main/java/net/minecraft/core/block/BlockGrassScorched.java
index 16759e0ec..9c7cf707a 100644
--- a/src/main/java/net/minecraft/core/block/ScorchedGrassBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockGrassScorched.java
@@ -1,20 +1,20 @@
 package net.minecraft.core.block;
 
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.world.World;
 
-public class ScorchedGrassBlock extends Block
+public class BlockGrassScorched extends Block
 {
-    public ScorchedGrassBlock(String key, String namespaceId, int id, Material material)
+    public BlockGrassScorched(String key, String namespaceId, int id, Material material)
     {
         super(key, namespaceId, id, material);
     }
 
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity)
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity)
     {
         switch (dropCause)
         {
diff --git a/src/main/java/net/minecraft/core/block/GravelBlock.java b/src/main/java/net/minecraft/core/block/BlockGravel.java
similarity index 78%
rename from src/main/java/net/minecraft/core/block/GravelBlock.java
rename to src/main/java/net/minecraft/core/block/BlockGravel.java
index 3bbad9999..0b1dd2b1d 100644
--- a/src/main/java/net/minecraft/core/block/GravelBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockGravel.java
@@ -1,24 +1,24 @@
 package net.minecraft.core.block;
 
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.item.Items;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.world.World;
 
 // Referenced classes of package net.minecraft.src:
-//            SandBlock, Item
+//            BlockSand, Item
 
-public class GravelBlock extends SandBlock
+public class BlockGravel extends BlockSand
 {
 
-    public GravelBlock(String key, String namespaceId, int id)
+    public BlockGravel(String key, String namespaceId, int id)
     {
         super(key, namespaceId, id);
     }
 
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity)
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity)
     {
         switch (dropCause)
         {
diff --git a/src/main/java/net/minecraft/core/block/IceBlock.java b/src/main/java/net/minecraft/core/block/BlockIce.java
similarity index 83%
rename from src/main/java/net/minecraft/core/block/IceBlock.java
rename to src/main/java/net/minecraft/core/block/BlockIce.java
index 0feddf8a8..24802c980 100644
--- a/src/main/java/net/minecraft/core/block/IceBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockIce.java
@@ -1,6 +1,6 @@
 package net.minecraft.core.block;
 
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.enums.EnumDropCause;
@@ -14,10 +14,10 @@ import java.util.Random;
 //            BlockBreakable, Material, World, Block, 
 //            EnumSkyBlock, IBlockAccess, Player
 
-public class IceBlock extends TransparentBlock
+public class BlockIce extends BlockTransparent
 {
 
-    public IceBlock(String key, String namespaceId, int id)
+    public BlockIce(String key, String namespaceId, int id)
     {
         super(key, namespaceId, id, Material.ice);
         friction = 0.98F;
@@ -31,7 +31,7 @@ public class IceBlock extends TransparentBlock
     }
 
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity)
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity)
     {
         switch (dropCause)
         {
@@ -44,9 +44,9 @@ public class IceBlock extends TransparentBlock
     }
 
     @Override
-    public void harvestBlock(World world, Player entityplayer, int x, int y, int z, int meta, BlockEntity blockEntity)
+    public void harvestBlock(World world, Player entityplayer, int x, int y, int z, int meta, TileEntity tileEntity)
     {
-        super.harvestBlock(world, entityplayer, x, y, z, meta, blockEntity);
+        super.harvestBlock(world, entityplayer, x, y, z, meta, tileEntity);
         Material material = world.getBlockMaterial(x, y - 1, z);
         if(material.blocksMotion() || material.isLiquid())
         {
diff --git a/src/main/java/net/minecraft/core/block/JarBlock.java b/src/main/java/net/minecraft/core/block/BlockJar.java
similarity index 80%
rename from src/main/java/net/minecraft/core/block/JarBlock.java
rename to src/main/java/net/minecraft/core/block/BlockJar.java
index c425fbfac..0c33182d7 100644
--- a/src/main/java/net/minecraft/core/block/JarBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockJar.java
@@ -1,7 +1,7 @@
 package net.minecraft.core.block;
 
-import net.minecraft.core.block.entity.BlockEntity;
-import net.minecraft.core.block.entity.FlowerJarBlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
+import net.minecraft.core.block.entity.TileEntityFlowerJar;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.block.tag.BlockTags;
 import net.minecraft.core.entity.player.Player;
@@ -9,7 +9,7 @@ import net.minecraft.core.enums.EnumBlockSoundEffectType;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.item.Item;
 import net.minecraft.core.item.ItemStack;
-import net.minecraft.core.item.block.BlockItem;
+import net.minecraft.core.item.block.ItemBlock;
 import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.util.phys.AABB;
 import net.minecraft.core.world.World;
@@ -18,10 +18,10 @@ import org.jetbrains.annotations.NotNull;
 
 import java.util.function.Supplier;
 
-public class JarBlock extends EntityBlock {
+public class BlockJar extends BlockTileEntity {
 
     private final Supplier<Item> itemSupplier;
-    public JarBlock(String key, String namespaceId, int id, @NotNull Supplier<Item> itemSupplier) {
+    public BlockJar(String key, String namespaceId, int id, @NotNull Supplier<Item> itemSupplier) {
         super(key, namespaceId, id, Material.glass);
         setBlockBounds(0.3125f, 0, 0.3125f, 1 - 0.3125f, 0.375f, 1 - 0.3125f);
         this.itemSupplier = itemSupplier;
@@ -77,7 +77,7 @@ public class JarBlock extends EntityBlock {
                     world.dropItem(x, y, z, new ItemStack(itemSupplier.get(), 1, 0));
                 }
             } else {
-                FlowerJarBlockEntity tileEntity = (FlowerJarBlockEntity) world.getBlockEntity(x, y, z);
+                TileEntityFlowerJar tileEntity = (TileEntityFlowerJar) world.getBlockEntity(x, y, z);
                 int flowerInPot = tileEntity.flowerInPot;
                 int flowerData = tileEntity.flowerData;
                 if (flowerInPot > 0 && hasTag(flowerInPot, BlockTags.PLANTABLE_IN_JAR)) {
@@ -89,10 +89,10 @@ public class JarBlock extends EntityBlock {
                     }
                 }
             }
-        } else if (player.getHeldItem().getItem() instanceof BlockItem) {
-            Block blockInHand = ((BlockItem) player.getHeldItem().getItem()).getBlock();
+        } else if (player.getHeldItem().getItem() instanceof ItemBlock) {
+            Block blockInHand = ((ItemBlock) player.getHeldItem().getItem()).getBlock();
             if (hasTag(blockInHand.id, BlockTags.PLANTABLE_IN_JAR)) {
-                FlowerJarBlockEntity tileEntity = (FlowerJarBlockEntity) world.getBlockEntity(x, y, z);
+                TileEntityFlowerJar tileEntity = (TileEntityFlowerJar) world.getBlockEntity(x, y, z);
                 if(world.getBlockMetadata(x, y, z) == 0) {
                     player.getHeldItem().consumeItem(player);
                     world.setBlockMetadataWithNotify(x, y, z, 1);
@@ -100,14 +100,14 @@ public class JarBlock extends EntityBlock {
                     tileEntity.flowerData = player.getHeldItem().getMetadata();
                     world.playBlockSoundEffect(player, x + 0.5f, y + 0.5f, z + 0.5f, this, EnumBlockSoundEffectType.PLACE);
                     return true;
-                } else if (blockInHand instanceof StackedFlowerBlock && blockInHand == Block.getBlock(tileEntity.flowerInPot)) {
+                } else if (blockInHand instanceof BlockFlowerStackable && blockInHand == Block.getBlock(tileEntity.flowerInPot)) {
                     final int metadata = tileEntity.flowerData;
-                    final int currentStackCount = StackedFlowerBlock.getStackCount(metadata);
-                    if (currentStackCount >= StackedFlowerBlock.MAX_STACK_COUNT) {
+                    final int currentStackCount = BlockFlowerStackable.getStackCount(metadata);
+                    if (currentStackCount >= BlockFlowerStackable.MAX_STACK_COUNT) {
                         return false;
                     }
 
-                    final int newMetadata = StackedFlowerBlock.setPermanent(StackedFlowerBlock.setStackCount(metadata, currentStackCount + 1), true);
+                    final int newMetadata = BlockFlowerStackable.setPermanent(BlockFlowerStackable.setStackCount(metadata, currentStackCount + 1), true);
                     tileEntity.flowerData = newMetadata;
                     world.playBlockSoundEffect(player, x + 0.5f, y + 0.5f, z + 0.5f, this, EnumBlockSoundEffectType.PLACE);
                     player.getHeldItem().consumeItem(player);
@@ -124,7 +124,7 @@ public class JarBlock extends EntityBlock {
     }
 
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity)
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity)
     {
         switch (dropCause)
         {
@@ -144,9 +144,9 @@ public class JarBlock extends EntityBlock {
     }
 
     @Override
-    protected BlockEntity getNewBlockEntity()
+    protected TileEntity getNewBlockEntity()
     {
-        return new FlowerJarBlockEntity();
+        return new TileEntityFlowerJar();
     }
 
 }
\ No newline at end of file
diff --git a/src/main/java/net/minecraft/core/block/JukeboxBlock.java b/src/main/java/net/minecraft/core/block/BlockJukebox.java
similarity index 61%
rename from src/main/java/net/minecraft/core/block/JukeboxBlock.java
rename to src/main/java/net/minecraft/core/block/BlockJukebox.java
index 48e354516..daed5484d 100644
--- a/src/main/java/net/minecraft/core/block/JukeboxBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockJukebox.java
@@ -1,24 +1,22 @@
 package net.minecraft.core.block;
 
 // Referenced classes of package net.minecraft.src:
-//            BlockContainer, Material, World, JukeboxBlockEntity,
-//            ItemEntity, ItemStack, Player, BlockEntity
+//            BlockContainer, Material, World, TileEntityJukebox,
+//            EntityItem, ItemStack, Player, TileEntity
 
-import net.minecraft.core.block.entity.ActivatorBlockEntity;
-import net.minecraft.core.block.entity.BlockEntity;
-import net.minecraft.core.block.entity.JukeboxBlockEntity;
-import net.minecraft.core.entity.ItemEntity;
+import net.minecraft.core.block.entity.TileEntityActivator;
+import net.minecraft.core.block.entity.TileEntity;
+import net.minecraft.core.block.entity.TileEntityJukebox;
 import net.minecraft.core.entity.player.Player;
-import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.util.helper.Direction;
 import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.world.World;
 import net.minecraft.core.block.material.Material;
 
-public class JukeboxBlock extends EntityBlock
+public class BlockJukebox extends BlockTileEntity
 {
 
-	public JukeboxBlock(String key, String namespaceId, int id)
+	public BlockJukebox(String key, String namespaceId, int id)
     {
         super(key, namespaceId, id, Material.wood);
     }
@@ -37,7 +35,7 @@ public class JukeboxBlock extends EntityBlock
     }
 
     @Override
-    public void onActivatorInteract(World world, int x, int y, int z, ActivatorBlockEntity activator, Direction direction) {
+    public void onActivatorInteract(World world, int x, int y, int z, TileEntityActivator activator, Direction direction) {
         if (world.getBlockMetadata(x, y, z) != 0) {
             ejectRecord(world, x, y, z);
         }
@@ -46,7 +44,7 @@ public class JukeboxBlock extends EntityBlock
     public void playRecord(World world, int x, int y, int z, int recordId)
     {
         if (!world.isClientSide) {
-            JukeboxBlockEntity jukebox = (JukeboxBlockEntity) world.getBlockEntity(x, y, z);
+            TileEntityJukebox jukebox = (TileEntityJukebox) world.getBlockEntity(x, y, z);
             jukebox.record = recordId;
             jukebox.setChanged();
             world.setBlockMetadataWithNotify(x, y, z, 1);
@@ -59,13 +57,13 @@ public class JukeboxBlock extends EntityBlock
         {
             return;
         }
-        BlockEntity blockEntity = world.getBlockEntity(x, y, z);
-        blockEntity.dropContents(world, x, y, z);
+        TileEntity tileEntity = world.getBlockEntity(x, y, z);
+        tileEntity.dropContents(world, x, y, z);
     }
 
     @Override
-	protected BlockEntity getNewBlockEntity()
+	protected TileEntity getNewBlockEntity()
     {
-        return new JukeboxBlockEntity();
+        return new TileEntityJukebox();
     }
 }
diff --git a/src/main/java/net/minecraft/core/block/LadderBlock.java b/src/main/java/net/minecraft/core/block/BlockLadder.java
similarity index 95%
rename from src/main/java/net/minecraft/core/block/LadderBlock.java
rename to src/main/java/net/minecraft/core/block/BlockLadder.java
index a9bd3529a..e9da8c4f9 100644
--- a/src/main/java/net/minecraft/core/block/LadderBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockLadder.java
@@ -7,9 +7,9 @@ import net.minecraft.core.util.phys.AABB;
 import net.minecraft.core.world.World;
 import net.minecraft.core.world.WorldSource;
 
-public class LadderBlock extends Block {
+public class BlockLadder extends Block {
 
-	public LadderBlock(String key, String namespaceId, int id) {
+	public BlockLadder(String key, String namespaceId, int id) {
 		super(key, namespaceId, id, Material.wood);
 	}
 	
@@ -55,13 +55,13 @@ public class LadderBlock extends Block {
 	
 	@Override
 	public final boolean canPlaceBlockAt(World world, int x, int y, int z) {
-		// Unused, check LadderBlockItem
+		// Unused, check ItemBlockLadder
 		return true;
 	}
 	
 	@Override
 	public final boolean canPlaceBlockOnSide(World world, int x, int y, int z, Side side) {
-		// Unused, check LadderBlockItem
+		// Unused, check ItemBlockLadder
 		return true;
 	}
 	
diff --git a/src/main/java/net/minecraft/core/block/LampBlock.java b/src/main/java/net/minecraft/core/block/BlockLamp.java
similarity index 89%
rename from src/main/java/net/minecraft/core/block/LampBlock.java
rename to src/main/java/net/minecraft/core/block/BlockLamp.java
index be09345f7..fb75a470b 100644
--- a/src/main/java/net/minecraft/core/block/LampBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockLamp.java
@@ -1,8 +1,7 @@
 package net.minecraft.core.block;
 
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.block.material.Material;
-import net.minecraft.core.entity.Mob;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.util.helper.DyeColor;
@@ -10,10 +9,10 @@ import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.world.World;
 import org.jetbrains.annotations.NotNull;
 
-public class LampBlock extends Block implements IPainted {
+public class BlockLamp extends Block implements IPainted {
     public boolean isActive;
 
-    public LampBlock(String key, String namespaceId, int id, boolean isActivated) {
+    public BlockLamp(String key, String namespaceId, int id, boolean isActivated) {
         super(key, namespaceId, id, Material.stone);
         isActive = isActivated;
     }
@@ -45,7 +44,7 @@ public class LampBlock extends Block implements IPainted {
     }
 
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity) {
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity) {
         return new ItemStack[]{new ItemStack(Blocks.LAMP_IDLE, 1, meta)};
     }
 
diff --git a/src/main/java/net/minecraft/core/block/FireflyLanternBlock.java b/src/main/java/net/minecraft/core/block/BlockLanternFirefly.java
similarity index 92%
rename from src/main/java/net/minecraft/core/block/FireflyLanternBlock.java
rename to src/main/java/net/minecraft/core/block/BlockLanternFirefly.java
index 442091669..553e2f079 100644
--- a/src/main/java/net/minecraft/core/block/FireflyLanternBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockLanternFirefly.java
@@ -1,10 +1,9 @@
 package net.minecraft.core.block;
 
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.block.tag.BlockTags;
-import net.minecraft.core.entity.Mob;
-import net.minecraft.core.entity.animal.FireflyClusterMob;
+import net.minecraft.core.entity.animal.MobFireflyCluster;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.item.Item;
@@ -18,13 +17,13 @@ import org.jetbrains.annotations.NotNull;
 import java.util.Random;
 import java.util.function.Supplier;
 
-public class FireflyLanternBlock extends Block{
+public class BlockLanternFirefly extends Block{
     public static final int MASK_HANGING = 0b0000_0001;
     public static final int MASK_ANGLED = 0b0000_0010;
     private final Supplier<Item> itemSupplier;
-    private final FireflyClusterMob.FireflyColor color;
+    private final MobFireflyCluster.FireflyColor color;
 
-    public FireflyLanternBlock(String key, String namespaceId, int id, FireflyClusterMob.FireflyColor colour, @NotNull Supplier<Item> itemSupplier) {
+    public BlockLanternFirefly(String key, String namespaceId, int id, MobFireflyCluster.FireflyColor colour, @NotNull Supplier<Item> itemSupplier) {
         super(key, namespaceId, id, Material.glass);
         this.color = colour;
         this.itemSupplier = itemSupplier;
@@ -129,7 +128,7 @@ public class FireflyLanternBlock extends Block{
     }
 
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity)
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity)
     {
         switch (dropCause)
         {
@@ -159,7 +158,7 @@ public class FireflyLanternBlock extends Block{
     		return;
     	}
     	if(!world.isClientSide) {
-        	FireflyClusterMob entity = new FireflyClusterMob(world);
+        	MobFireflyCluster entity = new MobFireflyCluster(world);
         	entity.setColor(color);
         	entity.setFireflyCount(1);
         	entity.setClusterSize(0);
diff --git a/src/main/java/net/minecraft/core/block/BaseLayerBlock.java b/src/main/java/net/minecraft/core/block/BlockLayerBase.java
similarity index 81%
rename from src/main/java/net/minecraft/core/block/BaseLayerBlock.java
rename to src/main/java/net/minecraft/core/block/BlockLayerBase.java
index 1fc4fe512..c5e64424f 100644
--- a/src/main/java/net/minecraft/core/block/BaseLayerBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockLayerBase.java
@@ -1,7 +1,7 @@
 package net.minecraft.core.block;
 
 import net.minecraft.core.block.material.Material;
-import net.minecraft.core.item.block.LayerBlockItem;
+import net.minecraft.core.item.block.ItemBlockLayer;
 import net.minecraft.core.util.phys.AABB;
 import net.minecraft.core.world.WorldSource;
 
@@ -9,20 +9,20 @@ import java.util.function.Supplier;
 
 // Referenced classes of package net.minecraft.src:
 //            Block, Material, World, AxisAlignedBB, 
-//            IBlockAccess, Item, ItemEntity, ItemStack,
+//            IBlockAccess, Item, EntityItem, ItemStack,
 //            StatList, Player, EnumSkyBlock
 
-public abstract class BaseLayerBlock extends Block
+public abstract class BlockLayerBase extends Block
 {
     private Supplier<Integer> idSupplier = () -> -1;
 	
-	public BaseLayerBlock(String key, String namespaceId, int id, Material material)
+	public BlockLayerBase(String key, String namespaceId, int id, Material material)
     {
         super(key, namespaceId, id, material);
         setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.125F, 1.0F);
-        setBlockItem(() -> new LayerBlockItem(this));
+        setBlockItem(() -> new ItemBlockLayer(this));
     }
-    public BaseLayerBlock setFullBlockID(Supplier<Integer> idSupplier)
+    public BlockLayerBase setFullBlockID(Supplier<Integer> idSupplier)
     {
     	this.idSupplier = idSupplier;
     	return this;
diff --git a/src/main/java/net/minecraft/core/block/LeavesLayerBlock.java b/src/main/java/net/minecraft/core/block/BlockLayerLeaves.java
similarity index 92%
rename from src/main/java/net/minecraft/core/block/LeavesLayerBlock.java
rename to src/main/java/net/minecraft/core/block/BlockLayerLeaves.java
index 1f18fead4..7e4d56ecc 100644
--- a/src/main/java/net/minecraft/core/block/LeavesLayerBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockLayerLeaves.java
@@ -1,7 +1,7 @@
 package net.minecraft.core.block;
 
 
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.world.World;
@@ -13,14 +13,14 @@ import java.util.Random;
 
 // Referenced classes of package net.minecraft.src:
 //            Block, Material, World, AxisAlignedBB, 
-//            IBlockAccess, Item, ItemEntity, ItemStack,
+//            IBlockAccess, Item, EntityItem, ItemStack,
 //            StatList, Player, EnumSkyBlock
 
-public class LeavesLayerBlock extends BaseLayerBlock
+public class BlockLayerLeaves extends BlockLayerBase
 {
     public static final int MASK_PERMANENT = 0b1000_0000;
 
-	public LeavesLayerBlock(String key, String namespaceId, int id, Material material)
+	public BlockLayerLeaves(String key, String namespaceId, int id, Material material)
     {
         super(key, namespaceId, id, material);
         setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.125F, 1.0F);
@@ -55,7 +55,7 @@ public class LeavesLayerBlock extends BaseLayerBlock
 	public boolean canPlaceBlockAt(World world, int x, int y, int z)
     {
         int l = world.getBlockId(x, y - 1, z);
-        if(l == 0 || (!Block.blocksList[l].isSolidRender() && !(Block.blocksList[l] instanceof BaseLeavesBlock)))
+        if(l == 0 || (!Block.blocksList[l].isSolidRender() && !(Block.blocksList[l] instanceof BlockLeavesBase)))
         {
         	return false;
         }
@@ -78,7 +78,7 @@ public class LeavesLayerBlock extends BaseLayerBlock
 
 
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity)
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity)
     {
         switch (dropCause)
         {
diff --git a/src/main/java/net/minecraft/core/block/SlateLayerBlock.java b/src/main/java/net/minecraft/core/block/BlockLayerSlate.java
similarity index 77%
rename from src/main/java/net/minecraft/core/block/SlateLayerBlock.java
rename to src/main/java/net/minecraft/core/block/BlockLayerSlate.java
index 7194a08f1..3305b34b2 100644
--- a/src/main/java/net/minecraft/core/block/SlateLayerBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockLayerSlate.java
@@ -1,21 +1,21 @@
 package net.minecraft.core.block;
 
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.world.World;
 
 
-public class SlateLayerBlock extends BaseLayerBlock
+public class BlockLayerSlate extends BlockLayerBase
 {
-	public SlateLayerBlock(String key, String namespaceId, int id, Material material)
+	public BlockLayerSlate(String key, String namespaceId, int id, Material material)
 	{
 		super(key, namespaceId, id, material);
 	}
 
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity)
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity)
     {
         switch (dropCause)
         {
diff --git a/src/main/java/net/minecraft/core/block/SnowLayerBlock.java b/src/main/java/net/minecraft/core/block/BlockLayerSnow.java
similarity index 92%
rename from src/main/java/net/minecraft/core/block/SnowLayerBlock.java
rename to src/main/java/net/minecraft/core/block/BlockLayerSnow.java
index d8f08df6a..3849499c3 100644
--- a/src/main/java/net/minecraft/core/block/SnowLayerBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockLayerSnow.java
@@ -1,6 +1,6 @@
 package net.minecraft.core.block;
 
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.item.Items;
 import net.minecraft.core.item.ItemStack;
@@ -14,13 +14,13 @@ import java.util.Random;
 
 // Referenced classes of package net.minecraft.src:
 //            Block, Material, World, AxisAlignedBB, 
-//            IBlockAccess, Item, ItemEntity, ItemStack,
+//            IBlockAccess, Item, EntityItem, ItemStack,
 //            StatList, Player, EnumSkyBlock
 
-public class SnowLayerBlock extends BaseLayerBlock
+public class BlockLayerSnow extends BlockLayerBase
 {
 
-	public SnowLayerBlock(String key, String namespaceId, int id, Material material)
+	public BlockLayerSnow(String key, String namespaceId, int id, Material material)
     {
         super(key, namespaceId, id, material);
         setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.125F, 1.0F);
@@ -57,7 +57,7 @@ public class SnowLayerBlock extends BaseLayerBlock
 	public boolean canPlaceBlockAt(World world, int x, int y, int z)
     {
         int l = world.getBlockId(x, y - 1, z);
-        if(l == 0 || (!Block.blocksList[l].isSolidRender() && !(Block.blocksList[l] instanceof BaseLeavesBlock)))
+        if(l == 0 || (!Block.blocksList[l].isSolidRender() && !(Block.blocksList[l] instanceof BlockLeavesBase)))
         {
         	return false;
         }
@@ -78,7 +78,7 @@ public class SnowLayerBlock extends BaseLayerBlock
         }
     }
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity)
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity)
     {
         switch (dropCause)
         {
diff --git a/src/main/java/net/minecraft/core/block/BaseLeavesBlock.java b/src/main/java/net/minecraft/core/block/BlockLeavesBase.java
similarity index 96%
rename from src/main/java/net/minecraft/core/block/BaseLeavesBlock.java
rename to src/main/java/net/minecraft/core/block/BlockLeavesBase.java
index 85924e0fc..165a70e13 100644
--- a/src/main/java/net/minecraft/core/block/BaseLeavesBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockLeavesBase.java
@@ -2,7 +2,7 @@ package net.minecraft.core.block;
 
 import java.util.Random;
 
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.enums.EnumDropCause;
@@ -17,14 +17,14 @@ import org.jetbrains.annotations.Nullable;
 // Referenced classes of package net.minecraft.src:
 //            Block, IBlockAccess, Material
 
-public abstract class BaseLeavesBlock extends Block
+public abstract class BlockLeavesBase extends Block
 {
     public static final int MASK_DECAY_DATA = 0b0000_1111;
     public static final int NUM_DECAY_BITS = 4;
     public static final int DECAY_FLAG_BIT = 3;
     public static final int PERMANENT_FLAG_BIT = 0;
 
-	public BaseLeavesBlock(String key, String namespaceId, int id, Material material)
+	public BlockLeavesBase(String key, String namespaceId, int id, Material material)
     {
         super(key, namespaceId, id, material);
         setTicking(true);
@@ -37,7 +37,7 @@ public abstract class BaseLeavesBlock extends Block
     }
 
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity)
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity)
     {
 
         Season season = world.getSeasonManager().getCurrentSeason();
@@ -71,7 +71,7 @@ public abstract class BaseLeavesBlock extends Block
                     for(int dz = -radius; dz <= radius; dz++)
                     {
                         int blockId = world.getBlockId(x + dx, y + dy, z + dz);
-                        if(Block.blocksList[blockId] instanceof BaseLeavesBlock)
+                        if(Block.blocksList[blockId] instanceof BlockLeavesBase)
                         {
                             int meta = world.getBlockMetadata(x + dx, y + dy, z + dz);
                             if (!isPermanent(meta))
@@ -112,12 +112,12 @@ public abstract class BaseLeavesBlock extends Block
                         for(int zOffset = -byte0; zOffset <= byte0; zOffset++)
                         {
                             int k3 = world.getBlockId(x + xOffset, y + yOffset, z + zOffset);
-                            if(Block.blocksList[k3] instanceof LogBlock)
+                            if(Block.blocksList[k3] instanceof BlockLog)
                             {
                                 adjacentTreeBlocks[(xOffset + halfLength) * xSpan + (yOffset + halfLength) * ySpan + (zOffset + halfLength)] = 0;
                                 continue;
                             }
-                            if(Block.blocksList[k3] instanceof BaseLeavesBlock)
+                            if(Block.blocksList[k3] instanceof BlockLeavesBase)
                             {
                                 adjacentTreeBlocks[(xOffset + halfLength) * xSpan + (yOffset + halfLength) * ySpan + (zOffset + halfLength)] = -2;
                             } else
diff --git a/src/main/java/net/minecraft/core/block/BirchLeavesBlock.java b/src/main/java/net/minecraft/core/block/BlockLeavesBirch.java
similarity index 71%
rename from src/main/java/net/minecraft/core/block/BirchLeavesBlock.java
rename to src/main/java/net/minecraft/core/block/BlockLeavesBirch.java
index a56d3b60b..84281eec2 100644
--- a/src/main/java/net/minecraft/core/block/BirchLeavesBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockLeavesBirch.java
@@ -3,15 +3,15 @@ package net.minecraft.core.block;
 import net.minecraft.core.block.material.Material;
 
 // Referenced classes of package net.minecraft.src:
-//            BaseLeavesBlock, Material, ColorizerFoliage, IBlockAccess,
+//            BlockLeavesBase, Material, ColorizerFoliage, IBlockAccess,
 //            WorldChunkManager, World, Block, Player,
 //            ItemStack, Item, ItemShears, StatList, 
 //            Entity
 
-public class BirchLeavesBlock extends BaseLeavesBlock
+public class BlockLeavesBirch extends BlockLeavesBase
 {
 
-	public BirchLeavesBlock(String key, String namespaceId, int id)
+	public BlockLeavesBirch(String key, String namespaceId, int id)
     {
         super(key, namespaceId, id, Material.leaves);
     }
diff --git a/src/main/java/net/minecraft/core/block/CacaoLeavesBlock.java b/src/main/java/net/minecraft/core/block/BlockLeavesCacao.java
similarity index 92%
rename from src/main/java/net/minecraft/core/block/CacaoLeavesBlock.java
rename to src/main/java/net/minecraft/core/block/BlockLeavesCacao.java
index f6c97c0aa..ae27a6f24 100644
--- a/src/main/java/net/minecraft/core/block/CacaoLeavesBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockLeavesCacao.java
@@ -1,7 +1,7 @@
 package net.minecraft.core.block;
 
-import net.minecraft.core.block.entity.ActivatorBlockEntity;
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntityActivator;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.enums.EnumDropCause;
@@ -18,12 +18,12 @@ import org.jetbrains.annotations.Nullable;
 
 import java.util.Random;
 
-public class CacaoLeavesBlock extends BaseLeavesBlock implements IBonemealable {
+public class BlockLeavesCacao extends BlockLeavesBase implements IBonemealable {
 
     public static final int MASK_GROWTH_DATA = 0b1111_0000;
     public static final int MAX_GROWTH_STATE = 4;
     static final int BEAN_GROWTH_RATE = 50;
-    public CacaoLeavesBlock(String key, String namespaceId, int id) {
+    public BlockLeavesCacao(String key, String namespaceId, int id) {
         super(key, namespaceId, id, Material.leaves);
         setTicking(true);
     }
@@ -40,7 +40,7 @@ public class CacaoLeavesBlock extends BaseLeavesBlock implements IBonemealable {
     }
 
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity)
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity)
     {
         if (dropCause == EnumDropCause.PICK_BLOCK || dropCause == EnumDropCause.SILK_TOUCH) return new ItemStack[] { new ItemStack(this) };
 
@@ -50,7 +50,7 @@ public class CacaoLeavesBlock extends BaseLeavesBlock implements IBonemealable {
             return new ItemStack[] { new ItemStack(Items.DYE, MathHelper.ceil((double) growthRate / 2), DyeColor.BROWN.itemMeta)};
         }
 
-        return super.getBreakResult(world, dropCause, meta, blockEntity);
+        return super.getBreakResult(world, dropCause, meta, tileEntity);
     }
 
     @Override
@@ -84,7 +84,7 @@ public class CacaoLeavesBlock extends BaseLeavesBlock implements IBonemealable {
     }
 
     @Override
-    public void onActivatorInteract(World world, int x, int y, int z, ActivatorBlockEntity activator, Direction direction) {
+    public void onActivatorInteract(World world, int x, int y, int z, TileEntityActivator activator, Direction direction) {
         harvest(world, x, y, z, null);
     }
 
diff --git a/src/main/java/net/minecraft/core/block/CherryLeavesBlock.java b/src/main/java/net/minecraft/core/block/BlockLeavesCherry.java
similarity index 83%
rename from src/main/java/net/minecraft/core/block/CherryLeavesBlock.java
rename to src/main/java/net/minecraft/core/block/BlockLeavesCherry.java
index f5b8a293a..57e707f5e 100644
--- a/src/main/java/net/minecraft/core/block/CherryLeavesBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockLeavesCherry.java
@@ -7,15 +7,15 @@ import net.minecraft.core.world.season.Seasons;
 import java.util.Random;
 
 // Referenced classes of package net.minecraft.src:
-//            BaseLeavesBlock, Material, ColorizerFoliage, IBlockAccess,
+//            BlockLeavesBase, Material, ColorizerFoliage, IBlockAccess,
 //            WorldChunkManager, World, Block, Player,
 //            ItemStack, Item, ItemShears, StatList, 
 //            Entity
 
-public class CherryLeavesBlock extends BaseLeavesBlock
+public class BlockLeavesCherry extends BlockLeavesBase
 {
 
-	public CherryLeavesBlock(String key, String namespaceId, int id)
+	public BlockLeavesCherry(String key, String namespaceId, int id)
     {
         super(key, namespaceId, id, Material.leaves);
     }
diff --git a/src/main/java/net/minecraft/core/block/FloweringCherryLeavesBlock.java b/src/main/java/net/minecraft/core/block/BlockLeavesCherryFlowering.java
similarity index 92%
rename from src/main/java/net/minecraft/core/block/FloweringCherryLeavesBlock.java
rename to src/main/java/net/minecraft/core/block/BlockLeavesCherryFlowering.java
index 332cbfe1e..6d991b53d 100644
--- a/src/main/java/net/minecraft/core/block/FloweringCherryLeavesBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockLeavesCherryFlowering.java
@@ -1,7 +1,7 @@
 package net.minecraft.core.block;
 
-import net.minecraft.core.block.entity.ActivatorBlockEntity;
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntityActivator;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.item.IBonemealable;
@@ -15,16 +15,16 @@ import org.jetbrains.annotations.Nullable;
 
 import java.util.Random;
 
-public class FloweringCherryLeavesBlock extends CherryLeavesBlock implements IBonemealable
+public class BlockLeavesCherryFlowering extends BlockLeavesCherry implements IBonemealable
 {
     public static final int MASK_GROWTH_DATA = 0b1111_0000;
     public static final int MAX_GROWTH_STATE = 1;
-	public FloweringCherryLeavesBlock(String key, String namespaceId, int id) {
+	public BlockLeavesCherryFlowering(String key, String namespaceId, int id) {
         super(key, namespaceId, id);
     }
 
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity)
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity)
     {
         int growthRate = getGrowthRate(meta);
         if (dropCause == EnumDropCause.PICK_BLOCK || dropCause == EnumDropCause.SILK_TOUCH) return new ItemStack[] { new ItemStack(this) };
@@ -68,7 +68,7 @@ public class FloweringCherryLeavesBlock extends CherryLeavesBlock implements IBo
     }
 
     @Override
-    public void onActivatorInteract(World world, int x, int y, int z, ActivatorBlockEntity activator, Direction direction) {
+    public void onActivatorInteract(World world, int x, int y, int z, TileEntityActivator activator, Direction direction) {
         harvest(world, x, y, z, null);
     }
 
diff --git a/src/main/java/net/minecraft/core/block/EucalyptusLeavesBlock.java b/src/main/java/net/minecraft/core/block/BlockLeavesEucalyptus.java
similarity index 82%
rename from src/main/java/net/minecraft/core/block/EucalyptusLeavesBlock.java
rename to src/main/java/net/minecraft/core/block/BlockLeavesEucalyptus.java
index dd0e431a8..ace4ab8d5 100644
--- a/src/main/java/net/minecraft/core/block/EucalyptusLeavesBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockLeavesEucalyptus.java
@@ -6,15 +6,15 @@ import net.minecraft.core.block.material.Material;
 import java.util.Random;
 
 // Referenced classes of package net.minecraft.src:
-//            BaseLeavesBlock, Material, ColorizerFoliage, IBlockAccess,
+//            BlockLeavesBase, Material, ColorizerFoliage, IBlockAccess,
 //            WorldChunkManager, World, Block, Player,
 //            ItemStack, Item, ItemShears, StatList, 
 //            Entity
 
-public class EucalyptusLeavesBlock extends BaseLeavesBlock
+public class BlockLeavesEucalyptus extends BlockLeavesBase
 {
 
-	public EucalyptusLeavesBlock(String key, String namespaceId, int id)
+	public BlockLeavesEucalyptus(String key, String namespaceId, int id)
     {
         super(key, namespaceId, id, Material.leaves);
     }
diff --git a/src/main/java/net/minecraft/core/block/OakLeavesBlock.java b/src/main/java/net/minecraft/core/block/BlockLeavesOak.java
similarity index 89%
rename from src/main/java/net/minecraft/core/block/OakLeavesBlock.java
rename to src/main/java/net/minecraft/core/block/BlockLeavesOak.java
index 12b58a7dd..5c41efdbf 100644
--- a/src/main/java/net/minecraft/core/block/OakLeavesBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockLeavesOak.java
@@ -7,14 +7,14 @@ import net.minecraft.core.world.wind.WindProvider;
 import java.util.Random;
 
 // Referenced classes of package net.minecraft.src:
-//            BaseLeavesBlock, Material, ColorizerFoliage, IBlockAccess,
+//            BlockLeavesBase, Material, ColorizerFoliage, IBlockAccess,
 //            WorldChunkManager, World, Block, Player,
 //            ItemStack, Item, ItemShears, StatList, 
 //            Entity
 
-public class OakLeavesBlock extends BaseLeavesBlock
+public class BlockLeavesOak extends BlockLeavesBase
 {
-	public OakLeavesBlock(String key, String namespaceId, int id)
+	public BlockLeavesOak(String key, String namespaceId, int id)
     {
         super(key, namespaceId, id, Material.leaves);
     }
@@ -36,7 +36,7 @@ public class OakLeavesBlock extends BaseLeavesBlock
                 }
                 else if (world.getBlockId(x, y + q, z) == Blocks.LAYER_LEAVES_OAK.id)
                 {
-                    ((LeavesLayerBlock) Blocks.LAYER_LEAVES_OAK).accumulate(world, x, y + q, z);
+                    ((BlockLayerLeaves) Blocks.LAYER_LEAVES_OAK).accumulate(world, x, y + q, z);
                     break;
                 }
             }
diff --git a/src/main/java/net/minecraft/core/block/PalmLeavesBlock.java b/src/main/java/net/minecraft/core/block/BlockLeavesPalm.java
similarity index 65%
rename from src/main/java/net/minecraft/core/block/PalmLeavesBlock.java
rename to src/main/java/net/minecraft/core/block/BlockLeavesPalm.java
index 6738b2313..713032a33 100644
--- a/src/main/java/net/minecraft/core/block/PalmLeavesBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockLeavesPalm.java
@@ -2,9 +2,9 @@ package net.minecraft.core.block;
 
 import net.minecraft.core.block.material.Material;
 
-public class PalmLeavesBlock extends BaseLeavesBlock {
+public class BlockLeavesPalm extends BlockLeavesBase {
 
-	public PalmLeavesBlock(String key, String namespaceId, int id) {
+	public BlockLeavesPalm(String key, String namespaceId, int id) {
 		super(key, namespaceId, id, Material.leaves);
 	}
 
diff --git a/src/main/java/net/minecraft/core/block/PineLeavesBlock.java b/src/main/java/net/minecraft/core/block/BlockLeavesPine.java
similarity index 77%
rename from src/main/java/net/minecraft/core/block/PineLeavesBlock.java
rename to src/main/java/net/minecraft/core/block/BlockLeavesPine.java
index 15740284c..59b825eed 100644
--- a/src/main/java/net/minecraft/core/block/PineLeavesBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockLeavesPine.java
@@ -1,27 +1,27 @@
 package net.minecraft.core.block;
 
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.world.World;
 import net.minecraft.core.block.material.Material;
 
 // Referenced classes of package net.minecraft.src:
-//            BaseLeavesBlock, Material, ColorizerFoliage, IBlockAccess,
+//            BlockLeavesBase, Material, ColorizerFoliage, IBlockAccess,
 //            WorldChunkManager, World, Block, Player,
 //            ItemStack, Item, ItemShears, StatList, 
 //            Entity
 
-public class PineLeavesBlock extends BaseLeavesBlock
+public class BlockLeavesPine extends BlockLeavesBase
 {
 
-	public PineLeavesBlock(String key, String namespaceId, int id)
+	public BlockLeavesPine(String key, String namespaceId, int id)
     {
         super(key, namespaceId, id, Material.leaves);
     }
 
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity)
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity)
     {
         if (dropCause == EnumDropCause.PICK_BLOCK || dropCause == EnumDropCause.SILK_TOUCH) return new ItemStack[] { new ItemStack(this) };
 
diff --git a/src/main/java/net/minecraft/core/block/RetroLeavesBlock.java b/src/main/java/net/minecraft/core/block/BlockLeavesRetro.java
similarity index 68%
rename from src/main/java/net/minecraft/core/block/RetroLeavesBlock.java
rename to src/main/java/net/minecraft/core/block/BlockLeavesRetro.java
index 8f43daa80..87649b35a 100644
--- a/src/main/java/net/minecraft/core/block/RetroLeavesBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockLeavesRetro.java
@@ -2,9 +2,9 @@ package net.minecraft.core.block;
 
 import net.minecraft.core.block.material.Material;
 
-public class RetroLeavesBlock extends BaseLeavesBlock
+public class BlockLeavesRetro extends BlockLeavesBase
 {
-	public RetroLeavesBlock(String key, String namespaceId, int id)
+	public BlockLeavesRetro(String key, String namespaceId, int id)
 	{
         super(key, namespaceId, id, Material.leaves);
 	}
diff --git a/src/main/java/net/minecraft/core/block/ShrubLeavesBlock.java b/src/main/java/net/minecraft/core/block/BlockLeavesShrub.java
similarity index 82%
rename from src/main/java/net/minecraft/core/block/ShrubLeavesBlock.java
rename to src/main/java/net/minecraft/core/block/BlockLeavesShrub.java
index 3632ad986..25a65f5f3 100644
--- a/src/main/java/net/minecraft/core/block/ShrubLeavesBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockLeavesShrub.java
@@ -6,15 +6,15 @@ import net.minecraft.core.block.material.Material;
 import java.util.Random;
 
 // Referenced classes of package net.minecraft.src:
-//            BaseLeavesBlock, Material, ColorizerFoliage, IBlockAccess,
+//            BlockLeavesBase, Material, ColorizerFoliage, IBlockAccess,
 //            WorldChunkManager, World, Block, Player,
 //            ItemStack, Item, ItemShears, StatList,
 //            Entity
 
-public class ShrubLeavesBlock extends BaseLeavesBlock
+public class BlockLeavesShrub extends BlockLeavesBase
 {
 
-	public ShrubLeavesBlock(String key, String namespaceId, int id)
+	public BlockLeavesShrub(String key, String namespaceId, int id)
     {
         super(key, namespaceId, id, Material.leaves);
     }
diff --git a/src/main/java/net/minecraft/core/block/ThornLeavesBlock.java b/src/main/java/net/minecraft/core/block/BlockLeavesThorn.java
similarity index 68%
rename from src/main/java/net/minecraft/core/block/ThornLeavesBlock.java
rename to src/main/java/net/minecraft/core/block/BlockLeavesThorn.java
index 4ca86074d..992442b61 100644
--- a/src/main/java/net/minecraft/core/block/ThornLeavesBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockLeavesThorn.java
@@ -2,9 +2,9 @@ package net.minecraft.core.block;
 
 import net.minecraft.core.block.material.Material;
 
-public class ThornLeavesBlock extends BaseLeavesBlock
+public class BlockLeavesThorn extends BlockLeavesBase
 {
-    public ThornLeavesBlock(String key, String namespaceId, int id)
+    public BlockLeavesThorn(String key, String namespaceId, int id)
     {
         super(key, namespaceId, id, Material.leaves);
     }
diff --git a/src/main/java/net/minecraft/core/block/LeverBlock.java b/src/main/java/net/minecraft/core/block/BlockLever.java
similarity index 98%
rename from src/main/java/net/minecraft/core/block/LeverBlock.java
rename to src/main/java/net/minecraft/core/block/BlockLever.java
index 62e0a9e9b..7023bdab9 100644
--- a/src/main/java/net/minecraft/core/block/LeverBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockLever.java
@@ -1,6 +1,6 @@
 package net.minecraft.core.block;
 
-import net.minecraft.core.block.entity.ActivatorBlockEntity;
+import net.minecraft.core.block.entity.TileEntityActivator;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.entity.Mob;
 import net.minecraft.core.entity.player.Player;
@@ -17,7 +17,7 @@ import net.minecraft.core.world.World;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
-public class LeverBlock extends Block
+public class BlockLever extends Block
 {
     public static final int MASK_POWERED = 0b0001_0000;
     public static final int MASK_ROTATION = 0b0000_1111;
@@ -30,7 +30,7 @@ public class LeverBlock extends Block
     public static final int ROTATION_BOTTOM_NS = 7;
     public static final int ROTATION_BOTTOM_WE = 8;
 
-	public LeverBlock(String key, String namespaceId, int id)
+	public BlockLever(String key, String namespaceId, int id)
     {
         super(key, namespaceId, id, Material.decoration);
     }
@@ -282,7 +282,7 @@ public class LeverBlock extends Block
     }
 
     @Override
-    public void onActivatorInteract(World world, int x, int y, int z, ActivatorBlockEntity activator, Direction direction) {
+    public void onActivatorInteract(World world, int x, int y, int z, TileEntityActivator activator, Direction direction) {
         flip(world, x, y, z, null);
     }
 
diff --git a/src/main/java/net/minecraft/core/block/LogBlock.java b/src/main/java/net/minecraft/core/block/BlockLog.java
similarity index 77%
rename from src/main/java/net/minecraft/core/block/LogBlock.java
rename to src/main/java/net/minecraft/core/block/BlockLog.java
index 863d86464..9d81135a2 100644
--- a/src/main/java/net/minecraft/core/block/LogBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockLog.java
@@ -3,10 +3,10 @@ package net.minecraft.core.block;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.world.World;
 
-public class LogBlock extends AxisAlignedBlock
+public class BlockLog extends BlockAxisAligned
 {
 
-	public LogBlock(String key, String namespaceId, int id)
+	public BlockLog(String key, String namespaceId, int id)
     {
         super(key, namespaceId, id, Material.wood);
     }
@@ -25,14 +25,14 @@ public class LogBlock extends AxisAlignedBlock
                     for(int _z = -r; _z <= r; _z++)
                     {
                         int l1 = world.getBlockId(x + _x, y + _y, z + _z);
-                        if(!(Block.blocksList[l1] instanceof BaseLeavesBlock))
+                        if(!(Block.blocksList[l1] instanceof BlockLeavesBase))
                         {
                             continue;
                         }
                         int leavesMeta = world.getBlockMetadata(x + _x, y + _y, z + _z);
-                        if(!BaseLeavesBlock.isPermanent(leavesMeta))
+                        if(!BlockLeavesBase.isPermanent(leavesMeta))
                         {
-                            world.setBlockMetadata(x + _x, y + _y, z + _z, BaseLeavesBlock.setDecaying(leavesMeta, true));
+                            world.setBlockMetadata(x + _x, y + _y, z + _z, BlockLeavesBase.setDecaying(leavesMeta, true));
                         }
                     }
 
diff --git a/src/main/java/net/minecraft/core/block/MeshBlock.java b/src/main/java/net/minecraft/core/block/BlockMesh.java
similarity index 74%
rename from src/main/java/net/minecraft/core/block/MeshBlock.java
rename to src/main/java/net/minecraft/core/block/BlockMesh.java
index b7b0cf44c..41b2e5072 100644
--- a/src/main/java/net/minecraft/core/block/MeshBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockMesh.java
@@ -5,13 +5,13 @@ package net.minecraft.core.block;
 
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.entity.Entity;
-import net.minecraft.core.entity.ItemEntity;
+import net.minecraft.core.entity.EntityItem;
 import net.minecraft.core.world.World;
 
-public class MeshBlock extends TransparentBlock
+public class BlockMesh extends BlockTransparent
 {
 
-    public MeshBlock(String key, String namespaceId, int id)
+    public BlockMesh(String key, String namespaceId, int id)
     {
         super(key, namespaceId, id, Material.metal);
     }
@@ -30,6 +30,6 @@ public class MeshBlock extends TransparentBlock
 
     @Override
     public boolean collidesWithEntity(Entity entity, World world, int x, int y, int z) {
-        return !(entity instanceof ItemEntity);
+        return !(entity instanceof EntityItem);
     }
 }
diff --git a/src/main/java/net/minecraft/core/block/GoldMeshBlock.java b/src/main/java/net/minecraft/core/block/BlockMeshGold.java
similarity index 67%
rename from src/main/java/net/minecraft/core/block/GoldMeshBlock.java
rename to src/main/java/net/minecraft/core/block/BlockMeshGold.java
index 4ab8cd9c2..70f09e2b5 100644
--- a/src/main/java/net/minecraft/core/block/GoldMeshBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockMeshGold.java
@@ -1,23 +1,23 @@
 package net.minecraft.core.block;
 
-import net.minecraft.core.block.entity.BlockEntity;
-import net.minecraft.core.block.entity.GoldMeshBlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
+import net.minecraft.core.block.entity.TileEntityMeshGold;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.entity.Entity;
-import net.minecraft.core.entity.ItemEntity;
+import net.minecraft.core.entity.EntityItem;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.world.World;
 
-public class GoldMeshBlock extends EntityBlock {
-    public GoldMeshBlock(String key, String namespaceId, int id) {
+public class BlockMeshGold extends BlockTileEntity {
+    public BlockMeshGold(String key, String namespaceId, int id) {
         super(key, namespaceId, id, Material.metal);
     }
 
     @Override
-    protected BlockEntity getNewBlockEntity() {
-        return new GoldMeshBlockEntity();
+    protected TileEntity getNewBlockEntity() {
+        return new TileEntityMeshGold();
     }
     @Override
     public boolean isSolidRender()
@@ -38,7 +38,7 @@ public class GoldMeshBlock extends EntityBlock {
     @Override
     public boolean onBlockRightClicked(World world, int x, int y, int z, Player player, Side side, double xPlaced, double yPlaced)
     {
-        GoldMeshBlockEntity meshGold = (GoldMeshBlockEntity) world.getBlockEntity(x, y, z);
+        TileEntityMeshGold meshGold = (TileEntityMeshGold) world.getBlockEntity(x, y, z);
         ItemStack heldItem = player.getHeldItem();
         boolean flag = meshGold.setFilterItem(player, heldItem);
         if(heldItem != null && heldItem.stackSize <= 0)
@@ -50,11 +50,11 @@ public class GoldMeshBlock extends EntityBlock {
 
     @Override
     public boolean collidesWithEntity(Entity entity, World world, int x, int y, int z) {
-        if (entity instanceof ItemEntity){
-            GoldMeshBlockEntity mesh = (GoldMeshBlockEntity) world.getBlockEntity(x, y, z);
+        if (entity instanceof EntityItem){
+            TileEntityMeshGold mesh = (TileEntityMeshGold) world.getBlockEntity(x, y, z);
             if (mesh.filterItem == null) return true;
 
-            ItemStack entityStack = ((ItemEntity) entity).item;
+            ItemStack entityStack = ((EntityItem) entity).item;
             return !entityStack.isItemEqual(mesh.filterItem);
         }
         return true;
diff --git a/src/main/java/net/minecraft/core/block/MobSpawnerBlock.java b/src/main/java/net/minecraft/core/block/BlockMobSpawner.java
similarity index 85%
rename from src/main/java/net/minecraft/core/block/MobSpawnerBlock.java
rename to src/main/java/net/minecraft/core/block/BlockMobSpawner.java
index 851902b96..f3ca1073d 100644
--- a/src/main/java/net/minecraft/core/block/MobSpawnerBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockMobSpawner.java
@@ -1,11 +1,10 @@
 package net.minecraft.core.block;
 
-import net.minecraft.core.block.entity.BlockEntity;
-import net.minecraft.core.block.entity.MobSpawnerBlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
+import net.minecraft.core.block.entity.TileEntityMobSpawner;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.entity.Entity;
-import net.minecraft.core.entity.ItemEntity;
-import net.minecraft.core.entity.Mob;
+import net.minecraft.core.entity.EntityItem;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.item.Items;
@@ -15,10 +14,10 @@ import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.world.World;
 import org.jetbrains.annotations.NotNull;
 
-public class MobSpawnerBlock extends EntityBlock
+public class BlockMobSpawner extends BlockTileEntity
 {
 
-	public MobSpawnerBlock(String key, String namespaceId, int id)
+	public BlockMobSpawner(String key, String namespaceId, int id)
     {
         super(key, namespaceId, id, Material.stone);
     }
@@ -34,26 +33,26 @@ public class MobSpawnerBlock extends EntityBlock
     }
 
     @Override
-	public BlockEntity getNewBlockEntity()
+	public TileEntity getNewBlockEntity()
     {
-        return new MobSpawnerBlockEntity();
+        return new TileEntityMobSpawner();
     }
 
     @Override
 	public void onBlockPlacedOnSide(World world, int x, int y, int z, @NotNull Side side, double xPlaced, double yPlaced) {
-    	MobSpawnerBlockEntity tileEntity = (MobSpawnerBlockEntity) world.getBlockEntity(x, y, z);
+    	TileEntityMobSpawner tileEntity = (TileEntityMobSpawner) world.getBlockEntity(x, y, z);
     	tileEntity.setMobId("none");
     }
 
     @Override
     public boolean collidesWithEntity(Entity entity, World world, int x, int y, int z) {
-        return !(entity instanceof ItemEntity);
+        return !(entity instanceof EntityItem);
     }
     @Override
     public void onBlockRemoved(World world, int x, int y, int z, int data)
     {
         if (!world.isClientSide) {
-            MobSpawnerBlockEntity tileEntityMobSpawner = (MobSpawnerBlockEntity) world.getBlockEntity(x, y, z);
+            TileEntityMobSpawner tileEntityMobSpawner = (TileEntityMobSpawner) world.getBlockEntity(x, y, z);
             if (tileEntityMobSpawner == null) return;
             int amountToDrop = world.rand.nextInt(10) + 10;
             label0:
@@ -100,7 +99,7 @@ public class MobSpawnerBlock extends EntityBlock
                             i1 = itemstack.stackSize;
                         }
                         itemstack.stackSize -= i1;
-                        ItemEntity entityitem = new ItemEntity(world, (float) x + f, (float) y + f1, (float) z + f2, new ItemStack(itemstack.itemID, i1, itemstack.getMetadata()));
+                        EntityItem entityitem = new EntityItem(world, (float) x + f, (float) y + f1, (float) z + f2, new ItemStack(itemstack.itemID, i1, itemstack.getMetadata()));
                         float f3 = 0.05F;
                         entityitem.xd = (float) world.rand.nextGaussian() * f3;
                         entityitem.yd = (float) world.rand.nextGaussian() * f3 + 0.2F;
@@ -114,7 +113,7 @@ public class MobSpawnerBlock extends EntityBlock
     }
 
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity)
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity)
     {
         if (dropCause == EnumDropCause.SILK_TOUCH)
         {
diff --git a/src/main/java/net/minecraft/core/block/MobSpawnerDeactivatedBlock.java b/src/main/java/net/minecraft/core/block/BlockMobSpawnerDeactivated.java
similarity index 74%
rename from src/main/java/net/minecraft/core/block/MobSpawnerDeactivatedBlock.java
rename to src/main/java/net/minecraft/core/block/BlockMobSpawnerDeactivated.java
index ade473707..ec0bbf5b5 100644
--- a/src/main/java/net/minecraft/core/block/MobSpawnerDeactivatedBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockMobSpawnerDeactivated.java
@@ -1,15 +1,15 @@
 package net.minecraft.core.block;
 
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.entity.Entity;
-import net.minecraft.core.entity.ItemEntity;
+import net.minecraft.core.entity.EntityItem;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.world.World;
 
-public class MobSpawnerDeactivatedBlock extends TransparentBlock {
-    public MobSpawnerDeactivatedBlock(String key, String namespaceId, int id, Material material)
+public class BlockMobSpawnerDeactivated extends BlockTransparent {
+    public BlockMobSpawnerDeactivated(String key, String namespaceId, int id, Material material)
     {
         super(key, namespaceId, id, material);
     }
@@ -28,10 +28,10 @@ public class MobSpawnerDeactivatedBlock extends TransparentBlock {
 
     @Override
     public boolean collidesWithEntity(Entity entity, World world, int x, int y, int z) {
-        return !(entity instanceof ItemEntity);
+        return !(entity instanceof EntityItem);
     }
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity)
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity)
     {
         switch (dropCause)
         {
diff --git a/src/main/java/net/minecraft/core/block/MossBlock.java b/src/main/java/net/minecraft/core/block/BlockMoss.java
similarity index 97%
rename from src/main/java/net/minecraft/core/block/MossBlock.java
rename to src/main/java/net/minecraft/core/block/BlockMoss.java
index 3ba84e837..0026243d9 100644
--- a/src/main/java/net/minecraft/core/block/MossBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockMoss.java
@@ -13,9 +13,9 @@ import java.util.Map;
 import java.util.Map.Entry;
 import java.util.Random;
 
-public class MossBlock extends Block implements IBonemealable {
+public class BlockMoss extends Block implements IBonemealable {
 	public static Map<Integer, Integer> variantMap = new HashMap<>();
-	public MossBlock(String key, String namespaceId, int id, int parentId) {
+	public BlockMoss(String key, String namespaceId, int id, int parentId) {
 		super(key, namespaceId, id, Material.moss);
 		setTicking(true);
 		variantMap.put(parentId, id);
diff --git a/src/main/java/net/minecraft/core/block/MotionSensorBlock.java b/src/main/java/net/minecraft/core/block/BlockMotionSensor.java
similarity index 88%
rename from src/main/java/net/minecraft/core/block/MotionSensorBlock.java
rename to src/main/java/net/minecraft/core/block/BlockMotionSensor.java
index 294347af4..3912fc138 100644
--- a/src/main/java/net/minecraft/core/block/MotionSensorBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockMotionSensor.java
@@ -1,12 +1,11 @@
 
 package net.minecraft.core.block;
 
-import java.util.Objects;
 import java.util.Random;
 
 import net.minecraft.client.util.helper.Colors;
-import net.minecraft.core.block.entity.BlockEntity;
-import net.minecraft.core.block.entity.SensorBlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
+import net.minecraft.core.block.entity.TileEntitySensor;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.item.ItemStack;
@@ -20,11 +19,11 @@ import net.minecraft.core.world.WorldSource;
 //            Block, Material, World, Item,
 //            Player, Entity
 
-public class MotionSensorBlock extends VeryRotatableEntityBlock
+public class BlockMotionSensor extends BlockTileEntityVeryRotatable
 {
     public final boolean isActive;
 
-    public MotionSensorBlock(String key, String namespaceId, int id, boolean isActive)
+    public BlockMotionSensor(String key, String namespaceId, int id, boolean isActive)
     {
         super(key, namespaceId, id, Material.glass);
         this.isActive = isActive;
@@ -89,13 +88,13 @@ public class MotionSensorBlock extends VeryRotatableEntityBlock
     }
 
     @Override
-	protected BlockEntity getNewBlockEntity()
+	protected TileEntity getNewBlockEntity()
     {
-        return new SensorBlockEntity();
+        return new TileEntitySensor();
     }
 
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity) {
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity) {
         if (dropCause == EnumDropCause.IMPROPER_TOOL) {
             return null;
         }
diff --git a/src/main/java/net/minecraft/core/block/MudBlock.java b/src/main/java/net/minecraft/core/block/BlockMud.java
similarity index 91%
rename from src/main/java/net/minecraft/core/block/MudBlock.java
rename to src/main/java/net/minecraft/core/block/BlockMud.java
index ac605af30..10c9c4c29 100644
--- a/src/main/java/net/minecraft/core/block/MudBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockMud.java
@@ -1,9 +1,9 @@
 package net.minecraft.core.block;
 
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.block.tag.BlockTags;
-import net.minecraft.core.entity.FallingBlockEntity;
+import net.minecraft.core.entity.EntityFallingBlock;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.sound.SoundCategory;
@@ -12,8 +12,8 @@ import net.minecraft.core.world.World;
 
 import java.util.Random;
 
-public class MudBlock extends Block{
-    public MudBlock(String key, String namespaceId, int id, Material material, boolean isHardened)
+public class BlockMud extends Block{
+    public BlockMud(String key, String namespaceId, int id, Material material, boolean isHardened)
     {
         super(key, namespaceId, id, material);
         this.isHardened = isHardened;
@@ -87,7 +87,7 @@ public class MudBlock extends Block{
                     {
                         //...And the block is next to another wet mud block, it can become wet
                         int bID = world.getBlockId(x1, y1, z1);
-                        if (bID == Blocks.MUD.id || (bID == Blocks.FARMLAND_DIRT.id && FarmlandBlock.isWet(world.getBlockMetadata(x1, y1, z1))))
+                        if (bID == Blocks.MUD.id || (bID == Blocks.FARMLAND_DIRT.id && BlockFarmland.isWet(world.getBlockMetadata(x1, y1, z1))))
                         {
                             return true;
                         }
@@ -107,7 +107,7 @@ public class MudBlock extends Block{
 
 
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity)
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity)
     {
         return new ItemStack[] { new ItemStack(this, 1, meta) };
     }
@@ -135,8 +135,8 @@ public class MudBlock extends Block{
                 }
             } else
             {
-                FallingBlockEntity fallingBlockEntity = new FallingBlockEntity(world, x + 0.5, y + 0.5, z + 0.5, id, 0, null);
-                world.entityJoinedWorld(fallingBlockEntity);
+                EntityFallingBlock entityFallingBlock = new EntityFallingBlock(world, x + 0.5, y + 0.5, z + 0.5, id, 0, null);
+                world.entityJoinedWorld(entityFallingBlock);
             }
         }
     }
diff --git a/src/main/java/net/minecraft/core/block/MushroomBlock.java b/src/main/java/net/minecraft/core/block/BlockMushroom.java
similarity index 90%
rename from src/main/java/net/minecraft/core/block/MushroomBlock.java
rename to src/main/java/net/minecraft/core/block/BlockMushroom.java
index 19b2e8100..6dbe3bc43 100644
--- a/src/main/java/net/minecraft/core/block/MushroomBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockMushroom.java
@@ -5,12 +5,12 @@ import net.minecraft.core.world.World;
 import java.util.Random;
 
 // Referenced classes of package net.minecraft.src:
-//            FlowerBlock, World, Block
+//            BlockFlower, World, Block
 
-public class MushroomBlock extends FlowerBlock
+public class BlockMushroom extends BlockFlower
 {
 
-	public MushroomBlock(String key, String namespaceId, int id)
+	public BlockMushroom(String key, String namespaceId, int id)
     {
         super(key, namespaceId, id);
         float f = 0.2F;
diff --git a/src/main/java/net/minecraft/core/block/IgneousNetherrackBlock.java b/src/main/java/net/minecraft/core/block/BlockNetherrackIgneous.java
similarity index 90%
rename from src/main/java/net/minecraft/core/block/IgneousNetherrackBlock.java
rename to src/main/java/net/minecraft/core/block/BlockNetherrackIgneous.java
index 0d017a1d8..e6ef87d3d 100644
--- a/src/main/java/net/minecraft/core/block/IgneousNetherrackBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockNetherrackIgneous.java
@@ -2,7 +2,7 @@ package net.minecraft.core.block;
 
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.entity.Entity;
-import net.minecraft.core.entity.ItemEntity;
+import net.minecraft.core.entity.EntityItem;
 import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.util.phys.AABB;
 import net.minecraft.core.world.World;
@@ -10,8 +10,8 @@ import net.minecraft.core.world.WorldSource;
 
 import java.util.Random;
 
-public class IgneousNetherrackBlock extends Block{
-    public IgneousNetherrackBlock(String translationKey, String namespaceId, int id) {
+public class BlockNetherrackIgneous extends Block{
+    public BlockNetherrackIgneous(String translationKey, String namespaceId, int id) {
         super(translationKey, namespaceId, id, Material.netherrack);
         setTicking(true);
     }
@@ -26,7 +26,7 @@ public class IgneousNetherrackBlock extends Block{
     @Override
     public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity entity)
     {
-        if (entity instanceof ItemEntity) return; // Don't burn items for this block
+        if (entity instanceof EntityItem) return; // Don't burn items for this block
         entity.fireHurt();
     }
 
diff --git a/src/main/java/net/minecraft/core/block/NoteBlock.java b/src/main/java/net/minecraft/core/block/BlockNote.java
similarity index 94%
rename from src/main/java/net/minecraft/core/block/NoteBlock.java
rename to src/main/java/net/minecraft/core/block/BlockNote.java
index 38ade223a..095bda4b3 100644
--- a/src/main/java/net/minecraft/core/block/NoteBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockNote.java
@@ -1,8 +1,8 @@
 package net.minecraft.core.block;
 
 import com.mojang.logging.LogUtils;
-import net.minecraft.core.block.entity.ActivatorBlockEntity;
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntityActivator;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.sound.SoundCategory;
 import net.minecraft.core.util.helper.Direction;
@@ -16,7 +16,7 @@ import org.slf4j.Logger;
 import java.util.HashMap;
 import java.util.Map;
 
-public class NoteBlock extends EntityBlock
+public class BlockNote extends BlockTileEntity
 {
     private static final Logger LOGGER = LogUtils.getLogger();
     public static final int MASK_NOTE = 0b0011_1111;
@@ -24,7 +24,7 @@ public class NoteBlock extends EntityBlock
 
     public static final byte MAX_NOTE = 24;
 
-    public NoteBlock(String key, String namespaceId, int id)
+    public BlockNote(String key, String namespaceId, int id)
     {
         super(key, namespaceId, id, Material.wood);
     }
@@ -54,7 +54,7 @@ public class NoteBlock extends EntityBlock
     }
 
     @Override
-    public void onActivatorInteract(World world, int x, int y, int z, ActivatorBlockEntity activator, Direction direction) {
+    public void onActivatorInteract(World world, int x, int y, int z, TileEntityActivator activator, Direction direction) {
         changePitch(world, x, y, z);
         triggerNote(world, x, y, z);
     }
@@ -116,7 +116,7 @@ public class NoteBlock extends EntityBlock
     }
 
     @Override
-    protected BlockEntity getNewBlockEntity() {
+    protected TileEntity getNewBlockEntity() {
         return null;
     }
 
@@ -145,7 +145,7 @@ public class NoteBlock extends EntityBlock
             if (block == Blocks.BLOCK_OLIVINE) {
                 return CHIP_TRIANGLE;
             }
-            if (block == Blocks.BLOCK_REDSTONE || block == Blocks.PUMPKIN_REDSTONE || block instanceof RedstoneOreBlock) { // Should be any block thats basically just redstone
+            if (block == Blocks.BLOCK_REDSTONE || block == Blocks.PUMPKIN_REDSTONE || block instanceof BlockOreRedstone) { // Should be any block thats basically just redstone
                 return GUITAR_ELECTRIC;
             }
             if (block == Blocks.CHEST_PLANKS_OAK || block == Blocks.CHEST_PLANKS_OAK_PAINTED) {
diff --git a/src/main/java/net/minecraft/core/block/CoalOreBlock.java b/src/main/java/net/minecraft/core/block/BlockOreCoal.java
similarity index 83%
rename from src/main/java/net/minecraft/core/block/CoalOreBlock.java
rename to src/main/java/net/minecraft/core/block/BlockOreCoal.java
index efdef2903..2e212cf41 100644
--- a/src/main/java/net/minecraft/core/block/CoalOreBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockOreCoal.java
@@ -1,6 +1,6 @@
 package net.minecraft.core.block;
 
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.item.Items;
 import net.minecraft.core.item.ItemStack;
@@ -13,17 +13,17 @@ import java.util.Map;
 // Referenced classes of package net.minecraft.src:
 //            Block, Material, Item
 
-public class CoalOreBlock extends Block
+public class BlockOreCoal extends Block
 {
     public static Map<Integer, Integer> variantMap = new HashMap<>();
 
-    public CoalOreBlock(String key, String namespaceId, int id, int parentId, Material material){
+    public BlockOreCoal(String key, String namespaceId, int id, int parentId, Material material){
         super(key, namespaceId, id, material);
         variantMap.put(parentId, id);
     }
 
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity)
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity)
     {
         switch (dropCause)
         {
diff --git a/src/main/java/net/minecraft/core/block/DiamondOreBlock.java b/src/main/java/net/minecraft/core/block/BlockOreDiamond.java
similarity index 83%
rename from src/main/java/net/minecraft/core/block/DiamondOreBlock.java
rename to src/main/java/net/minecraft/core/block/BlockOreDiamond.java
index 3a3ce7607..172becdc1 100644
--- a/src/main/java/net/minecraft/core/block/DiamondOreBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockOreDiamond.java
@@ -1,6 +1,6 @@
 package net.minecraft.core.block;
 
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.item.Items;
 import net.minecraft.core.item.ItemStack;
@@ -13,17 +13,17 @@ import java.util.Map;
 // Referenced classes of package net.minecraft.src:
 //            Block, Material, Item
 
-public class DiamondOreBlock extends Block
+public class BlockOreDiamond extends Block
 {
     public static Map<Integer, Integer> variantMap = new HashMap<>();
-    public DiamondOreBlock(String key, String namespaceId, int id, int parentId, Material material)
+    public BlockOreDiamond(String key, String namespaceId, int id, int parentId, Material material)
     {
         super(key, namespaceId, id, material);
         variantMap.put(parentId, id);
     }
 
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity)
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity)
     {
         switch (dropCause)
         {
diff --git a/src/main/java/net/minecraft/core/block/GoldOreBlock.java b/src/main/java/net/minecraft/core/block/BlockOreGold.java
similarity index 82%
rename from src/main/java/net/minecraft/core/block/GoldOreBlock.java
rename to src/main/java/net/minecraft/core/block/BlockOreGold.java
index 000ea2a6d..243f0799b 100644
--- a/src/main/java/net/minecraft/core/block/GoldOreBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockOreGold.java
@@ -1,6 +1,6 @@
 package net.minecraft.core.block;
 
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.item.Items;
 import net.minecraft.core.item.ItemStack;
@@ -11,16 +11,16 @@ import java.util.HashMap;
 import java.util.Map;
 
 
-public class GoldOreBlock extends Block {
+public class BlockOreGold extends Block {
     public static Map<Integer, Integer> variantMap = new HashMap<>();
 
-    public GoldOreBlock(String key, String namespaceId, int id, int parentId, Material material) {
+    public BlockOreGold(String key, String namespaceId, int id, int parentId, Material material) {
         super(key, namespaceId, id, material);
         variantMap.put(parentId, id);
     }
 
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity)
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity)
     {
         switch (dropCause)
         {
diff --git a/src/main/java/net/minecraft/core/block/IronOreBlock.java b/src/main/java/net/minecraft/core/block/BlockOreIron.java
similarity index 82%
rename from src/main/java/net/minecraft/core/block/IronOreBlock.java
rename to src/main/java/net/minecraft/core/block/BlockOreIron.java
index a328886d6..0707e8981 100644
--- a/src/main/java/net/minecraft/core/block/IronOreBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockOreIron.java
@@ -1,6 +1,6 @@
 package net.minecraft.core.block;
 
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.item.Items;
 import net.minecraft.core.item.ItemStack;
@@ -10,16 +10,16 @@ import net.minecraft.core.world.World;
 import java.util.HashMap;
 import java.util.Map;
 
-public class IronOreBlock extends Block
+public class BlockOreIron extends Block
 {
     public static Map<Integer, Integer> variantMap = new HashMap<>();
-    public IronOreBlock(String key, String namespaceId, int id, int parentID, Material material) {
+    public BlockOreIron(String key, String namespaceId, int id, int parentID, Material material) {
         super(key, namespaceId, id, material);
         variantMap.put(parentID, id);
     }
 
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity)
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity)
     {
         switch (dropCause)
         {
diff --git a/src/main/java/net/minecraft/core/block/LapisOreBlock.java b/src/main/java/net/minecraft/core/block/BlockOreLapis.java
similarity index 84%
rename from src/main/java/net/minecraft/core/block/LapisOreBlock.java
rename to src/main/java/net/minecraft/core/block/BlockOreLapis.java
index dadb34398..822422768 100644
--- a/src/main/java/net/minecraft/core/block/LapisOreBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockOreLapis.java
@@ -1,6 +1,6 @@
 package net.minecraft.core.block;
 
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.item.Items;
 import net.minecraft.core.item.ItemStack;
@@ -11,17 +11,17 @@ import net.minecraft.core.world.World;
 import java.util.HashMap;
 import java.util.Map;
 
-public class LapisOreBlock extends Block
+public class BlockOreLapis extends Block
 {
     public static Map<Integer, Integer> variantMap = new HashMap<>();
-    public LapisOreBlock(String key, String namespaceId, int id, int parentId, Material material)
+    public BlockOreLapis(String key, String namespaceId, int id, int parentId, Material material)
     {
         super(key, namespaceId, id, material);
         variantMap.put(parentId, id);
     }
 
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity)
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity)
     {
         switch (dropCause)
         {
diff --git a/src/main/java/net/minecraft/core/block/NetherCoalOreBlock.java b/src/main/java/net/minecraft/core/block/BlockOreNetherCoal.java
similarity index 79%
rename from src/main/java/net/minecraft/core/block/NetherCoalOreBlock.java
rename to src/main/java/net/minecraft/core/block/BlockOreNetherCoal.java
index 3318f66fa..52f7d1535 100644
--- a/src/main/java/net/minecraft/core/block/NetherCoalOreBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockOreNetherCoal.java
@@ -1,22 +1,22 @@
 package net.minecraft.core.block;
 
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.item.Items;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.world.World;
 
-public class NetherCoalOreBlock extends Block
+public class BlockOreNetherCoal extends Block
 {
 
-    public NetherCoalOreBlock(String key, String namespaceId, int id)
+    public BlockOreNetherCoal(String key, String namespaceId, int id)
     {
         super(key, namespaceId, id, Material.netherrack);
     }
 
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity)
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity)
     {
         switch (dropCause)
         {
diff --git a/src/main/java/net/minecraft/core/block/RedstoneOreBlock.java b/src/main/java/net/minecraft/core/block/BlockOreRedstone.java
similarity index 95%
rename from src/main/java/net/minecraft/core/block/RedstoneOreBlock.java
rename to src/main/java/net/minecraft/core/block/BlockOreRedstone.java
index 0ff36d174..656673259 100644
--- a/src/main/java/net/minecraft/core/block/RedstoneOreBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockOreRedstone.java
@@ -1,6 +1,6 @@
 package net.minecraft.core.block;
 
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.entity.Entity;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.enums.EnumDropCause;
@@ -21,13 +21,13 @@ import java.util.function.Supplier;
 //            Block, Material, World, Item, 
 //            Player, Entity
 
-public class RedstoneOreBlock extends Block
+public class BlockOreRedstone extends Block
 {
     public static Map<Integer, Integer> variantMap = new HashMap<>();
     private final boolean illuminated;
     private final Supplier<Block> normalBlock;
     private final Supplier<Block> illuminatedBlock;
-    public RedstoneOreBlock(String key, String namespaceId, int id, int parentId, Material material, boolean illuminated, Supplier<Block> normalBlock, Supplier<Block> illuminatedBlock)
+    public BlockOreRedstone(String key, String namespaceId, int id, int parentId, Material material, boolean illuminated, Supplier<Block> normalBlock, Supplier<Block> illuminatedBlock)
     {
         super(key, namespaceId, id, material);
         if(illuminated)
@@ -82,7 +82,7 @@ public class RedstoneOreBlock extends Block
     }
 
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity)
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity)
     {
         switch (dropCause)
         {
diff --git a/src/main/java/net/minecraft/core/block/OverlayPebblesBlock.java b/src/main/java/net/minecraft/core/block/BlockOverlayPebbles.java
similarity index 91%
rename from src/main/java/net/minecraft/core/block/OverlayPebblesBlock.java
rename to src/main/java/net/minecraft/core/block/BlockOverlayPebbles.java
index 69ca2d22d..5082e303c 100644
--- a/src/main/java/net/minecraft/core/block/OverlayPebblesBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockOverlayPebbles.java
@@ -1,6 +1,6 @@
 package net.minecraft.core.block;
 
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.item.Items;
@@ -9,9 +9,9 @@ import net.minecraft.core.util.phys.AABB;
 import net.minecraft.core.world.World;
 import net.minecraft.core.world.WorldSource;
 
-public class OverlayPebblesBlock extends Block
+public class BlockOverlayPebbles extends Block
 {
-    public OverlayPebblesBlock(String key, String namespaceId, int id, Material material)
+    public BlockOverlayPebbles(String key, String namespaceId, int id, Material material)
     {
         super(key, namespaceId, id, material);
     }
@@ -75,7 +75,7 @@ public class OverlayPebblesBlock extends Block
     }
 
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity)
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity)
     {
         if (dropCause == EnumDropCause.PICK_BLOCK)
         {
diff --git a/src/main/java/net/minecraft/core/block/DirtPathBlock.java b/src/main/java/net/minecraft/core/block/BlockPathDirt.java
similarity index 90%
rename from src/main/java/net/minecraft/core/block/DirtPathBlock.java
rename to src/main/java/net/minecraft/core/block/BlockPathDirt.java
index 5c0f3fbd1..81fda1d8a 100644
--- a/src/main/java/net/minecraft/core/block/DirtPathBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockPathDirt.java
@@ -1,6 +1,6 @@
 package net.minecraft.core.block;
 
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.util.phys.AABB;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.item.ItemStack;
@@ -12,9 +12,9 @@ import net.minecraft.core.world.WorldSource;
 //            Block, Material, AxisAlignedBB, World,
 //            Entity
 
-public class DirtPathBlock extends Block
+public class BlockPathDirt extends Block
 {
-	public DirtPathBlock(String key, String namespaceId, int id)
+	public BlockPathDirt(String key, String namespaceId, int id)
     {
         super(key, namespaceId, id, Material.dirt);
         setTicking(true);
@@ -53,7 +53,7 @@ public class DirtPathBlock extends Block
     }
 
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity)
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity)
     {
         switch (dropCause)
         {
diff --git a/src/main/java/net/minecraft/core/block/PumpkinPieBlock.java b/src/main/java/net/minecraft/core/block/BlockPiePumpkin.java
similarity index 92%
rename from src/main/java/net/minecraft/core/block/PumpkinPieBlock.java
rename to src/main/java/net/minecraft/core/block/BlockPiePumpkin.java
index a79470794..a9fd96800 100644
--- a/src/main/java/net/minecraft/core/block/PumpkinPieBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockPiePumpkin.java
@@ -4,10 +4,10 @@ import net.minecraft.core.item.Items;
 import net.minecraft.core.util.phys.AABB;
 import net.minecraft.core.world.WorldSource;
 
-public class PumpkinPieBlock extends EdibleBlock
+public class BlockPiePumpkin extends BlockEdible
 {
 
-    public PumpkinPieBlock(String key, String namespaceId, int id)
+    public BlockPiePumpkin(String key, String namespaceId, int id)
     {
         super(key, namespaceId, id, 4, 5, () -> Items.FOOD_PUMPKIN_PIE);
     }
diff --git a/src/main/java/net/minecraft/core/block/PlanksBlock.java b/src/main/java/net/minecraft/core/block/BlockPlanks.java
similarity index 78%
rename from src/main/java/net/minecraft/core/block/PlanksBlock.java
rename to src/main/java/net/minecraft/core/block/BlockPlanks.java
index 46d5f28ac..6b8654659 100644
--- a/src/main/java/net/minecraft/core/block/PlanksBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockPlanks.java
@@ -1,17 +1,17 @@
-package net.minecraft.core.block;
-
-import net.minecraft.core.block.material.Material;
-import net.minecraft.core.util.helper.DyeColor;
-import net.minecraft.core.world.World;
-
-public class PlanksBlock extends Block implements IPaintable {
-    public PlanksBlock(String translationKey, String namespaceId, int id, Material material) {
-        super(translationKey, namespaceId, id, material);
-    }
-
-    @Override
-    public void setColor(World world, int x, int y, int z, DyeColor color) {
-        world.setBlock(x, y, z, Blocks.PLANKS_OAK_PAINTED.id);
-        ((IPaintable) Blocks.PLANKS_OAK_PAINTED).setColor(world, x, y, z, color);
-    }
-}
+package net.minecraft.core.block;
+
+import net.minecraft.core.block.material.Material;
+import net.minecraft.core.util.helper.DyeColor;
+import net.minecraft.core.world.World;
+
+public class BlockPlanks extends Block implements IPaintable {
+    public BlockPlanks(String translationKey, String namespaceId, int id, Material material) {
+        super(translationKey, namespaceId, id, material);
+    }
+
+    @Override
+    public void setColor(World world, int x, int y, int z, DyeColor color) {
+        world.setBlock(x, y, z, Blocks.PLANKS_OAK_PAINTED.id);
+        ((IPaintable) Blocks.PLANKS_OAK_PAINTED).setColor(world, x, y, z, color);
+    }
+}
diff --git a/src/main/java/net/minecraft/core/block/PaintedPlanksBlock.java b/src/main/java/net/minecraft/core/block/BlockPlanksPainted.java
similarity index 86%
rename from src/main/java/net/minecraft/core/block/PaintedPlanksBlock.java
rename to src/main/java/net/minecraft/core/block/BlockPlanksPainted.java
index dbb593e77..fff3ef678 100644
--- a/src/main/java/net/minecraft/core/block/PaintedPlanksBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockPlanksPainted.java
@@ -1,6 +1,6 @@
 package net.minecraft.core.block;
 
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.enums.EnumDropCause;
@@ -10,9 +10,9 @@ import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.world.World;
 import org.jetbrains.annotations.Nullable;
 
-public class PaintedPlanksBlock extends Block implements IPainted
+public class BlockPlanksPainted extends Block implements IPainted
 {
-    public PaintedPlanksBlock(String key, String namespaceId, int id)
+    public BlockPlanksPainted(String key, String namespaceId, int id)
     {
         super(key, namespaceId, id, Material.wood);
     }
@@ -24,7 +24,7 @@ public class PaintedPlanksBlock extends Block implements IPainted
     }
 
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity)
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity)
     {
         return new ItemStack[] { new ItemStack(this, 1, meta) };
     }
diff --git a/src/main/java/net/minecraft/core/block/PortalBlock.java b/src/main/java/net/minecraft/core/block/BlockPortal.java
similarity index 93%
rename from src/main/java/net/minecraft/core/block/PortalBlock.java
rename to src/main/java/net/minecraft/core/block/BlockPortal.java
index 99308e108..fe010dbc8 100644
--- a/src/main/java/net/minecraft/core/block/PortalBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockPortal.java
@@ -1,34 +1,26 @@
 package net.minecraft.core.block;
 
-import net.minecraft.client.Minecraft;
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.entity.Entity;
-import net.minecraft.core.entity.ItemEntity;
+import net.minecraft.core.entity.EntityItem;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.item.Items;
 import net.minecraft.core.sound.SoundCategory;
 import net.minecraft.core.util.helper.DyeColor;
-import net.minecraft.core.util.helper.Side;
-import net.minecraft.core.util.helper.Sides;
 import net.minecraft.core.util.phys.AABB;
 import net.minecraft.core.world.World;
 import net.minecraft.core.world.WorldSource;
-import net.minecraft.core.world.chunk.ChunkPosition;
 import org.jetbrains.annotations.Nullable;
 
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
 import java.util.Random;
-import java.util.Set;
 
 // Referenced classes of package net.minecraft.src:
 //            BlockBreakable, Material, IBlockAccess, World, 
-//            Block, FireBlock, Entity, AxisAlignedBB
+//            Block, BlockFire, Entity, AxisAlignedBB
 
-public class PortalBlock extends TransparentBlock implements IPainted
+public class BlockPortal extends BlockTransparent implements IPainted
 {
     public static final int MAX_PORTAL_SIZE = 32;
     public static final int MASK_COLOR = 0b1111_0000;
@@ -41,7 +33,7 @@ public class PortalBlock extends TransparentBlock implements IPainted
 	public int portalFrameId;
 	public int portalTriggerId;
 		
-    public PortalBlock(String key, String namespaceId, int id, int targetDimension, int portalMaterialId, int portalTriggerId)
+    public BlockPortal(String key, String namespaceId, int id, int targetDimension, int portalMaterialId, int portalTriggerId)
     {
         super(key, namespaceId, id, Material.portal);
         this.targetDimension = targetDimension;
@@ -325,7 +317,7 @@ public class PortalBlock extends TransparentBlock implements IPainted
     }
 
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity)
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity)
     {
         return null;
     }
@@ -339,14 +331,14 @@ public class PortalBlock extends TransparentBlock implements IPainted
     @Override
     public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity entity)
     {
-        if (entity instanceof ItemEntity && ((ItemEntity) entity).item != null && ((ItemEntity) entity).item.itemID == Items.DYE.id) {
-            ItemEntity itemEntity = (ItemEntity) entity;
-            DyeColor color = DyeColor.colorFromItemMeta(itemEntity.item.getMetadata());
+        if (entity instanceof EntityItem && ((EntityItem) entity).item != null && ((EntityItem) entity).item.itemID == Items.DYE.id) {
+            EntityItem entityItem = (EntityItem) entity;
+            DyeColor color = DyeColor.colorFromItemMeta(entityItem.item.getMetadata());
             if (getColor(world, x, y, z) != color) {
                 setColor(world, x, y, z, color);
-                itemEntity.item.stackSize--;
-                if (itemEntity.item.stackSize <= 0) {
-                    itemEntity.remove();
+                entityItem.item.stackSize--;
+                if (entityItem.item.stackSize <= 0) {
+                    entityItem.remove();
                     return;
                 }
             }
diff --git a/src/main/java/net/minecraft/core/block/PressurePlateBlock.java b/src/main/java/net/minecraft/core/block/BlockPressurePlate.java
similarity index 97%
rename from src/main/java/net/minecraft/core/block/PressurePlateBlock.java
rename to src/main/java/net/minecraft/core/block/BlockPressurePlate.java
index 5c6145b66..8f1653361 100644
--- a/src/main/java/net/minecraft/core/block/PressurePlateBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockPressurePlate.java
@@ -2,7 +2,6 @@ package net.minecraft.core.block;
 
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.entity.Entity;
-import net.minecraft.core.entity.Mob;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.sound.SoundCategory;
@@ -14,13 +13,13 @@ import org.jetbrains.annotations.NotNull;
 import java.util.List;
 import java.util.Random;
 
-public class PressurePlateBlock extends Block
+public class BlockPressurePlate extends Block
 {
     public static final int MASK_POWERED = 0b0000_0001;
     public static final int MASK_CEILING = 0b0000_0010;
     private final Class<? extends Entity> triggerMobClass;
 
-	public PressurePlateBlock(String key, String namespaceId, int id, Class<? extends Entity> mobType, Material material)
+	public BlockPressurePlate(String key, String namespaceId, int id, Class<? extends Entity> mobType, Material material)
     {
         super(key, namespaceId, id, material);
         triggerMobClass = mobType;
diff --git a/src/main/java/net/minecraft/core/block/PumiceBlock.java b/src/main/java/net/minecraft/core/block/BlockPumice.java
similarity index 97%
rename from src/main/java/net/minecraft/core/block/PumiceBlock.java
rename to src/main/java/net/minecraft/core/block/BlockPumice.java
index a000bcddb..764b29e48 100644
--- a/src/main/java/net/minecraft/core/block/PumiceBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockPumice.java
@@ -9,9 +9,9 @@ import net.minecraft.core.world.World;
 
 import java.util.Random;
 
-public class PumiceBlock extends Block {
+public class BlockPumice extends Block {
     final boolean isWet;
-    public PumiceBlock(String key, String namespaceId, int id, boolean isWet)
+    public BlockPumice(String key, String namespaceId, int id, boolean isWet)
     {
         super(key, namespaceId, id, Material.stone);
         this.isWet = isWet;
diff --git a/src/main/java/net/minecraft/core/block/PumpkinBlock.java b/src/main/java/net/minecraft/core/block/BlockPumpkin.java
similarity index 85%
rename from src/main/java/net/minecraft/core/block/PumpkinBlock.java
rename to src/main/java/net/minecraft/core/block/BlockPumpkin.java
index c0ed759dd..faec7f541 100644
--- a/src/main/java/net/minecraft/core/block/PumpkinBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockPumpkin.java
@@ -8,16 +8,16 @@ import net.minecraft.core.block.material.Material;
 import net.minecraft.core.block.material.MaterialColor;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.item.ItemStack;
-import net.minecraft.core.item.tool.SwordToolItem;
+import net.minecraft.core.item.tool.ItemToolSword;
 import net.minecraft.core.util.helper.Direction;
 import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.world.World;
 
-public class PumpkinBlock extends RotatableBlock
+public class BlockPumpkin extends BlockRotatable
 {
     private final boolean isCarvable;
 
-	public PumpkinBlock(String key, String namespaceId, int id, boolean isCarvable)
+	public BlockPumpkin(String key, String namespaceId, int id, boolean isCarvable)
     {
         super(key, namespaceId, id, Material.vegetable);
         setTicking(true);
@@ -29,7 +29,7 @@ public class PumpkinBlock extends RotatableBlock
     public boolean onBlockRightClicked(World world, int x, int y, int z, Player player, Side side, double xPlaced, double yPlaced) {
         if (!isCarvable) return false;
         ItemStack heldItem = player.getHeldItem();
-        if (heldItem != null && heldItem.getItem() instanceof SwordToolItem){
+        if (heldItem != null && heldItem.getItem() instanceof ItemToolSword){
             heldItem.damageItem(1,player);
             world.setBlockAndMetadataWithNotify(x, y, z, Blocks.PUMPKIN_CARVED_IDLE.id, player.getHorizontalPlacementDirection(Direction.getHorizontalDirection(player).getSide()).getOpposite().getId());
             return true;
diff --git a/src/main/java/net/minecraft/core/block/RedstonePumpkinBlock.java b/src/main/java/net/minecraft/core/block/BlockPumpkinRedstone.java
similarity index 92%
rename from src/main/java/net/minecraft/core/block/RedstonePumpkinBlock.java
rename to src/main/java/net/minecraft/core/block/BlockPumpkinRedstone.java
index aa728531d..5410f5bfe 100644
--- a/src/main/java/net/minecraft/core/block/RedstonePumpkinBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockPumpkinRedstone.java
@@ -5,9 +5,9 @@ import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.world.World;
 import net.minecraft.core.world.WorldSource;
 
-public class RedstonePumpkinBlock extends RotatableBlock {
+public class BlockPumpkinRedstone extends BlockRotatable {
 
-    public RedstonePumpkinBlock(String translationKey, String namespaceId, int id) {
+    public BlockPumpkinRedstone(String translationKey, String namespaceId, int id) {
         super(translationKey, namespaceId, id, Material.vegetable);
     }
 
diff --git a/src/main/java/net/minecraft/core/block/RailBlock.java b/src/main/java/net/minecraft/core/block/BlockRail.java
similarity index 94%
rename from src/main/java/net/minecraft/core/block/RailBlock.java
rename to src/main/java/net/minecraft/core/block/BlockRail.java
index 2ae5815a8..7bf57d2ca 100644
--- a/src/main/java/net/minecraft/core/block/RailBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockRail.java
@@ -14,13 +14,13 @@ import net.minecraft.core.world.chunk.ChunkPosition;
 import java.util.ArrayList;
 import java.util.List;
 
-public class RailBlock extends Block {
+public class BlockRail extends Block {
     public static final int MASK_DIRECTION = 0b0000_0111;
     public static final int MASK_POWERED = 0b0000_1000;
     public final boolean isPowered;
 
     public static boolean isRailBlockAt(World world, int x, int y, int z) {
-        return world.getBlock(x, y, z) instanceof RailBlock;
+        return world.getBlock(x, y, z) instanceof BlockRail;
     }
     public RailDirection getRailDirection(WorldSource world, int x, int y, int z){
         int meta = world.getBlockMetadata(x, y, z);
@@ -30,7 +30,7 @@ public class RailBlock extends Block {
         return RailDirection.getFromMeta(meta);
     }
 
-    protected RailBlock(String key, String namespaceId, int id, boolean isPowered) {
+    protected BlockRail(String key, String namespaceId, int id, boolean isPowered) {
         super(key, namespaceId, id, Material.decoration);
         this.isPowered = isPowered;
         setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.125F, 1.0F);
@@ -250,7 +250,7 @@ public class RailBlock extends Block {
             Block block = world.getBlock(x, y, z);
             int meta = world.getBlockMetadata(x, y, z);
 
-            isPoweredRail = block instanceof RailBlock && ((RailBlock) block).isPowered;
+            isPoweredRail = block instanceof BlockRail && ((BlockRail) block).isPowered;
 
             setConnections(RailDirection.getFromMeta(meta));
         }
@@ -274,23 +274,23 @@ public class RailBlock extends Block {
         }
 
         private boolean isMinecartTrack(int x, int y, int z) {
-            if(RailBlock.isRailBlockAt(world, x, y, z)) {
+            if(BlockRail.isRailBlockAt(world, x, y, z)) {
                 return true;
             }
-            if(RailBlock.isRailBlockAt(world, x, y + 1, z)) {
+            if(BlockRail.isRailBlockAt(world, x, y + 1, z)) {
                 return true;
             }
-            return RailBlock.isRailBlockAt(world, x, y - 1, z);
+            return BlockRail.isRailBlockAt(world, x, y - 1, z);
         }
 
         private Rail getMinecartTrackLogic(ChunkPosition chunkposition) {
-            if(RailBlock.isRailBlockAt(world, chunkposition.x, chunkposition.y, chunkposition.z)) {
+            if(BlockRail.isRailBlockAt(world, chunkposition.x, chunkposition.y, chunkposition.z)) {
                 return new Rail(world, chunkposition.x, chunkposition.y, chunkposition.z);
             }
-            if(RailBlock.isRailBlockAt(world, chunkposition.x, chunkposition.y + 1, chunkposition.z)) {
+            if(BlockRail.isRailBlockAt(world, chunkposition.x, chunkposition.y + 1, chunkposition.z)) {
                 return new Rail(world, chunkposition.x, chunkposition.y + 1, chunkposition.z);
             }
-            if(RailBlock.isRailBlockAt(world, chunkposition.x, chunkposition.y - 1, chunkposition.z)) {
+            if(BlockRail.isRailBlockAt(world, chunkposition.x, chunkposition.y - 1, chunkposition.z)) {
                 return new Rail(world, chunkposition.x, chunkposition.y - 1, chunkposition.z);
             } else {
                 return null;
@@ -411,18 +411,18 @@ public class RailBlock extends Block {
                 }
             }
             if(railType == RailDirection.STRAIGHT_NS) {
-                if(RailBlock.isRailBlockAt(world, x, y + 1, z - 1)) {
+                if(BlockRail.isRailBlockAt(world, x, y + 1, z - 1)) {
                     railType = RailDirection.SLOPE_N;
                 }
-                if(RailBlock.isRailBlockAt(world, x, y + 1, z + 1)) {
+                if(BlockRail.isRailBlockAt(world, x, y + 1, z + 1)) {
                     railType = RailDirection.SLOPE_S;
                 }
             }
             if(railType == RailDirection.STRAIGHT_EW) {
-                if(RailBlock.isRailBlockAt(world, x + 1, y + 1, z)) {
+                if(BlockRail.isRailBlockAt(world, x + 1, y + 1, z)) {
                     railType = RailDirection.SLOPE_E;
                 }
-                if(RailBlock.isRailBlockAt(world, x - 1, y + 1, z)) {
+                if(BlockRail.isRailBlockAt(world, x - 1, y + 1, z)) {
                     railType = RailDirection.SLOPE_W;
                 }
             }
@@ -479,18 +479,18 @@ public class RailBlock extends Block {
                 }
             }
             if(railDirection == RailDirection.STRAIGHT_NS) {
-                if(RailBlock.isRailBlockAt(world, x, y + 1, z - 1)) {
+                if(BlockRail.isRailBlockAt(world, x, y + 1, z - 1)) {
                     railDirection = RailDirection.SLOPE_N;
                 }
-                if(RailBlock.isRailBlockAt(world, x, y + 1, z + 1)) {
+                if(BlockRail.isRailBlockAt(world, x, y + 1, z + 1)) {
                     railDirection = RailDirection.SLOPE_S;
                 }
             }
             if(railDirection == RailDirection.STRAIGHT_EW) {
-                if(RailBlock.isRailBlockAt(world, x + 1, y + 1, z)) {
+                if(BlockRail.isRailBlockAt(world, x + 1, y + 1, z)) {
                     railDirection = RailDirection.SLOPE_E;
                 }
-                if(RailBlock.isRailBlockAt(world, x - 1, y + 1, z)) {
+                if(BlockRail.isRailBlockAt(world, x - 1, y + 1, z)) {
                     railDirection = RailDirection.SLOPE_W;
                 }
             }
diff --git a/src/main/java/net/minecraft/core/block/DetectorRailBlock.java b/src/main/java/net/minecraft/core/block/BlockRailDetector.java
similarity index 96%
rename from src/main/java/net/minecraft/core/block/DetectorRailBlock.java
rename to src/main/java/net/minecraft/core/block/BlockRailDetector.java
index 4ca99be28..3332a6844 100644
--- a/src/main/java/net/minecraft/core/block/DetectorRailBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockRailDetector.java
@@ -9,8 +9,8 @@ import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.util.phys.AABB;
 import net.minecraft.core.world.WorldSource;
 import net.minecraft.core.world.World;
-public class DetectorRailBlock extends RailBlock {
-    public DetectorRailBlock(String key, String namespaceId, int id)
+public class BlockRailDetector extends BlockRail {
+    public BlockRailDetector(String key, String namespaceId, int id)
     {
         super(key, namespaceId, id, true);
         setTicking(true);
diff --git a/src/main/java/net/minecraft/core/block/RedstoneBlock.java b/src/main/java/net/minecraft/core/block/BlockRedstone.java
similarity index 97%
rename from src/main/java/net/minecraft/core/block/RedstoneBlock.java
rename to src/main/java/net/minecraft/core/block/BlockRedstone.java
index ccfc5ddda..00325b3f1 100644
--- a/src/main/java/net/minecraft/core/block/RedstoneBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockRedstone.java
@@ -9,9 +9,9 @@ import net.minecraft.core.world.World;
 
 import java.util.Random;
 
-public class RedstoneBlock extends Block
+public class BlockRedstone extends Block
 {
-	public RedstoneBlock(String key, String namespaceId, int id, Material material)
+	public BlockRedstone(String key, String namespaceId, int id, Material material)
     {
 		super(key, namespaceId, id, material);
 	}
diff --git a/src/main/java/net/minecraft/core/block/RepeaterBlock.java b/src/main/java/net/minecraft/core/block/BlockRepeater.java
similarity index 95%
rename from src/main/java/net/minecraft/core/block/RepeaterBlock.java
rename to src/main/java/net/minecraft/core/block/BlockRepeater.java
index da3bc9e00..e2c8cebda 100644
--- a/src/main/java/net/minecraft/core/block/RepeaterBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockRepeater.java
@@ -1,15 +1,14 @@
 package net.minecraft.core.block;
 
 import net.minecraft.client.util.helper.Colors;
-import net.minecraft.core.block.entity.ActivatorBlockEntity;
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntityActivator;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.entity.Mob;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.item.Items;
-import net.minecraft.core.util.helper.Axis;
 import net.minecraft.core.util.helper.Color;
 import net.minecraft.core.util.helper.Direction;
 import net.minecraft.core.util.helper.Side;
@@ -19,7 +18,7 @@ import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
 import java.util.Random;
-public class RepeaterBlock extends Block
+public class BlockRepeater extends Block
 {
     public static final double[] torchPosOffset = {
         -0.0625D, 0.0625D, 0.1875D, 0.3125D
@@ -32,7 +31,7 @@ public class RepeaterBlock extends Block
 
     public final boolean isRepeaterPowered;
 
-	public RepeaterBlock(String key, String namespaceId, int id, boolean flag)
+	public BlockRepeater(String key, String namespaceId, int id, boolean flag)
     {
         super(key, namespaceId, id, Material.decoration);
         isRepeaterPowered = flag;
@@ -58,7 +57,7 @@ public class RepeaterBlock extends Block
     }
 
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity)
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity)
     {
         return new ItemStack[] { new ItemStack(Items.REPEATER) };
     }
@@ -161,7 +160,7 @@ public class RepeaterBlock extends Block
     }
 
     @Override
-    public void onActivatorInteract(World world, int x, int y, int z, ActivatorBlockEntity activator, Direction direction) {
+    public void onActivatorInteract(World world, int x, int y, int z, TileEntityActivator activator, Direction direction) {
         onBlockRightClicked(world, x, y, z, null, Side.NONE, 0.5, 0.5);
     }
 
diff --git a/src/main/java/net/minecraft/core/block/RopeBlock.java b/src/main/java/net/minecraft/core/block/BlockRope.java
similarity index 93%
rename from src/main/java/net/minecraft/core/block/RopeBlock.java
rename to src/main/java/net/minecraft/core/block/BlockRope.java
index c204db867..2eb026d0a 100644
--- a/src/main/java/net/minecraft/core/block/RopeBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockRope.java
@@ -1,22 +1,22 @@
 package net.minecraft.core.block;
 
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.enums.EnumBlockSoundEffectType;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.item.Items;
-import net.minecraft.core.item.ToolShearsItem;
+import net.minecraft.core.item.tool.ItemToolShears;
 import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.util.phys.AABB;
 import net.minecraft.core.world.World;
 import net.minecraft.core.world.WorldSource;
 
-public class RopeBlock
+public class BlockRope
     extends Block {
     public static final int MASK_ROPE_CONNECT = 0b1000_0000;
-    public RopeBlock(String key, String namespaceId, int id) {
+    public BlockRope(String key, String namespaceId, int id) {
         super(key, namespaceId,id, Material.cloth);
     }
 
@@ -71,7 +71,7 @@ public class RopeBlock
     public boolean onBlockRightClicked(World world, int x, int y, int z, Player player, Side side, double xPlaced, double yPlaced)
     {
         ItemStack heldItem = player.getHeldItem();
-        if (heldItem != null && heldItem.getItem() instanceof ToolShearsItem) {
+        if (heldItem != null && heldItem.getItem() instanceof ItemToolShears) {
             int meta = world.getBlockMetadata(x, y, z);
             int forceRope = (~meta) & MASK_ROPE_CONNECT;
             world.setBlockMetadataWithNotify(x, y, z, forceRope | (meta & ~MASK_ROPE_CONNECT));
@@ -142,7 +142,7 @@ public class RopeBlock
     }
 
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity) {
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity) {
         return new ItemStack[] { new ItemStack(Items.ROPE) };
     }
 }
diff --git a/src/main/java/net/minecraft/core/block/RotatableBlock.java b/src/main/java/net/minecraft/core/block/BlockRotatable.java
similarity index 89%
rename from src/main/java/net/minecraft/core/block/RotatableBlock.java
rename to src/main/java/net/minecraft/core/block/BlockRotatable.java
index 63379bdbd..1f5400741 100644
--- a/src/main/java/net/minecraft/core/block/RotatableBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockRotatable.java
@@ -5,12 +5,11 @@ import net.minecraft.core.entity.Mob;
 import net.minecraft.core.util.helper.Direction;
 import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.world.World;
-import net.minecraft.core.block.entity.ActivatorBlockEntity;
 import org.jetbrains.annotations.NotNull;
 
-public abstract class RotatableBlock extends Block{
+public abstract class BlockRotatable extends Block{
     public static final int MASK_DIRECTION = 0b0000_0111;
-    public RotatableBlock(String key, String namespaceId, int id, Material material) {
+    public BlockRotatable(String key, String namespaceId, int id, Material material) {
         super(key, namespaceId, id, material);
     }
 
@@ -31,7 +30,7 @@ public abstract class RotatableBlock extends Block{
     @Override
     public void onBlockPlacedOnSide(World world, int x, int y, int z, @NotNull Side side, double xPlaced, double yPlaced) {
         if (!side.isHorizontal()) side = Side.SOUTH;
-        world.setBlockMetadataWithNotify(x, y, z, RotatableBlock.setDirection(0, side.getDirection()));
+        world.setBlockMetadataWithNotify(x, y, z, BlockRotatable.setDirection(0, side.getDirection()));
     }
 
     public static void setDefaultDirection(World world, int x, int y, int z)
diff --git a/src/main/java/net/minecraft/core/block/SandBlock.java b/src/main/java/net/minecraft/core/block/BlockSand.java
similarity index 80%
rename from src/main/java/net/minecraft/core/block/SandBlock.java
rename to src/main/java/net/minecraft/core/block/BlockSand.java
index 7f1fafe9f..748f7b1af 100644
--- a/src/main/java/net/minecraft/core/block/SandBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockSand.java
@@ -1,20 +1,20 @@
 package net.minecraft.core.block;
 
 import net.minecraft.core.block.tag.BlockTags;
-import net.minecraft.core.entity.FallingBlockEntity;
+import net.minecraft.core.entity.EntityFallingBlock;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.world.World;
 
 import java.util.Random;
 
 // Referenced classes of package net.minecraft.src:
-//            Block, Material, World, FallingBlockEntity,
-//            FireBlock
+//            Block, Material, World, EntityFallingBlock,
+//            BlockFire
 
-public class SandBlock extends Block
+public class BlockSand extends Block
 {
 
-    public SandBlock(String key, String namespaceId, int id)
+    public BlockSand(String key, String namespaceId, int id)
     {
         super(key, namespaceId, id, Material.sand);
     }
@@ -52,8 +52,8 @@ public class SandBlock extends Block
                 }
             } else
             {
-                FallingBlockEntity fallingBlockEntity = new FallingBlockEntity(world, x + 0.5, y + 0.5, z + 0.5, id, 0, null);
-                world.entityJoinedWorld(fallingBlockEntity);
+                EntityFallingBlock entityFallingBlock = new EntityFallingBlock(world, x + 0.5, y + 0.5, z + 0.5, id, 0, null);
+                world.entityJoinedWorld(entityFallingBlock);
             }
         }
     }
diff --git a/src/main/java/net/minecraft/core/block/SaplingBaseBlock.java b/src/main/java/net/minecraft/core/block/BlockSaplingBase.java
similarity index 90%
rename from src/main/java/net/minecraft/core/block/SaplingBaseBlock.java
rename to src/main/java/net/minecraft/core/block/BlockSaplingBase.java
index 66e14b858..3f11ee255 100644
--- a/src/main/java/net/minecraft/core/block/SaplingBaseBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockSaplingBase.java
@@ -11,14 +11,14 @@ import net.minecraft.core.world.World;
 import org.jetbrains.annotations.Nullable;
 
 // Referenced classes of package net.minecraft.src:
-//            FlowerBlock, World, WorldGenTaiga2, WorldGenForest,
+//            BlockFlower, World, WorldGenTaiga2, WorldGenForest,
 //            WorldGenTrees, WorldGenBigTree, WorldGenerator
 
-public abstract class SaplingBaseBlock extends FlowerBlock implements IBonemealable
+public abstract class BlockSaplingBase extends BlockFlower implements IBonemealable
 {
 	public boolean canGrowOnSand = false;
 
-	public SaplingBaseBlock(String key, String namespaceId, int id)
+	public BlockSaplingBase(String key, String namespaceId, int id)
     {
         super(key, namespaceId, id);
         float f = 0.4F;
@@ -67,7 +67,7 @@ public abstract class SaplingBaseBlock extends FlowerBlock implements IBonemeala
     public boolean onBonemealUsed(ItemStack itemstack, @Nullable Player player, World world, int blockX, int blockY, int blockZ, Side side, double xPlaced, double yPlaced){
         if(!world.isClientSide)
         {
-            ((SaplingBaseBlock)Block.blocksList[id]).growTree(world, blockX, blockY, blockZ, world.rand);
+            ((BlockSaplingBase)Block.blocksList[id]).growTree(world, blockX, blockY, blockZ, world.rand);
             if (player == null || player.getGamemode().consumeBlocks())
             {
                 itemstack.stackSize--;
diff --git a/src/main/java/net/minecraft/core/block/SaplingBirchBlock.java b/src/main/java/net/minecraft/core/block/BlockSaplingBirch.java
similarity index 80%
rename from src/main/java/net/minecraft/core/block/SaplingBirchBlock.java
rename to src/main/java/net/minecraft/core/block/BlockSaplingBirch.java
index 2d3a87c91..7545f9390 100644
--- a/src/main/java/net/minecraft/core/block/SaplingBirchBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockSaplingBirch.java
@@ -7,13 +7,13 @@ import net.minecraft.core.world.generate.feature.WorldFeature;
 import java.util.Random;
 
 // Referenced classes of package net.minecraft.src:
-//            FlowerBlock, World, WorldGenTaiga2, WorldGenForest,
+//            BlockFlower, World, WorldGenTaiga2, WorldGenForest,
 //            WorldGenTrees, WorldGenBigTree, WorldGenerator
 
-public class SaplingBirchBlock extends SaplingBaseBlock
+public class BlockSaplingBirch extends BlockSaplingBase
 {
 
-	public SaplingBirchBlock(String key, String namespaceId, int id)
+	public BlockSaplingBirch(String key, String namespaceId, int id)
     {
         super(key, namespaceId, id);
     }
diff --git a/src/main/java/net/minecraft/core/block/SaplingCacaoBlock.java b/src/main/java/net/minecraft/core/block/BlockSaplingCacao.java
similarity index 84%
rename from src/main/java/net/minecraft/core/block/SaplingCacaoBlock.java
rename to src/main/java/net/minecraft/core/block/BlockSaplingCacao.java
index e7be41576..e7086fe14 100644
--- a/src/main/java/net/minecraft/core/block/SaplingCacaoBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockSaplingCacao.java
@@ -6,10 +6,10 @@ import net.minecraft.core.world.generate.feature.tree.WorldFeatureTree;
 
 import java.util.Random;
 
-public class SaplingCacaoBlock extends SaplingBaseBlock
+public class BlockSaplingCacao extends BlockSaplingBase
 {
 
-    public SaplingCacaoBlock(String key, String namespaceId, int id)
+    public BlockSaplingCacao(String key, String namespaceId, int id)
     {
         super(key, namespaceId, id);
     }
diff --git a/src/main/java/net/minecraft/core/block/SaplingCherryBlock.java b/src/main/java/net/minecraft/core/block/BlockSaplingCherry.java
similarity index 85%
rename from src/main/java/net/minecraft/core/block/SaplingCherryBlock.java
rename to src/main/java/net/minecraft/core/block/BlockSaplingCherry.java
index 47b143630..1c45f2f8a 100644
--- a/src/main/java/net/minecraft/core/block/SaplingCherryBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockSaplingCherry.java
@@ -8,13 +8,13 @@ import net.minecraft.core.world.generate.feature.tree.WorldFeatureTreeCherry;
 import net.minecraft.core.world.generate.feature.tree.WorldFeatureTreeFancy;
 
 // Referenced classes of package net.minecraft.src:
-//            FlowerBlock, World, WorldGenTaiga2, WorldGenForest,
+//            BlockFlower, World, WorldGenTaiga2, WorldGenForest,
 //            WorldGenTrees, WorldGenBigTree, WorldGenerator
 
-public class SaplingCherryBlock extends SaplingBaseBlock
+public class BlockSaplingCherry extends BlockSaplingBase
 {
 
-	public SaplingCherryBlock(String key, String namespaceId, int id)
+	public BlockSaplingCherry(String key, String namespaceId, int id)
     {
         super(key, namespaceId, id);
     }
diff --git a/src/main/java/net/minecraft/core/block/SaplingEucalyptusBlock.java b/src/main/java/net/minecraft/core/block/BlockSaplingEucalyptus.java
similarity index 81%
rename from src/main/java/net/minecraft/core/block/SaplingEucalyptusBlock.java
rename to src/main/java/net/minecraft/core/block/BlockSaplingEucalyptus.java
index 64fa1f8e9..bb98975f9 100644
--- a/src/main/java/net/minecraft/core/block/SaplingEucalyptusBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockSaplingEucalyptus.java
@@ -7,13 +7,13 @@ import net.minecraft.core.world.generate.feature.WorldFeature;
 import java.util.Random;
 
 // Referenced classes of package net.minecraft.src:
-//            FlowerBlock, World, WorldGenTaiga2, WorldGenForest,
+//            BlockFlower, World, WorldGenTaiga2, WorldGenForest,
 //            WorldGenTrees, WorldGenBigTree, WorldGenerator
 
-public class SaplingEucalyptusBlock extends SaplingBaseBlock
+public class BlockSaplingEucalyptus extends BlockSaplingBase
 {
 
-	public SaplingEucalyptusBlock(String key, String namespaceId, int id)
+	public BlockSaplingEucalyptus(String key, String namespaceId, int id)
     {
         super(key, namespaceId, id);
     }
diff --git a/src/main/java/net/minecraft/core/block/SaplingOakBlock.java b/src/main/java/net/minecraft/core/block/BlockSaplingOak.java
similarity index 84%
rename from src/main/java/net/minecraft/core/block/SaplingOakBlock.java
rename to src/main/java/net/minecraft/core/block/BlockSaplingOak.java
index 4a1365258..e359156e6 100644
--- a/src/main/java/net/minecraft/core/block/SaplingOakBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockSaplingOak.java
@@ -8,13 +8,13 @@ import net.minecraft.core.world.generate.feature.WorldFeature;
 import java.util.Random;
 
 // Referenced classes of package net.minecraft.src:
-//            FlowerBlock, World, WorldGenTaiga2, WorldGenForest,
+//            BlockFlower, World, WorldGenTaiga2, WorldGenForest,
 //            WorldGenTrees, WorldGenBigTree, WorldGenerator
 
-public class SaplingOakBlock extends SaplingBaseBlock
+public class BlockSaplingOak extends BlockSaplingBase
 {
 
-	public SaplingOakBlock(String key, String namespaceId, int id)
+	public BlockSaplingOak(String key, String namespaceId, int id)
     {
         super(key, namespaceId, id);
     }
diff --git a/src/main/java/net/minecraft/core/block/SaplingPalmBlock.java b/src/main/java/net/minecraft/core/block/BlockSaplingPalm.java
similarity index 81%
rename from src/main/java/net/minecraft/core/block/SaplingPalmBlock.java
rename to src/main/java/net/minecraft/core/block/BlockSaplingPalm.java
index d5eee8e85..2ad4876a4 100644
--- a/src/main/java/net/minecraft/core/block/SaplingPalmBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockSaplingPalm.java
@@ -5,9 +5,9 @@ import java.util.Random;
 import net.minecraft.core.world.World;
 import net.minecraft.core.world.generate.feature.tree.WorldFeatureTreePalm;
 
-public class SaplingPalmBlock extends SaplingBaseBlock {
+public class BlockSaplingPalm extends BlockSaplingBase {
 
-	public SaplingPalmBlock(String key, String namespaceId, int id) {
+	public BlockSaplingPalm(String key, String namespaceId, int id) {
 		super(key, namespaceId, id);
 		
 		this.canGrowOnSand = true;
diff --git a/src/main/java/net/minecraft/core/block/SaplingPineBlock.java b/src/main/java/net/minecraft/core/block/BlockSaplingPine.java
similarity index 90%
rename from src/main/java/net/minecraft/core/block/SaplingPineBlock.java
rename to src/main/java/net/minecraft/core/block/BlockSaplingPine.java
index 901b049c6..3e66bae0e 100644
--- a/src/main/java/net/minecraft/core/block/SaplingPineBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockSaplingPine.java
@@ -8,13 +8,13 @@ import net.minecraft.core.world.generate.feature.WorldFeature;
 import java.util.Random;
 
 // Referenced classes of package net.minecraft.src:
-//            FlowerBlock, World, WorldGenTaiga2, WorldGenForest,
+//            BlockFlower, World, WorldGenTaiga2, WorldGenForest,
 //            WorldGenTrees, WorldGenBigTree, WorldGenerator
 
-public class SaplingPineBlock extends SaplingBaseBlock
+public class BlockSaplingPine extends BlockSaplingBase
 {
 
-	public SaplingPineBlock(String key, String namespaceId, int id)
+	public BlockSaplingPine(String key, String namespaceId, int id)
     {
         super(key, namespaceId, id);
     }
diff --git a/src/main/java/net/minecraft/core/block/SaplingRetroBlock.java b/src/main/java/net/minecraft/core/block/BlockSaplingRetro.java
similarity index 85%
rename from src/main/java/net/minecraft/core/block/SaplingRetroBlock.java
rename to src/main/java/net/minecraft/core/block/BlockSaplingRetro.java
index f378b2f96..0e553cd7e 100644
--- a/src/main/java/net/minecraft/core/block/SaplingRetroBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockSaplingRetro.java
@@ -8,13 +8,13 @@ import net.minecraft.core.world.generate.feature.WorldFeature;
 import java.util.Random;
 
 // Referenced classes of package net.minecraft.src:
-//            FlowerBlock, World, WorldGenTaiga2, WorldGenForest,
+//            BlockFlower, World, WorldGenTaiga2, WorldGenForest,
 //            WorldGenTrees, WorldGenBigTree, WorldGenerator
 
-public class SaplingRetroBlock extends SaplingBaseBlock
+public class BlockSaplingRetro extends BlockSaplingBase
 {
 
-	public SaplingRetroBlock(String key, String namespaceId, int id)
+	public BlockSaplingRetro(String key, String namespaceId, int id)
     {
         super(key, namespaceId, id);
     }
diff --git a/src/main/java/net/minecraft/core/block/SaplingShrubBlock.java b/src/main/java/net/minecraft/core/block/BlockSaplingShrub.java
similarity index 81%
rename from src/main/java/net/minecraft/core/block/SaplingShrubBlock.java
rename to src/main/java/net/minecraft/core/block/BlockSaplingShrub.java
index b77d4a015..defa974ab 100644
--- a/src/main/java/net/minecraft/core/block/SaplingShrubBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockSaplingShrub.java
@@ -7,13 +7,13 @@ import net.minecraft.core.world.generate.feature.WorldFeature;
 import java.util.Random;
 
 // Referenced classes of package net.minecraft.src:
-//            FlowerBlock, World, WorldGenTaiga2, WorldGenForest,
+//            BlockFlower, World, WorldGenTaiga2, WorldGenForest,
 //            WorldGenTrees, WorldGenBigTree, WorldGenerator
 
-public class SaplingShrubBlock extends SaplingBaseBlock
+public class BlockSaplingShrub extends BlockSaplingBase
 {
 
-	public SaplingShrubBlock(String key, String namespaceId, int id)
+	public BlockSaplingShrub(String key, String namespaceId, int id)
     {
         super(key, namespaceId, id);
     }
diff --git a/src/main/java/net/minecraft/core/block/SaplingThornBlock.java b/src/main/java/net/minecraft/core/block/BlockSaplingThorn.java
similarity index 85%
rename from src/main/java/net/minecraft/core/block/SaplingThornBlock.java
rename to src/main/java/net/minecraft/core/block/BlockSaplingThorn.java
index 3eb007099..25a8bdb33 100644
--- a/src/main/java/net/minecraft/core/block/SaplingThornBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockSaplingThorn.java
@@ -6,10 +6,10 @@ import net.minecraft.core.world.generate.feature.WorldFeature;
 
 import java.util.Random;
 
-public class SaplingThornBlock extends SaplingBaseBlock
+public class BlockSaplingThorn extends BlockSaplingBase
 {
 
-    public SaplingThornBlock(String key, String namespaceId, int id)
+    public BlockSaplingThorn(String key, String namespaceId, int id)
     {
         super(key, namespaceId, id);
     }
diff --git a/src/main/java/net/minecraft/core/block/SeatBlock.java b/src/main/java/net/minecraft/core/block/BlockSeat.java
similarity index 75%
rename from src/main/java/net/minecraft/core/block/SeatBlock.java
rename to src/main/java/net/minecraft/core/block/BlockSeat.java
index 52dabc50c..268be8395 100644
--- a/src/main/java/net/minecraft/core/block/SeatBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockSeat.java
@@ -1,7 +1,7 @@
 package net.minecraft.core.block;
 
-import net.minecraft.core.block.entity.BlockEntity;
-import net.minecraft.core.block.entity.SeatBlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
+import net.minecraft.core.block.entity.TileEntitySeat;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.enums.EnumDropCause;
@@ -10,10 +10,10 @@ import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.world.World;
 
-public class SeatBlock
-    extends EntityBlock
+public class BlockSeat
+    extends BlockTileEntity
 {
-    public SeatBlock(String key, String namespaceId, int id) {
+    public BlockSeat(String key, String namespaceId, int id) {
         super(key, namespaceId, id, Material.wood);
         
         setBlockBounds(0f, 0f, 0f, 1f, 9f / 16f, 1f);
@@ -25,7 +25,7 @@ public class SeatBlock
             return false;
         }
         if (!world.isClientSide) {
-            SeatBlockEntity tileEntity = (SeatBlockEntity) world.getBlockEntity(x, y, z);
+            TileEntitySeat tileEntity = (TileEntitySeat) world.getBlockEntity(x, y, z);
             if (tileEntity.getPassenger() == null) {
                 player.startRiding(tileEntity);
             }
@@ -37,7 +37,7 @@ public class SeatBlock
     @Override
     public void onBlockRemoved(World world, int x, int y, int z, int data) {
         if (!world.isClientSide) {
-            SeatBlockEntity tileEntity = (SeatBlockEntity) world.getBlockEntity(x, y, z);
+            TileEntitySeat tileEntity = (TileEntitySeat) world.getBlockEntity(x, y, z);
             if (tileEntity != null && tileEntity.getPassenger() != null) {
                 tileEntity.ejectRider();
             }
@@ -56,12 +56,12 @@ public class SeatBlock
     }
     
     @Override
-    protected BlockEntity getNewBlockEntity() {
-        return new SeatBlockEntity(this);
+    protected TileEntity getNewBlockEntity() {
+        return new TileEntitySeat(this);
     }
 
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity) {
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity) {
         if (dropCause != EnumDropCause.IMPROPER_TOOL)
         {
             return new ItemStack[] { new ItemStack(Items.SEAT) };
diff --git a/src/main/java/net/minecraft/core/block/SignBlock.java b/src/main/java/net/minecraft/core/block/BlockSign.java
similarity index 92%
rename from src/main/java/net/minecraft/core/block/SignBlock.java
rename to src/main/java/net/minecraft/core/block/BlockSign.java
index e95cdad70..e703f2a4c 100644
--- a/src/main/java/net/minecraft/core/block/SignBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockSign.java
@@ -1,8 +1,8 @@
 package net.minecraft.core.block;
 
 import net.minecraft.core.achievement.Achievements;
-import net.minecraft.core.block.entity.BlockEntity;
-import net.minecraft.core.block.entity.SignBlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
+import net.minecraft.core.block.entity.TileEntitySign;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.item.Items;
@@ -13,11 +13,11 @@ import net.minecraft.core.world.World;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.world.WorldSource;
 
-public class SignBlock extends EntityBlock
+public class BlockSign extends BlockTileEntity
 {
     private final boolean isFreeStanding;
 
-	public SignBlock(String key, String namespaceId, int id, boolean isFreeStanding)
+	public BlockSign(String key, String namespaceId, int id, boolean isFreeStanding)
     {
         super(key, namespaceId, id, Material.wood);
         this.isFreeStanding = isFreeStanding;
@@ -107,9 +107,9 @@ public class SignBlock extends EntityBlock
     }
 
     @Override
-	protected BlockEntity getNewBlockEntity()
+	protected TileEntity getNewBlockEntity()
     {
-        return new SignBlockEntity();
+        return new TileEntitySign();
     }
 
     @Override
@@ -151,13 +151,13 @@ public class SignBlock extends EntityBlock
         super.onNeighborBlockChange(world, x, y, z, blockId);
     }
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity)
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity)
     {
         return new ItemStack[] { new ItemStack(Items.SIGN) };
     }
     @Override
     public boolean onBlockRightClicked(World world, int x, int y, int z, Player player, Side side, double xPlaced, double yPlaced) {
-        SignBlockEntity signEntity = (SignBlockEntity)world.getBlockEntity(x, y, z);
+        TileEntitySign signEntity = (TileEntitySign)world.getBlockEntity(x, y, z);
         if (signEntity != null && player != null) {
             if (player.getHeldItem() != null && player.getHeldItem().itemID == Items.DUST_GLOWSTONE.id && !signEntity.isGlowing()) {
                 signEntity.setGlowing(true);
diff --git a/src/main/java/net/minecraft/core/block/SlabBlock.java b/src/main/java/net/minecraft/core/block/BlockSlab.java
similarity index 93%
rename from src/main/java/net/minecraft/core/block/SlabBlock.java
rename to src/main/java/net/minecraft/core/block/BlockSlab.java
index 86513126a..2c410d618 100644
--- a/src/main/java/net/minecraft/core/block/SlabBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockSlab.java
@@ -1,13 +1,13 @@
 package net.minecraft.core.block;
 
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.block.material.MaterialColor;
 import net.minecraft.core.entity.Entity;
 import net.minecraft.core.entity.Mob;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.item.ItemStack;
-import net.minecraft.core.item.block.SlabBlockItem;
+import net.minecraft.core.item.block.ItemBlockSlab;
 import net.minecraft.core.util.helper.Direction;
 import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.util.phys.AABB;
@@ -21,16 +21,16 @@ import java.util.Random;
 // Referenced classes of package net.minecraft.src:
 //            Block, Material, World, IBlockAccess
 
-public class SlabBlock extends Block
+public class BlockSlab extends Block
 {
 
-    public SlabBlock(Block modelBlock, String namespaceId, int id)
+    public BlockSlab(Block modelBlock, String namespaceId, int id)
     {
         this(modelBlock, namespaceId, id, 0);
-        setBlockItem(() -> new SlabBlockItem(this));
+        setBlockItem(() -> new ItemBlockSlab(this));
     }
     
-    public SlabBlock(Block modelBlock, String namespaceId, int id, int modelBlockMetadata)
+    public BlockSlab(Block modelBlock, String namespaceId, int id, int modelBlockMetadata)
     {
     	super("slab." + modelBlock.key.substring(5), namespaceId, id, modelBlock.blockMaterial);
         this.modelBlock = modelBlock;
@@ -85,9 +85,9 @@ public class SlabBlock extends Block
     }
 
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int x, int y, int z, int meta, BlockEntity blockEntity)
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int x, int y, int z, int meta, TileEntity tileEntity)
     {
-        ItemStack[] result = modelBlock.getBreakResult(world, dropCause, x, y, z, modelBlockMetadata, blockEntity);
+        ItemStack[] result = modelBlock.getBreakResult(world, dropCause, x, y, z, modelBlockMetadata, tileEntity);
 
         if (result != null)
         {
@@ -107,9 +107,9 @@ public class SlabBlock extends Block
     }
 
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity)
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity)
     {
-        ItemStack[] result = modelBlock.getBreakResult(world, dropCause, modelBlockMetadata, blockEntity);
+        ItemStack[] result = modelBlock.getBreakResult(world, dropCause, modelBlockMetadata, tileEntity);
 
         if (result != null)
         {
diff --git a/src/main/java/net/minecraft/core/block/PaintableSlabBlock.java b/src/main/java/net/minecraft/core/block/BlockSlabPaintable.java
similarity index 78%
rename from src/main/java/net/minecraft/core/block/PaintableSlabBlock.java
rename to src/main/java/net/minecraft/core/block/BlockSlabPaintable.java
index 96b12d38b..2952fb178 100644
--- a/src/main/java/net/minecraft/core/block/PaintableSlabBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockSlabPaintable.java
@@ -1,17 +1,17 @@
-package net.minecraft.core.block;
-
-import net.minecraft.core.util.helper.DyeColor;
-import net.minecraft.core.world.World;
-
-public class PaintableSlabBlock extends SlabBlock implements IPaintable {
-    public PaintableSlabBlock(Block modelBlock, String namespaceId, int id) {
-        super(modelBlock, namespaceId, id);
-    }
-
-    @Override
-    public void setColor(World world, int x, int y, int z, DyeColor color) {
-        final int meta = world.getBlockMetadata(x, y, z);
-        world.setBlockAndMetadata(x, y, z, Blocks.SLAB_PLANKS_PAINTED.id, meta);
-        ((IPaintable) Blocks.SLAB_PLANKS_PAINTED).setColor(world, x, y, z, color);
-    }
-}
+package net.minecraft.core.block;
+
+import net.minecraft.core.util.helper.DyeColor;
+import net.minecraft.core.world.World;
+
+public class BlockSlabPaintable extends BlockSlab implements IPaintable {
+    public BlockSlabPaintable(Block modelBlock, String namespaceId, int id) {
+        super(modelBlock, namespaceId, id);
+    }
+
+    @Override
+    public void setColor(World world, int x, int y, int z, DyeColor color) {
+        final int meta = world.getBlockMetadata(x, y, z);
+        world.setBlockAndMetadata(x, y, z, Blocks.SLAB_PLANKS_PAINTED.id, meta);
+        ((IPaintable) Blocks.SLAB_PLANKS_PAINTED).setColor(world, x, y, z, color);
+    }
+}
diff --git a/src/main/java/net/minecraft/core/block/PaintedSlabBlock.java b/src/main/java/net/minecraft/core/block/BlockSlabPainted.java
similarity index 93%
rename from src/main/java/net/minecraft/core/block/PaintedSlabBlock.java
rename to src/main/java/net/minecraft/core/block/BlockSlabPainted.java
index 3eb3e0365..1e00cbd03 100644
--- a/src/main/java/net/minecraft/core/block/PaintedSlabBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockSlabPainted.java
@@ -10,9 +10,9 @@ import net.minecraft.core.world.World;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
-public class PaintedSlabBlock extends SlabBlock implements IPainted
+public class BlockSlabPainted extends BlockSlab implements IPainted
 {
-	public PaintedSlabBlock(Block modelBlock, String namespaceId, int id)
+	public BlockSlabPainted(Block modelBlock, String namespaceId, int id)
 	{
 		super(modelBlock, namespaceId, id);
 	}
diff --git a/src/main/java/net/minecraft/core/block/SlipperyBlock.java b/src/main/java/net/minecraft/core/block/BlockSlippery.java
similarity index 64%
rename from src/main/java/net/minecraft/core/block/SlipperyBlock.java
rename to src/main/java/net/minecraft/core/block/BlockSlippery.java
index 804b2880b..c604966ea 100644
--- a/src/main/java/net/minecraft/core/block/SlipperyBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockSlippery.java
@@ -2,9 +2,9 @@ package net.minecraft.core.block;
 
 import net.minecraft.core.block.material.Material;
 
-public class SlipperyBlock extends Block {
+public class BlockSlippery extends Block {
 
-    public SlipperyBlock(String key, String namespaceId, int id, Material material) {
+    public BlockSlippery(String key, String namespaceId, int id, Material material) {
         super(key, namespaceId, id, material);
         friction = 0.98F;
     }
diff --git a/src/main/java/net/minecraft/core/block/SnowBlock.java b/src/main/java/net/minecraft/core/block/BlockSnow.java
similarity index 87%
rename from src/main/java/net/minecraft/core/block/SnowBlock.java
rename to src/main/java/net/minecraft/core/block/BlockSnow.java
index 9569acc0b..12f55c4cc 100644
--- a/src/main/java/net/minecraft/core/block/SnowBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockSnow.java
@@ -1,6 +1,6 @@
 package net.minecraft.core.block;
 
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.item.Items;
 import net.minecraft.core.item.ItemStack;
@@ -14,10 +14,10 @@ import java.util.Random;
 //            Block, Material, Item, EnumSkyBlock, 
 //            World
 
-public class SnowBlock extends Block
+public class BlockSnow extends Block
 {
 
-	public SnowBlock(String key, String namespaceId, int id)
+	public BlockSnow(String key, String namespaceId, int id)
     {
         super(key, namespaceId, id, Material.snow);
         setTicking(true);
@@ -39,7 +39,7 @@ public class SnowBlock extends Block
     }
 
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity)
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity)
     {
         switch (dropCause)
         {
diff --git a/src/main/java/net/minecraft/core/block/SoulSandBlock.java b/src/main/java/net/minecraft/core/block/BlockSoulSand.java
similarity index 88%
rename from src/main/java/net/minecraft/core/block/SoulSandBlock.java
rename to src/main/java/net/minecraft/core/block/BlockSoulSand.java
index 96596648c..4772523d2 100644
--- a/src/main/java/net/minecraft/core/block/SoulSandBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockSoulSand.java
@@ -11,10 +11,10 @@ import net.minecraft.core.block.material.Material;
 import net.minecraft.core.world.World;
 import net.minecraft.core.world.WorldSource;
 
-public class SoulSandBlock extends Block
+public class BlockSoulSand extends Block
 {
 
-    public SoulSandBlock(String key, String namespaceId, int id)
+    public BlockSoulSand(String key, String namespaceId, int id)
     {
         super(key, namespaceId, id, Material.soulsand);
     }
diff --git a/src/main/java/net/minecraft/core/block/SpikesBlock.java b/src/main/java/net/minecraft/core/block/BlockSpikes.java
similarity index 92%
rename from src/main/java/net/minecraft/core/block/SpikesBlock.java
rename to src/main/java/net/minecraft/core/block/BlockSpikes.java
index e703356fa..51c8ca404 100644
--- a/src/main/java/net/minecraft/core/block/SpikesBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockSpikes.java
@@ -1,8 +1,8 @@
 package net.minecraft.core.block;
 
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.entity.Entity;
-import net.minecraft.core.entity.ItemEntity;
+import net.minecraft.core.entity.EntityItem;
 import net.minecraft.core.entity.Mob;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.item.ItemStack;
@@ -16,11 +16,11 @@ import net.minecraft.core.util.helper.DamageType;
 import net.minecraft.core.world.WorldSource;
 import org.jetbrains.annotations.NotNull;
 
-public class SpikesBlock extends Block
+public class BlockSpikes extends Block
 {
     public static final int MASK_POWERED = 0b0000_0001;
 
-    public SpikesBlock(String key, String namespaceId, int id, Material mat)
+    public BlockSpikes(String key, String namespaceId, int id, Material mat)
     {
         super(key, namespaceId, id, mat);
     }
@@ -38,7 +38,7 @@ public class SpikesBlock extends Block
     }
 
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity)
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity)
     {
         return new ItemStack[] { new ItemStack(Blocks.SPIKES) };
     }
@@ -102,7 +102,7 @@ public class SpikesBlock extends Block
 
     @Override
     public boolean collidesWithEntity(Entity entity, World world, int x, int y, int z) {
-        return !(entity instanceof ItemEntity);
+        return !(entity instanceof EntityItem);
     }
     
     public static boolean isSpikesUp(int i)
diff --git a/src/main/java/net/minecraft/core/block/SpinifexBlock.java b/src/main/java/net/minecraft/core/block/BlockSpinifex.java
similarity index 73%
rename from src/main/java/net/minecraft/core/block/SpinifexBlock.java
rename to src/main/java/net/minecraft/core/block/BlockSpinifex.java
index d83e70500..7e428a88a 100644
--- a/src/main/java/net/minecraft/core/block/SpinifexBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockSpinifex.java
@@ -1,17 +1,17 @@
 package net.minecraft.core.block;
 
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.world.World;
 
 // Referenced classes of package net.minecraft.src:
-//            FlowerBlock, Block
+//            BlockFlower, Block
 
-public class SpinifexBlock extends FlowerBlock
+public class BlockSpinifex extends BlockFlower
 {
 
-	public SpinifexBlock(String key, String namespaceId, int id)
+	public BlockSpinifex(String key, String namespaceId, int id)
     {
         super(key, namespaceId, id);
         float f = 0.4F;
@@ -19,7 +19,7 @@ public class SpinifexBlock extends FlowerBlock
     }
 
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity)
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity)
     {
         switch (dropCause)
         {
diff --git a/src/main/java/net/minecraft/core/block/SpongeBlock.java b/src/main/java/net/minecraft/core/block/BlockSponge.java
similarity index 97%
rename from src/main/java/net/minecraft/core/block/SpongeBlock.java
rename to src/main/java/net/minecraft/core/block/BlockSponge.java
index fd6f03993..a016fbc3b 100644
--- a/src/main/java/net/minecraft/core/block/SpongeBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockSponge.java
@@ -13,10 +13,10 @@ import net.minecraft.core.world.World;
 
 import java.util.Random;
 
-public class SpongeBlock extends Block
+public class BlockSponge extends Block
 {
     final boolean isWet;
-	public SpongeBlock(String key, String namespaceId, int id, boolean isWet)
+	public BlockSponge(String key, String namespaceId, int id, boolean isWet)
     {
         super(key, namespaceId, id, Material.sponge);
         this.isWet = isWet;
diff --git a/src/main/java/net/minecraft/core/block/StairsBlock.java b/src/main/java/net/minecraft/core/block/BlockStairs.java
similarity index 97%
rename from src/main/java/net/minecraft/core/block/StairsBlock.java
rename to src/main/java/net/minecraft/core/block/BlockStairs.java
index eb2221b80..55cec6b5f 100644
--- a/src/main/java/net/minecraft/core/block/StairsBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockStairs.java
@@ -3,7 +3,7 @@ package net.minecraft.core.block;
 import java.util.ArrayList;
 import java.util.Random;
 
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.block.material.MaterialColor;
 import net.minecraft.core.entity.Mob;
 import net.minecraft.core.entity.player.Player;
@@ -23,7 +23,7 @@ import org.jetbrains.annotations.NotNull;
 //            IBlockAccess, AxisAlignedBB, Player, Entity,
 //            Vec3D
 
-public class StairsBlock extends Block
+public class BlockStairs extends Block
 {
 //    private static final Map<Integer, BoundingVolume> selectionVolumes = new HashMap<>();
 //
@@ -86,7 +86,7 @@ public class StairsBlock extends Block
 //        selectionVolumes.put(0b1011, vol);
 //    }
 
-	public StairsBlock(Block block, String namespaceId, int id)
+	public BlockStairs(Block block, String namespaceId, int id)
     {
         super("stairs." + block.key.substring(5), namespaceId, id, block.blockMaterial);
         modelBlock = block;
@@ -163,9 +163,9 @@ public class StairsBlock extends Block
     }
 
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int x, int y, int z, int meta, BlockEntity blockEntity)
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int x, int y, int z, int meta, TileEntity tileEntity)
     {
-        ItemStack[] result = modelBlock.getBreakResult(world, dropCause, x, y, z, 0, blockEntity);
+        ItemStack[] result = modelBlock.getBreakResult(world, dropCause, x, y, z, 0, tileEntity);
 
         if (result != null)
         {
@@ -183,9 +183,9 @@ public class StairsBlock extends Block
     }
 
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity)
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity)
     {
-        ItemStack[] result = modelBlock.getBreakResult(world, dropCause, 0, blockEntity);
+        ItemStack[] result = modelBlock.getBreakResult(world, dropCause, 0, tileEntity);
 
         if (result != null)
         {
diff --git a/src/main/java/net/minecraft/core/block/PaintableStairsBlock.java b/src/main/java/net/minecraft/core/block/BlockStairsPaintable.java
similarity index 78%
rename from src/main/java/net/minecraft/core/block/PaintableStairsBlock.java
rename to src/main/java/net/minecraft/core/block/BlockStairsPaintable.java
index 8cf9d16d0..833b05b3f 100644
--- a/src/main/java/net/minecraft/core/block/PaintableStairsBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockStairsPaintable.java
@@ -1,17 +1,17 @@
-package net.minecraft.core.block;
-
-import net.minecraft.core.util.helper.DyeColor;
-import net.minecraft.core.world.World;
-
-public class PaintableStairsBlock extends StairsBlock implements IPaintable {
-    public PaintableStairsBlock(Block block, String namespaceId, int id) {
-        super(block, namespaceId, id);
-    }
-
-    @Override
-    public void setColor(World world, int x, int y, int z, DyeColor color) {
-        final int meta = world.getBlockMetadata(x, y, z);
-        world.setBlockAndMetadata(x, y, z, Blocks.STAIRS_PLANKS_PAINTED.id, meta);
-        ((IPaintable) Blocks.STAIRS_PLANKS_PAINTED).setColor(world, x, y, z, color);
-    }
-}
+package net.minecraft.core.block;
+
+import net.minecraft.core.util.helper.DyeColor;
+import net.minecraft.core.world.World;
+
+public class BlockStairsPaintable extends BlockStairs implements IPaintable {
+    public BlockStairsPaintable(Block block, String namespaceId, int id) {
+        super(block, namespaceId, id);
+    }
+
+    @Override
+    public void setColor(World world, int x, int y, int z, DyeColor color) {
+        final int meta = world.getBlockMetadata(x, y, z);
+        world.setBlockAndMetadata(x, y, z, Blocks.STAIRS_PLANKS_PAINTED.id, meta);
+        ((IPaintable) Blocks.STAIRS_PLANKS_PAINTED).setColor(world, x, y, z, color);
+    }
+}
diff --git a/src/main/java/net/minecraft/core/block/PaintedStairsBlock.java b/src/main/java/net/minecraft/core/block/BlockStairsPainted.java
similarity index 84%
rename from src/main/java/net/minecraft/core/block/PaintedStairsBlock.java
rename to src/main/java/net/minecraft/core/block/BlockStairsPainted.java
index 0b63bdb3d..3f15f550e 100644
--- a/src/main/java/net/minecraft/core/block/PaintedStairsBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockStairsPainted.java
@@ -1,36 +1,36 @@
-package net.minecraft.core.block;
-
-import net.minecraft.core.util.helper.DyeColor;
-import net.minecraft.core.world.World;
-
-public class PaintedStairsBlock extends StairsBlock implements IPainted {
-    public PaintedStairsBlock(Block block, String namespaceId, int id) {
-        super(block, namespaceId, id);
-    }
-
-    @Override
-    public DyeColor fromMetadata(int meta) {
-        return DyeColor.colorFromBlockMeta((meta & 0xF0) >> 4);
-    }
-
-    @Override
-    public int toMetadata(DyeColor color) {
-        return color.blockMeta << 4;
-    }
-
-    @Override
-    public int stripColorFromMetadata(int meta) {
-        return meta & 0xF;
-    }
-
-    @Override
-    public void removeDye(World world, int x, int y, int z) {
-        final int meta = world.getBlockMetadata(x, y, z);
-        world.setBlockAndMetadataWithNotify(x, y, z, Blocks.STAIRS_PLANKS_OAK.id, stripColorFromMetadata(meta));
-    }
-
-    @Override
-    public void setColor(World world, int x, int y, int z, DyeColor color) {
-        IPainted.super.setColor(world, x, y, z, color);
-    }
-}
+package net.minecraft.core.block;
+
+import net.minecraft.core.util.helper.DyeColor;
+import net.minecraft.core.world.World;
+
+public class BlockStairsPainted extends BlockStairs implements IPainted {
+    public BlockStairsPainted(Block block, String namespaceId, int id) {
+        super(block, namespaceId, id);
+    }
+
+    @Override
+    public DyeColor fromMetadata(int meta) {
+        return DyeColor.colorFromBlockMeta((meta & 0xF0) >> 4);
+    }
+
+    @Override
+    public int toMetadata(DyeColor color) {
+        return color.blockMeta << 4;
+    }
+
+    @Override
+    public int stripColorFromMetadata(int meta) {
+        return meta & 0xF;
+    }
+
+    @Override
+    public void removeDye(World world, int x, int y, int z) {
+        final int meta = world.getBlockMetadata(x, y, z);
+        world.setBlockAndMetadataWithNotify(x, y, z, Blocks.STAIRS_PLANKS_OAK.id, stripColorFromMetadata(meta));
+    }
+
+    @Override
+    public void setColor(World world, int x, int y, int z, DyeColor color) {
+        IPainted.super.setColor(world, x, y, z, color);
+    }
+}
diff --git a/src/main/java/net/minecraft/core/block/StoneBlock.java b/src/main/java/net/minecraft/core/block/BlockStone.java
similarity index 86%
rename from src/main/java/net/minecraft/core/block/StoneBlock.java
rename to src/main/java/net/minecraft/core/block/BlockStone.java
index b09f44511..8b3559dff 100644
--- a/src/main/java/net/minecraft/core/block/StoneBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockStone.java
@@ -2,7 +2,7 @@ package net.minecraft.core.block;
 
 import net.minecraft.core.achievement.Achievements;
 import net.minecraft.core.achievement.stat.StatList;
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.item.ItemStack;
@@ -13,19 +13,19 @@ import net.minecraft.core.world.chunk.Chunk;
 import java.util.Random;
 import java.util.function.Supplier;
 
-public class StoneBlock extends Block {
+public class BlockStone extends Block {
 
 	private final Supplier<Block> cobblestoneSupplier;
 
-	public StoneBlock(String key, String namespaceId, int id, Supplier<Block> cobbleStoneSupplier, Material material) {
+	public BlockStone(String key, String namespaceId, int id, Supplier<Block> cobbleStoneSupplier, Material material) {
 		super(key, namespaceId, id, material);
 		this.cobblestoneSupplier = cobbleStoneSupplier;
 	}
 
 	@Override
-	public void harvestBlock(World world, Player player, int x, int y, int z, int meta, BlockEntity blockEntity)
+	public void harvestBlock(World world, Player player, int x, int y, int z, int meta, TileEntity tileEntity)
 	{
-		super.harvestBlock(world, player, x, y, z, meta, blockEntity);
+		super.harvestBlock(world, player, x, y, z, meta, tileEntity);
 		if(
 			player.getStat(Blocks.STONE.getStat(StatList.STAT_MINED)) > 0 &&
 			player.getStat(Blocks.BASALT.getStat(StatList.STAT_MINED)) > 0 &&
@@ -48,7 +48,7 @@ public class StoneBlock extends Block {
 	}
 
 	@Override
-	public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity)
+	public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity)
 	{
 		switch (dropCause)
 		{
diff --git a/src/main/java/net/minecraft/core/block/SugarcaneBlock.java b/src/main/java/net/minecraft/core/block/BlockSugarcane.java
similarity index 93%
rename from src/main/java/net/minecraft/core/block/SugarcaneBlock.java
rename to src/main/java/net/minecraft/core/block/BlockSugarcane.java
index 3337905eb..dd13cbcc9 100644
--- a/src/main/java/net/minecraft/core/block/SugarcaneBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockSugarcane.java
@@ -1,6 +1,6 @@
 package net.minecraft.core.block;
 
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.item.IBonemealable;
 import net.minecraft.core.util.helper.Side;
@@ -20,10 +20,10 @@ import java.util.Random;
 //            Block, Material, World, GrassBlock,
 //            Item, AxisAlignedBB
 
-public class SugarcaneBlock extends Block implements IBonemealable
+public class BlockSugarcane extends Block implements IBonemealable
 {
 
-	public SugarcaneBlock(String key, String namespaceId, int id)
+	public BlockSugarcane(String key, String namespaceId, int id)
     {
         super(key, namespaceId, id, Material.plant);
         float f = 0.375F;
@@ -108,7 +108,7 @@ public class SugarcaneBlock extends Block implements IBonemealable
     }
 
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity)
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity)
     {
         return new ItemStack[] { new ItemStack(Items.SUGARCANE) };
     }
@@ -141,7 +141,7 @@ public class SugarcaneBlock extends Block implements IBonemealable
     public boolean onBonemealUsed(ItemStack itemstack, @Nullable Player player, World world, int blockX, int blockY, int blockZ, Side side, double xPlaced, double yPlaced) {
         if(!world.isClientSide)
         {
-            ((SugarcaneBlock)Block.blocksList[id]).growReedOnTop(world, blockX, blockY, blockZ);
+            ((BlockSugarcane)Block.blocksList[id]).growReedOnTop(world, blockX, blockY, blockZ);
             if (player == null || player.getGamemode().consumeBlocks())
             {
                 itemstack.stackSize--;
diff --git a/src/main/java/net/minecraft/core/block/TNTBlock.java b/src/main/java/net/minecraft/core/block/BlockTNT.java
similarity index 78%
rename from src/main/java/net/minecraft/core/block/TNTBlock.java
rename to src/main/java/net/minecraft/core/block/BlockTNT.java
index fc84b92cd..b06e9a886 100644
--- a/src/main/java/net/minecraft/core/block/TNTBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockTNT.java
@@ -1,18 +1,18 @@
 package net.minecraft.core.block;
 
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.entity.player.Player;
-import net.minecraft.core.entity.TNTPrimedEntity;
+import net.minecraft.core.entity.EntityPrimedTNT;
 import net.minecraft.core.enums.EnumDropCause;
-import net.minecraft.core.item.FireStrikerItem;
+import net.minecraft.core.item.ItemFireStriker;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.world.World;
 import net.minecraft.core.block.material.Material;
 
-public class TNTBlock extends Block {
+public class BlockTNT extends Block {
 
-	public TNTBlock(String key, String namespaceId, int id) {
+	public BlockTNT(String key, String namespaceId, int id) {
 		super(key, namespaceId, id, Material.explosive);
 	}
 
@@ -32,7 +32,7 @@ public class TNTBlock extends Block {
 	}
 
 	@Override
-	public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity)
+	public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity)
 	{
 		if (dropCause == EnumDropCause.EXPLOSION)
 		{
@@ -43,7 +43,7 @@ public class TNTBlock extends Block {
 
 	@Override
 	public void onBlockDestroyedByExplosion(World world, int x, int y, int z) {
-		TNTPrimedEntity entity = new TNTPrimedEntity(world, x + 0.5F, y + 0.5F, z + 0.5F);
+		EntityPrimedTNT entity = new EntityPrimedTNT(world, x + 0.5F, y + 0.5F, z + 0.5F);
 		entity.fuse = world.rand.nextInt(entity.fuse / 4) + entity.fuse / 8;
 		world.entityJoinedWorld(entity);
 	}
@@ -54,23 +54,23 @@ public class TNTBlock extends Block {
 
 	public void ignite(World world, int x, int y, int z, Player player, boolean sound) {
 		if (world.isClientSide) {
-			if (player != null && player.inventory.getCurrentItem() != null && (player.inventory.getCurrentItem().getItem() instanceof FireStrikerItem)) {
+			if (player != null && player.inventory.getCurrentItem() != null && (player.inventory.getCurrentItem().getItem() instanceof ItemFireStriker)) {
 				player.inventory.getCurrentItem().damageItem(1, player);
 			}
 			return;
 		}
 		world.setBlockWithNotify(x, y, z, 0);
-		TNTPrimedEntity e = new TNTPrimedEntity(world, x + 0.5F, y + 0.5F, z + 0.5F);
+		EntityPrimedTNT e = new EntityPrimedTNT(world, x + 0.5F, y + 0.5F, z + 0.5F);
 		world.entityJoinedWorld(e);
 		world.playSoundAtEntity(null, e, "tile.tnt.fuse", 1.0F, 1.0F);
-		if (player != null && player.inventory.getCurrentItem() != null && (player.inventory.getCurrentItem().getItem() instanceof FireStrikerItem)) {
+		if (player != null && player.inventory.getCurrentItem() != null && (player.inventory.getCurrentItem().getItem() instanceof ItemFireStriker)) {
 			player.inventory.getCurrentItem().damageItem(1, player);
 		}
 	}
 
 	@Override
 	public void onBlockLeftClicked(World world, int x, int y, int z, Player player, Side side, double xHit, double yHit) {
-		if (player.getCurrentEquippedItem() != null && player.getCurrentEquippedItem().getItem() instanceof FireStrikerItem) {
+		if (player.getCurrentEquippedItem() != null && player.getCurrentEquippedItem().getItem() instanceof ItemFireStriker) {
 			world.setBlockMetadata(x, y, z, 1);
 		}
 		super.onBlockLeftClicked(world, x, y, z, player, side, xHit, yHit);
@@ -78,7 +78,7 @@ public class TNTBlock extends Block {
 
 	@Override
     public boolean onBlockRightClicked(World world, int x, int y, int z, Player player, Side side, double xPlaced, double yPlaced) {
-		if (player.inventory.getCurrentItem() != null && player.inventory.getCurrentItem().getItem() instanceof FireStrikerItem) {
+		if (player.inventory.getCurrentItem() != null && player.inventory.getCurrentItem().getItem() instanceof ItemFireStriker) {
 			ignite(world, x, y, z, player, true);
 			return true;
 		}
diff --git a/src/main/java/net/minecraft/core/block/TallGrassBlock.java b/src/main/java/net/minecraft/core/block/BlockTallGrass.java
similarity index 75%
rename from src/main/java/net/minecraft/core/block/TallGrassBlock.java
rename to src/main/java/net/minecraft/core/block/BlockTallGrass.java
index be059352c..63d3fb2e8 100644
--- a/src/main/java/net/minecraft/core/block/TallGrassBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockTallGrass.java
@@ -1,19 +1,19 @@
 package net.minecraft.core.block;
 
 
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.block.material.MaterialColor;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.world.World;
 
 // Referenced classes of package net.minecraft.src:
-//            FlowerBlock, IBlockAccess, WorldChunkManager, ColorizerGrass,
+//            BlockFlower, IBlockAccess, WorldChunkManager, ColorizerGrass,
 //            Item
 
-public class TallGrassBlock extends FlowerBlock
+public class BlockTallGrass extends BlockFlower
 {
-	public TallGrassBlock(String key, String namespaceId, int id)
+	public BlockTallGrass(String key, String namespaceId, int id)
     {
         super(key, namespaceId, id);
         float f = 0.4F;
@@ -24,14 +24,14 @@ public class TallGrassBlock extends FlowerBlock
     @Override
     protected boolean mayPlaceOn(int blockId) {
     	Block block = Block.getBlock(blockId);
-    	if(block != null && block instanceof MossBlock) {
+    	if(block != null && block instanceof BlockMoss) {
     		return true;
     	}
     	return super.mayPlaceOn(blockId);
     }
 
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity)
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity)
     {
         switch (dropCause)
         {
diff --git a/src/main/java/net/minecraft/core/block/EntityBlock.java b/src/main/java/net/minecraft/core/block/BlockTileEntity.java
similarity index 62%
rename from src/main/java/net/minecraft/core/block/EntityBlock.java
rename to src/main/java/net/minecraft/core/block/BlockTileEntity.java
index 7ca686827..e29c4127b 100644
--- a/src/main/java/net/minecraft/core/block/EntityBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockTileEntity.java
@@ -2,16 +2,16 @@ package net.minecraft.core.block;
 
 
 // Referenced classes of package net.minecraft.src:
-//            Block, World, Material, BlockEntity
+//            Block, World, Material, TileEntity
 
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.world.World;
 
-public abstract class EntityBlock extends Block
+public abstract class BlockTileEntity extends Block
 {
 
-	public EntityBlock(String key, String namespaceId, int id, Material material)
+	public BlockTileEntity(String key, String namespaceId, int id, Material material)
     {
         super(key, namespaceId, id, material);
         isEntityTile[id] = true;
@@ -29,13 +29,13 @@ public abstract class EntityBlock extends Block
     {
         super.onBlockRemoved(world, x, y, z, data);
         if (!world.isClientSide) {
-            BlockEntity blockEntity = world.getBlockEntity(x, y, z);
-            if(blockEntity != null) {
-                blockEntity.dropContents(world, x, y, z);
+            TileEntity tileEntity = world.getBlockEntity(x, y, z);
+            if(tileEntity != null) {
+                tileEntity.dropContents(world, x, y, z);
             }
         }
         world.removeBlockTileEntity(x, y, z);
     }
 
-    protected abstract BlockEntity getNewBlockEntity();
+    protected abstract TileEntity getNewBlockEntity();
 }
diff --git a/src/main/java/net/minecraft/core/block/RotatableEntityBlock.java b/src/main/java/net/minecraft/core/block/BlockTileEntityRotatable.java
similarity index 71%
rename from src/main/java/net/minecraft/core/block/RotatableEntityBlock.java
rename to src/main/java/net/minecraft/core/block/BlockTileEntityRotatable.java
index fd379f415..e3ec97846 100644
--- a/src/main/java/net/minecraft/core/block/RotatableEntityBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockTileEntityRotatable.java
@@ -2,15 +2,13 @@ package net.minecraft.core.block;
 
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.entity.Mob;
-import net.minecraft.core.util.helper.Direction;
 import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.world.World;
-import net.minecraft.core.block.entity.ActivatorBlockEntity;
 import org.jetbrains.annotations.NotNull;
 
-public abstract class RotatableEntityBlock extends EntityBlock {
+public abstract class BlockTileEntityRotatable extends BlockTileEntity {
 
-	public RotatableEntityBlock(String key, String namespaceId, int id, Material material) {
+	public BlockTileEntityRotatable(String key, String namespaceId, int id, Material material) {
         super(key, namespaceId, id, material);
     }
 
@@ -22,6 +20,6 @@ public abstract class RotatableEntityBlock extends EntityBlock {
     @Override
     public void onBlockPlacedOnSide(World world, int x, int y, int z, @NotNull Side side, double xPlaced, double yPlaced) {
         if (!side.isHorizontal()) side = Side.SOUTH;
-        world.setBlockMetadataWithNotify(x, y, z, RotatableBlock.setDirection(0, side.getDirection()));
+        world.setBlockMetadataWithNotify(x, y, z, BlockRotatable.setDirection(0, side.getDirection()));
     }
 }
diff --git a/src/main/java/net/minecraft/core/block/VeryRotatableEntityBlock.java b/src/main/java/net/minecraft/core/block/BlockTileEntityVeryRotatable.java
similarity index 87%
rename from src/main/java/net/minecraft/core/block/VeryRotatableEntityBlock.java
rename to src/main/java/net/minecraft/core/block/BlockTileEntityVeryRotatable.java
index 468a7b450..7f43eca35 100644
--- a/src/main/java/net/minecraft/core/block/VeryRotatableEntityBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockTileEntityVeryRotatable.java
@@ -7,9 +7,9 @@ import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.world.World;
 import org.jetbrains.annotations.NotNull;
 
-public abstract class VeryRotatableEntityBlock extends RotatableEntityBlock {
+public abstract class BlockTileEntityVeryRotatable extends BlockTileEntityRotatable {
     public static final int MASK_DIRECTION = 0b0000_0111;
-	public VeryRotatableEntityBlock(String key, String namespaceId, int id, Material material) {
+	public BlockTileEntityVeryRotatable(String key, String namespaceId, int id, Material material) {
         super(key, namespaceId, id, material);
     }
 
diff --git a/src/main/java/net/minecraft/core/block/TorchBlock.java b/src/main/java/net/minecraft/core/block/BlockTorch.java
similarity index 99%
rename from src/main/java/net/minecraft/core/block/TorchBlock.java
rename to src/main/java/net/minecraft/core/block/BlockTorch.java
index 31b1bd706..9f584b832 100644
--- a/src/main/java/net/minecraft/core/block/TorchBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockTorch.java
@@ -17,7 +17,7 @@ import java.util.Random;
 //            Block, Material, World, AxisAlignedBB, 
 //            Vec3D, MovingObjectPosition
 
-public class TorchBlock extends Block
+public class BlockTorch extends Block
 {
     public static final int MASK_DIRECTION = 0b0000_0111;
     public static final int SIDE_NONE = 0;
@@ -28,7 +28,7 @@ public class TorchBlock extends Block
     public static final int SIDE_BOTTOM = 5;
     public static final int SIDE_TOP = 6;
 
-	public TorchBlock(String key, String namespaceId, int id)
+	public BlockTorch(String key, String namespaceId, int id)
     {
         super(key, namespaceId, id, Material.decoration);
         setTicking(true);
diff --git a/src/main/java/net/minecraft/core/block/RedstoneTorchBlock.java b/src/main/java/net/minecraft/core/block/BlockTorchRedstone.java
similarity index 96%
rename from src/main/java/net/minecraft/core/block/RedstoneTorchBlock.java
rename to src/main/java/net/minecraft/core/block/BlockTorchRedstone.java
index e7e93cabd..78cd8c9ac 100644
--- a/src/main/java/net/minecraft/core/block/RedstoneTorchBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockTorchRedstone.java
@@ -1,7 +1,7 @@
 package net.minecraft.core.block;
 
 import net.minecraft.client.util.helper.Colors;
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.util.helper.Color;
@@ -11,10 +11,10 @@ import net.minecraft.core.world.WorldSource;
 
 import java.util.Random;
 
-public class RedstoneTorchBlock extends TorchBlock {
+public class BlockTorchRedstone extends BlockTorch {
     private final boolean torchActive;
 
-    public RedstoneTorchBlock(String key, String namespaceId, int id, boolean isActive) {
+    public BlockTorchRedstone(String key, String namespaceId, int id, boolean isActive) {
         super(key, namespaceId, id);
         torchActive = isActive;
         setTicking(true);
@@ -119,7 +119,7 @@ public class RedstoneTorchBlock extends TorchBlock {
     }
 
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity) {
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity) {
         return new ItemStack[]{new ItemStack(Blocks.TORCH_REDSTONE_ACTIVE)};
     }
 
diff --git a/src/main/java/net/minecraft/core/block/TransparentBlock.java b/src/main/java/net/minecraft/core/block/BlockTransparent.java
similarity index 70%
rename from src/main/java/net/minecraft/core/block/TransparentBlock.java
rename to src/main/java/net/minecraft/core/block/BlockTransparent.java
index 57c3e9d2c..9e3ee745b 100644
--- a/src/main/java/net/minecraft/core/block/TransparentBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockTransparent.java
@@ -2,10 +2,10 @@ package net.minecraft.core.block;
 
 import net.minecraft.core.block.material.Material;
 
-public class TransparentBlock extends Block
+public class BlockTransparent extends Block
 {
 
-	public TransparentBlock(String key, String namespaceId, int id, Material material)
+	public BlockTransparent(String key, String namespaceId, int id, Material material)
     {
         super(key, namespaceId, id, material);
     }
diff --git a/src/main/java/net/minecraft/core/block/TrapDoorBlock.java b/src/main/java/net/minecraft/core/block/BlockTrapDoor.java
similarity index 95%
rename from src/main/java/net/minecraft/core/block/TrapDoorBlock.java
rename to src/main/java/net/minecraft/core/block/BlockTrapDoor.java
index 151b538de..95fdf7cff 100644
--- a/src/main/java/net/minecraft/core/block/TrapDoorBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockTrapDoor.java
@@ -1,6 +1,6 @@
 package net.minecraft.core.block;
 
-import net.minecraft.core.block.entity.ActivatorBlockEntity;
+import net.minecraft.core.block.entity.TileEntityActivator;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.enums.PlacementMode;
@@ -19,7 +19,7 @@ import net.minecraft.core.world.WorldSource;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
-public class TrapDoorBlock extends Block implements IPaintable {
+public class BlockTrapDoor extends Block implements IPaintable {
     public static final int DIRECTION_SOUTH = 0;
     public static final int DIRECTION_NORTH = 1;
     public static final int DIRECTION_EAST = 2;
@@ -29,7 +29,7 @@ public class TrapDoorBlock extends Block implements IPaintable {
     public static final int MASK_OPEN = 0b0000_0100;
     public static final int MASK_UPPER_HALF = 0b0000_1000;
 
-    public TrapDoorBlock(String key, String namespaceId, int id, Material material) {
+    public BlockTrapDoor(String key, String namespaceId, int id, Material material) {
         super(key, namespaceId, id, material);
         float f = 0.5F;
         float f1 = 1.0F;
@@ -115,7 +115,7 @@ public class TrapDoorBlock extends Block implements IPaintable {
     }
 
     @Override
-    public void onActivatorInteract(World world, int x, int y, int z, ActivatorBlockEntity activator, Direction direction) {
+    public void onActivatorInteract(World world, int x, int y, int z, TileEntityActivator activator, Direction direction) {
         if (blockMaterial != Material.metal && blockMaterial != Material.steel) {
             int l = world.getBlockMetadata(x, y, z);
             world.setBlockMetadataWithNotify(x, y, z, l ^ MASK_OPEN);
@@ -161,8 +161,8 @@ public class TrapDoorBlock extends Block implements IPaintable {
     public boolean isClimbable(World world, int x, int y, int z) {
         Block block = world.getBlock(x, y - 1, z);
         int meta = world.getBlockMetadata(x, y, z);
-        if (isTrapdoorOpen(meta) && block instanceof LadderBlock) {
-            LadderBlock ladder = (LadderBlock) block;
+        if (isTrapdoorOpen(meta) && block instanceof BlockLadder) {
+            BlockLadder ladder = (BlockLadder) block;
             Side ladderSide = ladder.getSideFromMeta(world.getBlockMetadata(x, y - 1, z));
             Direction trapdoorDirection = getDirectionForMeta(meta);
             return ladderSide.getDirection().getOpposite() == trapdoorDirection;
diff --git a/src/main/java/net/minecraft/core/block/PaintedTrapDoorBlock.java b/src/main/java/net/minecraft/core/block/BlockTrapDoorPainted.java
similarity index 88%
rename from src/main/java/net/minecraft/core/block/PaintedTrapDoorBlock.java
rename to src/main/java/net/minecraft/core/block/BlockTrapDoorPainted.java
index df6618ca8..daa594a01 100644
--- a/src/main/java/net/minecraft/core/block/PaintedTrapDoorBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockTrapDoorPainted.java
@@ -1,6 +1,6 @@
 package net.minecraft.core.block;
 
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.enums.EnumDropCause;
@@ -10,8 +10,8 @@ import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.world.World;
 import org.jetbrains.annotations.Nullable;
 
-public class PaintedTrapDoorBlock extends TrapDoorBlock implements IPainted {
-    public PaintedTrapDoorBlock(String key, String namespaceId, int id, Material material) {
+public class BlockTrapDoorPainted extends BlockTrapDoor implements IPainted {
+    public BlockTrapDoorPainted(String key, String namespaceId, int id, Material material) {
         super(key, namespaceId, id, material);
     }
     
@@ -21,7 +21,7 @@ public class PaintedTrapDoorBlock extends TrapDoorBlock implements IPainted {
     }
     
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity)
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity)
     {
         return new ItemStack[] { new ItemStack(Blocks.TRAPDOOR_PLANKS_PAINTED, 1, (meta >> 4 & 0xF) << 4) };
     }
diff --git a/src/main/java/net/minecraft/core/block/TrommelBlock.java b/src/main/java/net/minecraft/core/block/BlockTrommel.java
similarity index 79%
rename from src/main/java/net/minecraft/core/block/TrommelBlock.java
rename to src/main/java/net/minecraft/core/block/BlockTrommel.java
index af600fa24..2f73d17eb 100644
--- a/src/main/java/net/minecraft/core/block/TrommelBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockTrommel.java
@@ -2,10 +2,9 @@ package net.minecraft.core.block;
 
 import com.mojang.logging.LogUtils;
 import net.minecraft.core.Global;
-import net.minecraft.core.block.entity.BlockEntity;
-import net.minecraft.core.block.entity.TrommelBlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
+import net.minecraft.core.block.entity.TileEntityTrommel;
 import net.minecraft.core.block.material.Material;
-import net.minecraft.core.entity.ItemEntity;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.item.ItemStack;
@@ -15,17 +14,17 @@ import org.slf4j.Logger;
 
 import java.util.Random;
 
-public class TrommelBlock extends RotatableEntityBlock
+public class BlockTrommel extends BlockTileEntityRotatable
 {
     private static final Logger LOGGER = LogUtils.getLogger();
-	public TrommelBlock(String key, String namespaceId, int id, Material material, boolean isActive)
+	public BlockTrommel(String key, String namespaceId, int id, Material material, boolean isActive)
     {
         super(key, namespaceId, id, material);
         this.isActive = isActive;
     }
 
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity)
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity)
     {
         switch (dropCause)
         {
@@ -43,7 +42,7 @@ public class TrommelBlock extends RotatableEntityBlock
     public boolean onBlockRightClicked(World world, int x, int y, int z, Player player, Side side, double xPlaced, double yPlaced)
     {
         if (!world.isClientSide) {
-            TrommelBlockEntity tileEntityTrommel = (TrommelBlockEntity) world.getBlockEntity(x, y, z);
+            TileEntityTrommel tileEntityTrommel = (TileEntityTrommel) world.getBlockEntity(x, y, z);
             player.displayTrommelScreen(tileEntityTrommel);
         }
         return true;
@@ -63,8 +62,8 @@ public class TrommelBlock extends RotatableEntityBlock
     public static void updateTrommelBlockState(boolean lit, World world, int x, int y, int z)
     {
         int l = world.getBlockMetadata(x, y, z);
-        BlockEntity blockEntity = world.getBlockEntity(x, y, z);
-        if(blockEntity == null) {
+        TileEntity tileEntity = world.getBlockEntity(x, y, z);
+        if(tileEntity == null) {
             String msg = "Trommel is missing Tile Entity at x: " + x + " y: " + y + " z: " + z + ", block will be removed!";
             if(Global.BUILD_CHANNEL.isUnstableBuild()) {
                 throw new RuntimeException(msg);
@@ -83,15 +82,15 @@ public class TrommelBlock extends RotatableEntityBlock
         }
         keepTrommelInventory = false;
         world.setBlockMetadataWithNotify(x, y, z, l);
-        blockEntity.validate();
-        world.setBlockTileEntity(x, y, z, blockEntity);
+        tileEntity.validate();
+        world.setBlockTileEntity(x, y, z, tileEntity);
     }
 
 
     @Override
-	protected BlockEntity getNewBlockEntity()
+	protected TileEntity getNewBlockEntity()
     {
-        return new TrommelBlockEntity();
+        return new TileEntityTrommel();
     }
 
     private boolean isActive;
diff --git a/src/main/java/net/minecraft/core/block/RedstoneWireBlock.java b/src/main/java/net/minecraft/core/block/BlockWireRedstone.java
similarity index 98%
rename from src/main/java/net/minecraft/core/block/RedstoneWireBlock.java
rename to src/main/java/net/minecraft/core/block/BlockWireRedstone.java
index f6e1339a0..330017d43 100644
--- a/src/main/java/net/minecraft/core/block/RedstoneWireBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockWireRedstone.java
@@ -1,7 +1,7 @@
 package net.minecraft.core.block;
 
 import net.minecraft.client.util.helper.Colors;
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.item.ItemStack;
@@ -19,11 +19,11 @@ import java.util.HashSet;
 import java.util.Random;
 import java.util.Set;
 
-public class RedstoneWireBlock extends Block {
+public class BlockWireRedstone extends Block {
     private boolean shouldSignal = true;
     private final Set<ChunkPosition> toUpdate = new HashSet<>();
 
-    public RedstoneWireBlock(String key, String namespaceId, int id) {
+    public BlockWireRedstone(String key, String namespaceId, int id) {
         super(key, namespaceId, id, Material.decoration);
         setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.0625F, 1.0F);
     }
@@ -268,7 +268,7 @@ public class RedstoneWireBlock extends Block {
     }
 
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity) {
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity) {
         return new ItemStack[]{new ItemStack(Items.DUST_REDSTONE)};
     }
 
@@ -373,7 +373,7 @@ public class RedstoneWireBlock extends Block {
         }
         if (blockId == Blocks.REPEATER_IDLE.id || blockId == Blocks.REPEATER_ACTIVE.id) {
             int meta = worldSource.getBlockMetadata(x, y, z);
-            return data == BedBlock.footToHeadMap[meta & 0b11];
+            return data == BlockBed.footToHeadMap[meta & 0b11];
         } else {
             return false;
         }
diff --git a/src/main/java/net/minecraft/core/block/WoolBlock.java b/src/main/java/net/minecraft/core/block/BlockWool.java
similarity index 85%
rename from src/main/java/net/minecraft/core/block/WoolBlock.java
rename to src/main/java/net/minecraft/core/block/BlockWool.java
index e0d5a70ed..9c15e00ca 100644
--- a/src/main/java/net/minecraft/core/block/WoolBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockWool.java
@@ -1,6 +1,6 @@
 package net.minecraft.core.block;
 
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.enums.EnumDropCause;
@@ -10,9 +10,9 @@ import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.world.World;
 import org.jetbrains.annotations.Nullable;
 
-public class WoolBlock extends Block implements IPainted
+public class BlockWool extends Block implements IPainted
 {
-    public WoolBlock(String key, String namespaceId, int id) {
+    public BlockWool(String key, String namespaceId, int id) {
 
         super(key, namespaceId, id, Material.cloth);
     }
@@ -23,7 +23,7 @@ public class WoolBlock extends Block implements IPainted
     }
 
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity)
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity)
     {
         return new ItemStack[] { new ItemStack(this, 1, meta) };
     }
diff --git a/src/main/java/net/minecraft/core/block/WorkbenchBlock.java b/src/main/java/net/minecraft/core/block/BlockWorkbench.java
similarity index 86%
rename from src/main/java/net/minecraft/core/block/WorkbenchBlock.java
rename to src/main/java/net/minecraft/core/block/BlockWorkbench.java
index 5b300247e..9fd2a1763 100644
--- a/src/main/java/net/minecraft/core/block/WorkbenchBlock.java
+++ b/src/main/java/net/minecraft/core/block/BlockWorkbench.java
@@ -8,10 +8,10 @@ import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.world.World;
 
-public class WorkbenchBlock extends Block
+public class BlockWorkbench extends Block
 {
 
-	public WorkbenchBlock(String key, String namespaceId, int id)
+	public BlockWorkbench(String key, String namespaceId, int id)
     {
         super(key, namespaceId, id, Material.wood);
     }
diff --git a/src/main/java/net/minecraft/core/block/Blocks.java b/src/main/java/net/minecraft/core/block/Blocks.java
index bb0dec3aa..bcefa2819 100644
--- a/src/main/java/net/minecraft/core/block/Blocks.java
+++ b/src/main/java/net/minecraft/core/block/Blocks.java
@@ -2,25 +2,25 @@ package net.minecraft.core.block;
 
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.block.material.MaterialColor;
-import net.minecraft.core.block.piston.PistonBaseBlock;
-import net.minecraft.core.block.piston.PistonHeadBlock;
-import net.minecraft.core.block.piston.MovingPistonBlock;
-import net.minecraft.core.block.piston.SteelPistonBaseBlock;
-import net.minecraft.core.block.piston.StickyPistonBaseBlock;
+import net.minecraft.core.block.piston.BlockPistonBase;
+import net.minecraft.core.block.piston.BlockPistonHead;
+import net.minecraft.core.block.piston.BlockPistonMoving;
+import net.minecraft.core.block.piston.BlockPistonBaseSteel;
+import net.minecraft.core.block.piston.BlockPistonBaseSticky;
 import net.minecraft.core.block.tag.BlockTags;
 import net.minecraft.core.entity.Entity;
 import net.minecraft.core.entity.Mob;
-import net.minecraft.core.entity.animal.FireflyClusterMob;
+import net.minecraft.core.entity.animal.MobFireflyCluster;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.item.Item;
 import net.minecraft.core.item.Items;
-import net.minecraft.core.item.block.AlgaeBlockItem;
-import net.minecraft.core.item.block.LadderBlockItem;
-import net.minecraft.core.item.block.LeavesLayerBlockItem;
-import net.minecraft.core.item.block.PaintedBlockItem;
-import net.minecraft.core.item.block.BlockItemStairsPainted;
-import net.minecraft.core.item.block.LampBlockItem;
-import net.minecraft.core.item.block.PaintedSlabBlockItem;
+import net.minecraft.core.item.block.ItemBlockAlgae;
+import net.minecraft.core.item.block.ItemBlockLadder;
+import net.minecraft.core.item.block.ItemBlockLayerLeaves;
+import net.minecraft.core.item.block.ItemBlockPainted;
+import net.minecraft.core.item.block.ItemBlockStairsPainted;
+import net.minecraft.core.item.block.ItemBlockLamp;
+import net.minecraft.core.item.block.ItemBlockSlabPainted;
 import net.minecraft.core.sound.BlockSounds;
 
 public final class Blocks {
@@ -447,7 +447,7 @@ public final class Blocks {
 
     public static void init(){
         setupBlocks();
-        MossBlock.initMossMap();
+        BlockMoss.initMossMap();
 
         for(int i = 0; i < Block.blocksList.length; i++)
         {
@@ -471,32 +471,32 @@ public final class Blocks {
     }
 
     public static void setupBlocks(){
-        STONE = new StoneBlock("stone", "minecraft:block/stone", 1, () -> Blocks.COBBLE_STONE, Material.stone).withSound(BlockSounds.STONE).withHardness(1.5F).withBlastResistance(10F)
+        STONE = new BlockStone("stone", "minecraft:block/stone", 1, () -> Blocks.COBBLE_STONE, Material.stone).withSound(BlockSounds.STONE).withHardness(1.5F).withBlastResistance(10F)
             .withTags(BlockTags.CAVES_CUT_THROUGH, BlockTags.MINEABLE_BY_PICKAXE);
-        BASALT = new StoneBlock("basalt", "minecraft:block/basalt", 2, () -> Blocks.COBBLE_BASALT, Material.basalt).withSound(BlockSounds.STONE).withHardness(1.5F).withBlastResistance(10F)
+        BASALT = new BlockStone("basalt", "minecraft:block/basalt", 2, () -> Blocks.COBBLE_BASALT, Material.basalt).withSound(BlockSounds.STONE).withHardness(1.5F).withBlastResistance(10F)
             .withTags(BlockTags.CAVES_CUT_THROUGH, BlockTags.MINEABLE_BY_PICKAXE);
-        LIMESTONE = new StoneBlock("limestone", "minecraft:block/limestone", 3, () -> Blocks.COBBLE_LIMESTONE, Material.limestone).withSound(BlockSounds.STONE).withHardness(1.5F).withBlastResistance(10F)
+        LIMESTONE = new BlockStone("limestone", "minecraft:block/limestone", 3, () -> Blocks.COBBLE_LIMESTONE, Material.limestone).withSound(BlockSounds.STONE).withHardness(1.5F).withBlastResistance(10F)
             .withTags(BlockTags.CAVES_CUT_THROUGH, BlockTags.MINEABLE_BY_PICKAXE);
-        GRANITE = new StoneBlock("granite", "minecraft:block/granite", 4, () -> Blocks.COBBLE_GRANITE, Material.granite).withSound(BlockSounds.STONE).withHardness(1.5F).withBlastResistance(10F)
+        GRANITE = new BlockStone("granite", "minecraft:block/granite", 4, () -> Blocks.COBBLE_GRANITE, Material.granite).withSound(BlockSounds.STONE).withHardness(1.5F).withBlastResistance(10F)
             .withTags(BlockTags.CAVES_CUT_THROUGH, BlockTags.MINEABLE_BY_PICKAXE);
         MARBLE = new Block("marble", "minecraft:block/marble", 5, Material.marble).withSound(BlockSounds.STONE).withHardness(1.0F).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
         SLATE = new Block("slate", "minecraft:block/slate", 6, Material.slate).withSound(BlockSounds.STONE).withHardness(1.5F).withBlastResistance(10F)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        PERMAFROST = new StoneBlock("permafrost", "minecraft:block/permafrost", 7, () -> Blocks.COBBLE_PERMAFROST, Material.permafrost).withSound(BlockSounds.PERMAFROST).withHardness(1.5F).withBlastResistance(10F)
+        PERMAFROST = new BlockStone("permafrost", "minecraft:block/permafrost", 7, () -> Blocks.COBBLE_PERMAFROST, Material.permafrost).withSound(BlockSounds.PERMAFROST).withHardness(1.5F).withBlastResistance(10F)
             .withTags(BlockTags.CAVES_CUT_THROUGH, BlockTags.MINEABLE_BY_PICKAXE);
 
-        COBBLE_STONE = new CobbleBlock("cobble.stone", "minecraft:block/cobble_stone", 10, Material.stone, () -> GRAVEL).withSound(BlockSounds.STONE).withHardness(2.0F).withBlastResistance(10F)
+        COBBLE_STONE = new BlockCobble("cobble.stone", "minecraft:block/cobble_stone", 10, Material.stone, () -> GRAVEL).withSound(BlockSounds.STONE).withHardness(2.0F).withBlastResistance(10F)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        COBBLE_STONE_MOSSY = new CobbleBlock("cobble.stone.mossy", "minecraft:block/cobble_stone_mossy", 11, Material.stone, () -> GRAVEL).withSound(BlockSounds.STONE).withHardness(2.0F).withBlastResistance(10F)
+        COBBLE_STONE_MOSSY = new BlockCobble("cobble.stone.mossy", "minecraft:block/cobble_stone_mossy", 11, Material.stone, () -> GRAVEL).withSound(BlockSounds.STONE).withHardness(2.0F).withBlastResistance(10F)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        COBBLE_BASALT = new CobbleBlock("cobble.basalt", "minecraft:block/cobble_basalt", 12, Material.basalt, () -> GRAVEL).withSound(BlockSounds.STONE).withHardness(2.0F).withBlastResistance(10F)
+        COBBLE_BASALT = new BlockCobble("cobble.basalt", "minecraft:block/cobble_basalt", 12, Material.basalt, () -> GRAVEL).withSound(BlockSounds.STONE).withHardness(2.0F).withBlastResistance(10F)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        COBBLE_LIMESTONE = new CobbleBlock("cobble.limestone", "minecraft:block/cobble_limestone", 13, Material.limestone, () -> GRAVEL).withSound(BlockSounds.STONE).withHardness(2.0F).withBlastResistance(10F)
+        COBBLE_LIMESTONE = new BlockCobble("cobble.limestone", "minecraft:block/cobble_limestone", 13, Material.limestone, () -> GRAVEL).withSound(BlockSounds.STONE).withHardness(2.0F).withBlastResistance(10F)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        COBBLE_GRANITE = new CobbleBlock("cobble.granite", "minecraft:block/cobble_granite", 14, Material.granite, () -> GRAVEL).withSound(BlockSounds.STONE).withHardness(2.0F).withBlastResistance(10F)
+        COBBLE_GRANITE = new BlockCobble("cobble.granite", "minecraft:block/cobble_granite", 14, Material.granite, () -> GRAVEL).withSound(BlockSounds.STONE).withHardness(2.0F).withBlastResistance(10F)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        COBBLE_PERMAFROST = new CobbleBlock("cobble.permafrost", "minecraft:block/cobble_permafrost", 15, Material.permafrost, () -> GRAVEL).withSound(BlockSounds.PERMAFROST).withHardness(2.0F).withBlastResistance(10F)
+        COBBLE_PERMAFROST = new BlockCobble("cobble.permafrost", "minecraft:block/cobble_permafrost", 15, Material.permafrost, () -> GRAVEL).withSound(BlockSounds.PERMAFROST).withHardness(2.0F).withBlastResistance(10F)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
 
         STONE_POLISHED = new Block("stone.polished", "minecraft:block/stone_polished", 860, Material.stone).withSound(BlockSounds.STONE).withHardness(1.0F).withBlastResistance(10F).withDisabledNeighborNotifyOnMetadataChange()
@@ -514,7 +514,7 @@ public final class Blocks {
         NETHERRACK_POLISHED = new Block("netherrack.polished", "minecraft:block/netherrack_polished", 866, Material.netherrack).withSound(BlockSounds.STONE).withHardness(0.4F).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
 
-        PILLAR_MARBLE = new AxisAlignedBlock("pillar.marble", "minecraft:block/pillar_marble", 20, Material.marble).withSound(BlockSounds.STONE).withHardness(1.0F).withBlastResistance(10F).withDisabledNeighborNotifyOnMetadataChange()
+        PILLAR_MARBLE = new BlockAxisAligned("pillar.marble", "minecraft:block/pillar_marble", 20, Material.marble).withSound(BlockSounds.STONE).withHardness(1.0F).withBlastResistance(10F).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
         CAPSTONE_MARBLE = new Block("capstone.marble", "minecraft:block/capstone_marble", 21, Material.marble).withSound(BlockSounds.STONE).withHardness(1.0F).withBlastResistance(10F).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.NOT_IN_CREATIVE_MENU, BlockTags.MINEABLE_BY_PICKAXE);
@@ -535,38 +535,38 @@ public final class Blocks {
         NETHERRACK_CARVED = new Block("netherrack.carved", "minecraft:block/netherrack_carved", 45, Material.netherrack).withSound(BlockSounds.STONE).withHardness(2.0F).withBlastResistance(10F).withDisabledStats()
             .withTags(BlockTags.NOT_IN_CREATIVE_MENU, BlockTags.MINEABLE_BY_PICKAXE);
 
-        PLANKS_OAK = new PlanksBlock("planks.oak", "minecraft:block/planks_oak", 50, Material.wood).withSound(BlockSounds.WOOD).withHardness(2.0F).withBlastResistance(5F).withDisabledNeighborNotifyOnMetadataChange()
+        PLANKS_OAK = new BlockPlanks("planks.oak", "minecraft:block/planks_oak", 50, Material.wood).withSound(BlockSounds.WOOD).withHardness(2.0F).withBlastResistance(5F).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.FENCES_CONNECT, BlockTags.MINEABLE_BY_AXE);
-        PLANKS_OAK_PAINTED = new PaintedPlanksBlock("planks.oak.painted", "minecraft:block/planks_oak_painted", 51).withSound(BlockSounds.WOOD).withHardness(2.0F).withBlastResistance(5F).withDisabledNeighborNotifyOnMetadataChange()
-            .setBlockItem((b) -> new PaintedBlockItem(b, false))
+        PLANKS_OAK_PAINTED = new BlockPlanksPainted("planks.oak.painted", "minecraft:block/planks_oak_painted", 51).withSound(BlockSounds.WOOD).withHardness(2.0F).withBlastResistance(5F).withDisabledNeighborNotifyOnMetadataChange()
+            .setBlockItem((b) -> new ItemBlockPainted(b, false))
             .withTags(BlockTags.FENCES_CONNECT, BlockTags.MINEABLE_BY_AXE);
 
-        TORCH_COAL = new TorchBlock("torch.coal", "minecraft:block/torch_coal", 60).withSound(BlockSounds.WOOD).withHardness(0.0F).withLightEmission(0.9375F).withDisabledNeighborNotifyOnMetadataChange()
+        TORCH_COAL = new BlockTorch("torch.coal", "minecraft:block/torch_coal", 60).withSound(BlockSounds.WOOD).withHardness(0.0F).withLightEmission(0.9375F).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.BROKEN_BY_FLUIDS);
 
-        LADDER_OAK = new LadderBlock("ladder.oak", "minecraft:block/ladder_oak", 70).withSound(BlockSounds.WOOD).withHardness(0.4F).withDisabledNeighborNotifyOnMetadataChange()
-            .setBlockItem((b) -> new LadderBlockItem((LadderBlock) b))
+        LADDER_OAK = new BlockLadder("ladder.oak", "minecraft:block/ladder_oak", 70).withSound(BlockSounds.WOOD).withHardness(0.4F).withDisabledNeighborNotifyOnMetadataChange()
+            .setBlockItem((b) -> new ItemBlockLadder((BlockLadder) b))
             .withTags(BlockTags.MINEABLE_BY_AXE);
 
-        FENCE_PLANKS_OAK = new FenceBlock("fence.planks.oak", "minecraft:block/fence_planks_oak", 80).withSound(BlockSounds.WOOD).withHardness(2.0F).withBlastResistance(5F).withDisabledNeighborNotifyOnMetadataChange()
+        FENCE_PLANKS_OAK = new BlockFence("fence.planks.oak", "minecraft:block/fence_planks_oak", 80).withSound(BlockSounds.WOOD).withHardness(2.0F).withBlastResistance(5F).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.FENCES_CONNECT, BlockTags.MINEABLE_BY_AXE, BlockTags.CAN_HANG_OFF);
-        FENCE_PLANKS_OAK_PAINTED = new PaintedFenceBlock("fence.planks.oak.painted", "minecraft:block/fence_planks_oak_painted", 81).withSound(BlockSounds.WOOD).withHardness(2.0F).withBlastResistance(5F).withDisabledNeighborNotifyOnMetadataChange()
-            .setBlockItem((b) -> new PaintedBlockItem(b, false))
+        FENCE_PLANKS_OAK_PAINTED = new BlockFencePainted("fence.planks.oak.painted", "minecraft:block/fence_planks_oak_painted", 81).withSound(BlockSounds.WOOD).withHardness(2.0F).withBlastResistance(5F).withDisabledNeighborNotifyOnMetadataChange()
+            .setBlockItem((b) -> new ItemBlockPainted(b, false))
             .withTags(BlockTags.FENCES_CONNECT, BlockTags.MINEABLE_BY_AXE, BlockTags.CAN_HANG_OFF);
 
-        FENCE_GATE_PLANKS_OAK = new FenceGateBlock("fencegate.planks.oak", "minecraft:block/fence_gate_planks_oak", 90).withSound(BlockSounds.WOOD).withHardness(2F).withBlastResistance(5F).withDisabledNeighborNotifyOnMetadataChange()
+        FENCE_GATE_PLANKS_OAK = new BlockFenceGate("fencegate.planks.oak", "minecraft:block/fence_gate_planks_oak", 90).withSound(BlockSounds.WOOD).withHardness(2F).withBlastResistance(5F).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.FENCES_CONNECT, BlockTags.MINEABLE_BY_AXE);
-        FENCE_GATE_PLANKS_OAK_PAINTED = new PaintedFenceGateBlock("fencegate.planks.oak.painted", "minecraft:block/fence_gate_planks_oak_painted", 91).withSound(BlockSounds.WOOD).withHardness(2F).withBlastResistance(5F).withDisabledNeighborNotifyOnMetadataChange()
-            .setBlockItem((b) -> new PaintedBlockItem(b, true))
+        FENCE_GATE_PLANKS_OAK_PAINTED = new BlockFenceGatePainted("fencegate.planks.oak.painted", "minecraft:block/fence_gate_planks_oak_painted", 91).withSound(BlockSounds.WOOD).withHardness(2F).withBlastResistance(5F).withDisabledNeighborNotifyOnMetadataChange()
+            .setBlockItem((b) -> new ItemBlockPainted(b, true))
             .withTags(BlockTags.FENCES_CONNECT, BlockTags.MINEABLE_BY_AXE);
 
         BOOKSHELF_PLANKS_OAK = new Block("bookshelf.planks.oak", "minecraft:block/bookshelf_planks_oak", 100, Material.wood).withSound(BlockSounds.WOOD).withHardness(1.5F)
             .withTags(BlockTags.FENCES_CONNECT, BlockTags.MINEABLE_BY_AXE);
 
-        WOOL = new WoolBlock("wool", "minecraft:block/wool", 110).withSound(BlockSounds.CLOTH).withHardness(0.8F).withDisabledNeighborNotifyOnMetadataChange()
-            .setBlockItem((b) -> new PaintedBlockItem(b, false))
+        WOOL = new BlockWool("wool", "minecraft:block/wool", 110).withSound(BlockSounds.CLOTH).withHardness(0.8F).withDisabledNeighborNotifyOnMetadataChange()
+            .setBlockItem((b) -> new ItemBlockPainted(b, false))
             .withTags(BlockTags.MINEABLE_BY_SHEARS);
-        ROPE = new RopeBlock("rope", "minecraft:block/rope", 111).withSound(BlockSounds.CLOTH).withHardness(0.01F).withDisabledNeighborNotifyOnMetadataChange().setStatParent(() -> Items.ROPE)
+        ROPE = new BlockRope("rope", "minecraft:block/rope", 111).withSound(BlockSounds.CLOTH).withHardness(0.01F).withDisabledNeighborNotifyOnMetadataChange().setStatParent(() -> Items.ROPE)
             .withTags(BlockTags.BROKEN_BY_FLUIDS, BlockTags.NOT_IN_CREATIVE_MENU, BlockTags.PREVENT_MOB_SPAWNS, BlockTags.CAN_HANG_OFF, BlockTags.INSTANT_PICKUP);
 
         BRICK_CLAY = new Block("brick.clay", "minecraft:block/brick_clay", 120, Material.stone).withSound(BlockSounds.STONE).withHardness(3.0F).withBlastResistance(10F).withOverrideColor(MaterialColor.brick)
@@ -600,101 +600,101 @@ public final class Blocks {
         BRICK_STEEL = new Block("brick.steel", "minecraft:block/brick_steel", 134, Material.metal).withSound(BlockSounds.METAL).withHardness(5F).withBlastResistance(2000F).withOverrideColor(MaterialColor.steel)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
 
-        SLAB_PLANKS_OAK = new PaintableSlabBlock(PLANKS_OAK, "minecraft:block/slab_planks_oak", 140).withSound(BlockSounds.WOOD).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
+        SLAB_PLANKS_OAK = new BlockSlabPaintable(PLANKS_OAK, "minecraft:block/slab_planks_oak", 140).withSound(BlockSounds.WOOD).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
             .withTags(BlockTags.MINEABLE_BY_AXE);
-        SLAB_COBBLE_STONE = new SlabBlock(COBBLE_STONE, "minecraft:block/slab_cobble_stone", 141).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
+        SLAB_COBBLE_STONE = new BlockSlab(COBBLE_STONE, "minecraft:block/slab_cobble_stone", 141).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        SLAB_SANDSTONE = new SlabBlock(SANDSTONE, "minecraft:block/slab_sandstone", 142).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
+        SLAB_SANDSTONE = new BlockSlab(SANDSTONE, "minecraft:block/slab_sandstone", 142).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        SLAB_BRICK_STONE_POLISHED = new SlabBlock(BRICK_STONE_POLISHED, "minecraft:block/slab_brick_stone_polished", 143).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
+        SLAB_BRICK_STONE_POLISHED = new BlockSlab(BRICK_STONE_POLISHED, "minecraft:block/slab_brick_stone_polished", 143).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        SLAB_STONE_POLISHED = new SlabBlock(STONE_CARVED, "minecraft:block/slab_stone_polished", 144).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
+        SLAB_STONE_POLISHED = new BlockSlab(STONE_CARVED, "minecraft:block/slab_stone_polished", 144).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        SLAB_BRICK_MARBLE = new SlabBlock(BRICK_MARBLE, "minecraft:block/slab_brick_marble", 145).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
+        SLAB_BRICK_MARBLE = new BlockSlab(BRICK_MARBLE, "minecraft:block/slab_brick_marble", 145).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        SLAB_BRICK_CLAY = new SlabBlock(BRICK_CLAY, "minecraft:block/slab_brick_clay", 146).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
+        SLAB_BRICK_CLAY = new BlockSlab(BRICK_CLAY, "minecraft:block/slab_brick_clay", 146).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        SLAB_CAPSTONE_MARBLE = new SlabBlock(CAPSTONE_MARBLE, "minecraft:block/slab_capstone_marble", 147).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
+        SLAB_CAPSTONE_MARBLE = new BlockSlab(CAPSTONE_MARBLE, "minecraft:block/slab_capstone_marble", 147).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        SLAB_COBBLE_BASALT = new SlabBlock(COBBLE_BASALT, "minecraft:block/slab_cobble_basalt", 148).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
+        SLAB_COBBLE_BASALT = new BlockSlab(COBBLE_BASALT, "minecraft:block/slab_cobble_basalt", 148).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        SLAB_COBBLE_LIMESTONE = new SlabBlock(COBBLE_LIMESTONE, "minecraft:block/slab_cobble_limestone", 149).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
+        SLAB_COBBLE_LIMESTONE = new BlockSlab(COBBLE_LIMESTONE, "minecraft:block/slab_cobble_limestone", 149).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        SLAB_COBBLE_GRANITE = new SlabBlock(COBBLE_GRANITE, "minecraft:block/slab_cobble_granite", 150).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
+        SLAB_COBBLE_GRANITE = new BlockSlab(COBBLE_GRANITE, "minecraft:block/slab_cobble_granite", 150).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        SLAB_BRICK_BASALT = new SlabBlock(BRICK_BASALT, "minecraft:block/slab_brick_basalt", 151).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
+        SLAB_BRICK_BASALT = new BlockSlab(BRICK_BASALT, "minecraft:block/slab_brick_basalt", 151).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        SLAB_BRICK_LIMESTONE = new SlabBlock(BRICK_LIMESTONE, "minecraft:block/slab_brick_limestone", 152).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
+        SLAB_BRICK_LIMESTONE = new BlockSlab(BRICK_LIMESTONE, "minecraft:block/slab_brick_limestone", 152).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        SLAB_BRICK_GRANITE = new SlabBlock(BRICK_GRANITE, "minecraft:block/slab_brick_granite", 153).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
+        SLAB_BRICK_GRANITE = new BlockSlab(BRICK_GRANITE, "minecraft:block/slab_brick_granite", 153).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        SLAB_PLANKS_PAINTED = new PaintedSlabBlock(PLANKS_OAK_PAINTED, "minecraft:block/slab_planks_oak_painted", 154).withSound(BlockSounds.WOOD).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
-            .setBlockItem(PaintedSlabBlockItem::new)
+        SLAB_PLANKS_PAINTED = new BlockSlabPainted(PLANKS_OAK_PAINTED, "minecraft:block/slab_planks_oak_painted", 154).withSound(BlockSounds.WOOD).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
+            .setBlockItem(ItemBlockSlabPainted::new)
             .withTags(BlockTags.MINEABLE_BY_AXE);
-        SLAB_BRICK_SLATE = new SlabBlock(BRICK_SLATE, "minecraft:block/slab_brick_slate", 155).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
+        SLAB_BRICK_SLATE = new BlockSlab(BRICK_SLATE, "minecraft:block/slab_brick_slate", 155).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        SLAB_BRICK_STONE = new SlabBlock(BRICK_STONE, "minecraft:block/slab_brick_stone", 156).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
+        SLAB_BRICK_STONE = new BlockSlab(BRICK_STONE, "minecraft:block/slab_brick_stone", 156).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        SLAB_GRANITE_POLISHED = new SlabBlock(GRANITE_CARVED, "minecraft:block/slab_granite_carved", 157).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
+        SLAB_GRANITE_POLISHED = new BlockSlab(GRANITE_CARVED, "minecraft:block/slab_granite_carved", 157).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        SLAB_LIMESTONE_POLISHED = new SlabBlock(LIMESTONE_CARVED, "minecraft:block/slab_limestone_carved", 158).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
+        SLAB_LIMESTONE_POLISHED = new BlockSlab(LIMESTONE_CARVED, "minecraft:block/slab_limestone_carved", 158).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        SLAB_BASALT_POLISHED = new SlabBlock(BASALT_CARVED, "minecraft:block/slab_basalt_carved", 159).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
+        SLAB_BASALT_POLISHED = new BlockSlab(BASALT_CARVED, "minecraft:block/slab_basalt_carved", 159).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
 
-        STAIRS_PLANKS_OAK = new PaintableStairsBlock(PLANKS_OAK, "minecraft:block/stairs_planks_oak", 160).withSound(BlockSounds.WOOD).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
+        STAIRS_PLANKS_OAK = new BlockStairsPaintable(PLANKS_OAK, "minecraft:block/stairs_planks_oak", 160).withSound(BlockSounds.WOOD).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
             .withTags(BlockTags.MINEABLE_BY_AXE);
-        STAIRS_COBBLE_STONE = new StairsBlock(COBBLE_STONE, "minecraft:block/stairs_cobble_stone", 161).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
+        STAIRS_COBBLE_STONE = new BlockStairs(COBBLE_STONE, "minecraft:block/stairs_cobble_stone", 161).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        STAIRS_BRICK_STONE_POLISHED = new StairsBlock(BRICK_STONE_POLISHED, "minecraft:block/stairs_brick_stone_polished", 162).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
+        STAIRS_BRICK_STONE_POLISHED = new BlockStairs(BRICK_STONE_POLISHED, "minecraft:block/stairs_brick_stone_polished", 162).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        STAIRS_BRICK_MARBLE = new StairsBlock(BRICK_MARBLE, "minecraft:block/stairs_brick_marble", 163).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
+        STAIRS_BRICK_MARBLE = new BlockStairs(BRICK_MARBLE, "minecraft:block/stairs_brick_marble", 163).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        STAIRS_COBBLE_BASALT = new StairsBlock(COBBLE_BASALT, "minecraft:block/stairs_cobble_basalt", 164).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
+        STAIRS_COBBLE_BASALT = new BlockStairs(COBBLE_BASALT, "minecraft:block/stairs_cobble_basalt", 164).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        STAIRS_COBBLE_LIMESTONE = new StairsBlock(COBBLE_LIMESTONE, "minecraft:block/stairs_cobble_limestone", 165).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
+        STAIRS_COBBLE_LIMESTONE = new BlockStairs(COBBLE_LIMESTONE, "minecraft:block/stairs_cobble_limestone", 165).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        STAIRS_COBBLE_GRANITE = new StairsBlock(COBBLE_GRANITE, "minecraft:block/stairs_cobble_granite", 166).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
+        STAIRS_COBBLE_GRANITE = new BlockStairs(COBBLE_GRANITE, "minecraft:block/stairs_cobble_granite", 166).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        STAIRS_BRICK_BASALT = new StairsBlock(BRICK_BASALT, "minecraft:block/stairs_brick_basalt", 167).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
+        STAIRS_BRICK_BASALT = new BlockStairs(BRICK_BASALT, "minecraft:block/stairs_brick_basalt", 167).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        STAIRS_BRICK_LIMESTONE = new StairsBlock(BRICK_LIMESTONE, "minecraft:block/stairs_brick_limestone", 168).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
+        STAIRS_BRICK_LIMESTONE = new BlockStairs(BRICK_LIMESTONE, "minecraft:block/stairs_brick_limestone", 168).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        STAIRS_BRICK_GRANITE = new StairsBlock(BRICK_GRANITE, "minecraft:block/stairs_brick_granite", 169).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
+        STAIRS_BRICK_GRANITE = new BlockStairs(BRICK_GRANITE, "minecraft:block/stairs_brick_granite", 169).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        STAIRS_BRICK_CLAY = new StairsBlock(BRICK_CLAY, "minecraft:block/stairs_brick_clay", 170).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
+        STAIRS_BRICK_CLAY = new BlockStairs(BRICK_CLAY, "minecraft:block/stairs_brick_clay", 170).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        STAIRS_PLANKS_PAINTED = new PaintedStairsBlock(PLANKS_OAK_PAINTED, "minecraft:block/stairs_planks_oak_painted", 171).withSound(BlockSounds.WOOD).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
-            .setBlockItem(BlockItemStairsPainted::new)
+        STAIRS_PLANKS_PAINTED = new BlockStairsPainted(PLANKS_OAK_PAINTED, "minecraft:block/stairs_planks_oak_painted", 171).withSound(BlockSounds.WOOD).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
+            .setBlockItem(ItemBlockStairsPainted::new)
             .withTags(BlockTags.MINEABLE_BY_AXE);
-        STAIRS_BRICK_SLATE = new StairsBlock(BRICK_SLATE, "minecraft:block/stairs_brick_slate", 172).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
+        STAIRS_BRICK_SLATE = new BlockStairs(BRICK_SLATE, "minecraft:block/stairs_brick_slate", 172).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        STAIRS_BRICK_STONE = new StairsBlock(BRICK_STONE, "minecraft:block/stairs_brick_stone", 173).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
+        STAIRS_BRICK_STONE = new BlockStairs(BRICK_STONE, "minecraft:block/stairs_brick_stone", 173).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        STAIRS_SANDSTONE = new StairsBlock(SANDSTONE, "minecraft:block/stairs_sandstone", 174).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
+        STAIRS_SANDSTONE = new BlockStairs(SANDSTONE, "minecraft:block/stairs_sandstone", 174).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        STAIRS_BRICK_SANDSTONE = new StairsBlock(BRICK_SANDSTONE, "minecraft:block/stairs_brick_sandstone", 175).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
+        STAIRS_BRICK_SANDSTONE = new BlockStairs(BRICK_SANDSTONE, "minecraft:block/stairs_brick_sandstone", 175).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        STAIRS_COBBLE_PERMAFROST = new StairsBlock(COBBLE_PERMAFROST, "minecraft:block/stairs_cobble_permafrost", 176).withSound(BlockSounds.PERMAFROST).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
+        STAIRS_COBBLE_PERMAFROST = new BlockStairs(COBBLE_PERMAFROST, "minecraft:block/stairs_cobble_permafrost", 176).withSound(BlockSounds.PERMAFROST).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        STAIRS_BRICK_PERMAFROST = new StairsBlock(BRICK_PERMAFROST, "minecraft:block/stairs_brick_permafrost", 177).withSound(BlockSounds.PERMAFROST).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
+        STAIRS_BRICK_PERMAFROST = new BlockStairs(BRICK_PERMAFROST, "minecraft:block/stairs_brick_permafrost", 177).withSound(BlockSounds.PERMAFROST).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
 
         OBSIDIAN = new Block("obsidian", "minecraft:block/obsidian", 180, Material.stone).withSound(BlockSounds.STONE).withHardness(10F).withBlastResistance(2000F).withOverrideColor(MaterialColor.paintedBlack).withImmovableFlagSet()
             .withTags(BlockTags.MINEABLE_BY_PICKAXE, BlockTags.PISTON_CRUSHING);
 
-        GLASS = new GlassBlock("glass", "minecraft:block/glass", 190, Material.glass).withSound(BlockSounds.GLASS).withHardness(0.3F).withTags(BlockTags.MINEABLE_BY_PICKAXE, BlockTags.EXTENDS_MOTION_SENSOR_RANGE);
-        GLASS_TINTED = new TintedGlassBlock("glass.tinted", "minecraft:block/glass_tinted", 191).withSound(BlockSounds.GLASS).withHardness(0.5F).withDisabledNeighborNotifyOnMetadataChange().withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        GLASS_STEEL = new TransparentBlock("glass.steel", "minecraft:block/glass_steel", 192, Material.glass).withSound(BlockSounds.GLASS).withHardness(0.3F).withBlastResistance(2000F).withTags(BlockTags.MINEABLE_BY_PICKAXE, BlockTags.EXTENDS_MOTION_SENSOR_RANGE);
+        GLASS = new BlockGlass("glass", "minecraft:block/glass", 190, Material.glass).withSound(BlockSounds.GLASS).withHardness(0.3F).withTags(BlockTags.MINEABLE_BY_PICKAXE, BlockTags.EXTENDS_MOTION_SENSOR_RANGE);
+        GLASS_TINTED = new BlockGlassTinted("glass.tinted", "minecraft:block/glass_tinted", 191).withSound(BlockSounds.GLASS).withHardness(0.5F).withDisabledNeighborNotifyOnMetadataChange().withTags(BlockTags.MINEABLE_BY_PICKAXE);
+        GLASS_STEEL = new BlockTransparent("glass.steel", "minecraft:block/glass_steel", 192, Material.glass).withSound(BlockSounds.GLASS).withHardness(0.3F).withBlastResistance(2000F).withTags(BlockTags.MINEABLE_BY_PICKAXE, BlockTags.EXTENDS_MOTION_SENSOR_RANGE);
 
-        GRASS = new GrassBlock("grass", "minecraft:block/grass", 200, Material.grass).withSound(BlockSounds.GRASS).withHardness(0.6F)
+        GRASS = new BlockGrass("grass", "minecraft:block/grass", 200, Material.grass).withSound(BlockSounds.GRASS).withHardness(0.6F)
             .withTags(BlockTags.MINEABLE_BY_SHOVEL, BlockTags.GROWS_FLOWERS, BlockTags.GROWS_SUGAR_CANE, BlockTags.PASSIVE_MOBS_SPAWN, BlockTags.FIREFLIES_CAN_SPAWN, BlockTags.GROWS_TREES, BlockTags.CAVES_CUT_THROUGH, BlockTags.CAVE_GEN_REPLACES_SURFACE);
-        GRASS_RETRO = new GrassBlock("grass.retro", "minecraft:block/grass_retro", 201, Material.grass).withSound(BlockSounds.GRASS).withHardness(0.6F)
+        GRASS_RETRO = new BlockGrass("grass.retro", "minecraft:block/grass_retro", 201, Material.grass).withSound(BlockSounds.GRASS).withHardness(0.6F)
             .withTags(BlockTags.MINEABLE_BY_SHOVEL, BlockTags.GROWS_FLOWERS, BlockTags.GROWS_SUGAR_CANE, BlockTags.PASSIVE_MOBS_SPAWN, BlockTags.FIREFLIES_CAN_SPAWN, BlockTags.GROWS_TREES, BlockTags.CAVES_CUT_THROUGH, BlockTags.CAVE_GEN_REPLACES_SURFACE);
-        GRASS_SCORCHED = new ScorchedGrassBlock("grass.scorched", "minecraft:block/grass_scorched", 202, Material.grass).withSound(BlockSounds.GRASS).withHardness(0.6F).withOverrideColor(MaterialColor.grassScorched)
+        GRASS_SCORCHED = new BlockGrassScorched("grass.scorched", "minecraft:block/grass_scorched", 202, Material.grass).withSound(BlockSounds.GRASS).withHardness(0.6F).withOverrideColor(MaterialColor.grassScorched)
             .withTags(BlockTags.MINEABLE_BY_SHOVEL, BlockTags.GROWS_FLOWERS, BlockTags.GROWS_SUGAR_CANE, BlockTags.GROWS_TREES, BlockTags.CAVES_CUT_THROUGH, BlockTags.PASSIVE_MOBS_SPAWN, BlockTags.FIREFLIES_CAN_SPAWN, BlockTags.GROWS_CACTI, BlockTags.CAVE_GEN_REPLACES_SURFACE);
 
-        PATH_DIRT = new DirtPathBlock("path.dirt", "minecraft:block/path_dirt", 210).withSound(BlockSounds.GRAVEL).withHardness(0.5F).withLitInteriorSurface(true).withOverrideColor(MaterialColor.grassScorched)
+        PATH_DIRT = new BlockPathDirt("path.dirt", "minecraft:block/path_dirt", 210).withSound(BlockSounds.GRAVEL).withHardness(0.5F).withLitInteriorSurface(true).withOverrideColor(MaterialColor.grassScorched)
             .withTags(BlockTags.MINEABLE_BY_SHOVEL);
 
         DIRT = new Block("dirt", "minecraft:block/dirt", 220, Material.dirt).withSound(BlockSounds.GRAVEL).withHardness(0.5F)
@@ -704,219 +704,219 @@ public final class Blocks {
         DIRT_SCORCHED_RICH = new Block("dirt.scorched.rich", "minecraft:block/dirt_scorched_rich", 222, Material.dirt).withSound(BlockSounds.GRAVEL).withHardness(0.6F).withOverrideColor(MaterialColor.dirtScorched)
             .withTags(BlockTags.MINEABLE_BY_SHOVEL, BlockTags.GROWS_FLOWERS, BlockTags.GROWS_SUGAR_CANE, BlockTags.GROWS_CACTI, BlockTags.CAVES_CUT_THROUGH);
 
-        MUD = new MudBlock("mud", "minecraft:block/mud", 225, Material.dirt, false).withSound(BlockSounds.GRAVEL).withHardness(0.6F).withOverrideColor(MaterialColor.mud)
+        MUD = new BlockMud("mud", "minecraft:block/mud", 225, Material.dirt, false).withSound(BlockSounds.GRAVEL).withHardness(0.6F).withOverrideColor(MaterialColor.mud)
             .withTags(BlockTags.MINEABLE_BY_SHOVEL, BlockTags.GROWS_FLOWERS, BlockTags.GROWS_CACTI, BlockTags.GROWS_TREES, BlockTags.CAVES_CUT_THROUGH, BlockTags.GROWS_SUGAR_CANE);
-        MUD_BAKED = new MudBlock("mud.baked", "minecraft:block/mud_baked", 226, Material.stone, true).withSound(BlockSounds.STONE).withHardness(1.5F).withOverrideColor(MaterialColor.dirt)
+        MUD_BAKED = new BlockMud("mud.baked", "minecraft:block/mud_baked", 226, Material.stone, true).withSound(BlockSounds.STONE).withHardness(1.5F).withOverrideColor(MaterialColor.dirt)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE, BlockTags.GROWS_FLOWERS, BlockTags.GROWS_CACTI, BlockTags.GROWS_TREES, BlockTags.CAVES_CUT_THROUGH, BlockTags.GROWS_SUGAR_CANE);
 
-        SPONGE_DRY = new SpongeBlock("sponge.dry", "minecraft:block/sponge_dry", 230, false).withSound(BlockSounds.GRASS).withHardness(0.6F).withOverrideColor(MaterialColor.paintedYellow)
+        SPONGE_DRY = new BlockSponge("sponge.dry", "minecraft:block/sponge_dry", 230, false).withSound(BlockSounds.GRASS).withHardness(0.6F).withOverrideColor(MaterialColor.paintedYellow)
             .withTags(BlockTags.MINEABLE_BY_SHEARS);
-        SPONGE_WET = new SpongeBlock("sponge.wet", "minecraft:block/sponge_wet", 231, true).withSound(BlockSounds.GRASS).withHardness(1.0F).withOverrideColor(MaterialColor.paintedYellow)
+        SPONGE_WET = new BlockSponge("sponge.wet", "minecraft:block/sponge_wet", 231, true).withSound(BlockSounds.GRASS).withHardness(1.0F).withOverrideColor(MaterialColor.paintedYellow)
             .withTags(BlockTags.MINEABLE_BY_SHEARS);
-        PUMICE_DRY = new PumiceBlock("pumice.dry", "minecraft:block/pumice_dry", 232, false).withSound(BlockSounds.STONE).withHardness(0.6F).withOverrideColor(MaterialColor.fire)
+        PUMICE_DRY = new BlockPumice("pumice.dry", "minecraft:block/pumice_dry", 232, false).withSound(BlockSounds.STONE).withHardness(0.6F).withOverrideColor(MaterialColor.fire)
             .withTags(BlockTags.MINEABLE_BY_SHEARS);
-        PUMICE_WET = new PumiceBlock("pumice.wet", "minecraft:block/pumice_wet", 233, true).withSound(BlockSounds.STONE).withHardness(1.0F).withLightEmission(0.625F).withOverrideColor(MaterialColor.fire)
+        PUMICE_WET = new BlockPumice("pumice.wet", "minecraft:block/pumice_wet", 233, true).withSound(BlockSounds.STONE).withHardness(1.0F).withLightEmission(0.625F).withOverrideColor(MaterialColor.fire)
             .withTags(BlockTags.MINEABLE_BY_SHEARS);
 
-        MOSS_STONE = new MossBlock("moss.stone", "minecraft:block/moss_stone", 240, STONE.id).withSound(BlockSounds.STONE).withHardness(1.5F).withBlastResistance(10F)
+        MOSS_STONE = new BlockMoss("moss.stone", "minecraft:block/moss_stone", 240, STONE.id).withSound(BlockSounds.STONE).withHardness(1.5F).withBlastResistance(10F)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE, BlockTags.GROWS_FLOWERS, BlockTags.GROWS_SUGAR_CANE);
-        MOSS_BASALT = new MossBlock("moss.basalt", "minecraft:block/moss_basalt", 241, BASALT.id).withSound(BlockSounds.STONE).withHardness(1.5F).withBlastResistance(10F)
+        MOSS_BASALT = new BlockMoss("moss.basalt", "minecraft:block/moss_basalt", 241, BASALT.id).withSound(BlockSounds.STONE).withHardness(1.5F).withBlastResistance(10F)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE, BlockTags.GROWS_FLOWERS, BlockTags.GROWS_SUGAR_CANE);
-        MOSS_LIMESTONE = new MossBlock("moss.limestone", "minecraft:block/moss_limestone", 242, LIMESTONE.id).withSound(BlockSounds.STONE).withHardness(1.5F).withBlastResistance(10F)
+        MOSS_LIMESTONE = new BlockMoss("moss.limestone", "minecraft:block/moss_limestone", 242, LIMESTONE.id).withSound(BlockSounds.STONE).withHardness(1.5F).withBlastResistance(10F)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE, BlockTags.GROWS_FLOWERS, BlockTags.GROWS_SUGAR_CANE);
-        MOSS_GRANITE = new MossBlock("moss.granite", "minecraft:block/moss_granite", 243, GRANITE.id).withSound(BlockSounds.STONE).withHardness(1.5F).withBlastResistance(10F)
+        MOSS_GRANITE = new BlockMoss("moss.granite", "minecraft:block/moss_granite", 243, GRANITE.id).withSound(BlockSounds.STONE).withHardness(1.5F).withBlastResistance(10F)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE, BlockTags.GROWS_FLOWERS, BlockTags.GROWS_SUGAR_CANE);
 
-        SAND = new SandBlock("sand", "minecraft:block/sand", 250).withSound(BlockSounds.SAND).withHardness(0.5F)
+        SAND = new BlockSand("sand", "minecraft:block/sand", 250).withSound(BlockSounds.SAND).withHardness(0.5F)
             .withTags(BlockTags.MINEABLE_BY_SHOVEL, BlockTags.GROWS_SUGAR_CANE, BlockTags.GROWS_CACTI, BlockTags.CAVES_CUT_THROUGH, BlockTags.FIREFLIES_CAN_SPAWN);
-        GRAVEL = new GravelBlock("gravel", "minecraft:block/gravel", 251).withSound(BlockSounds.GRAVEL).withHardness(0.6F)
+        GRAVEL = new BlockGravel("gravel", "minecraft:block/gravel", 251).withSound(BlockSounds.GRAVEL).withHardness(0.6F)
             .withTags(BlockTags.MINEABLE_BY_SHOVEL);
 
-        BEDROCK = new BedrockBlock("bedrock", "minecraft:block/bedrock", 260, Material.stone).withSound(BlockSounds.STONE).withSetUnbreakable().withBlastResistance(6000000F).withImmovableFlagSet()
+        BEDROCK = new BlockBedrock("bedrock", "minecraft:block/bedrock", 260, Material.stone).withSound(BlockSounds.STONE).withSetUnbreakable().withBlastResistance(6000000F).withImmovableFlagSet()
             .withTags(BlockTags.PISTON_CRUSHING);
-        BONESHALE = new BoneShaleBlock("boneshale", "minecraft:block/boneshale", 261, Material.stone).withSound(BlockSounds.STONE).withHardness(16F).withBlastResistance(6000000F).withImmovableFlagSet()
+        BONESHALE = new BlockBoneShale("boneshale", "minecraft:block/boneshale", 261, Material.stone).withSound(BlockSounds.STONE).withHardness(16F).withBlastResistance(6000000F).withImmovableFlagSet()
             .withTags(BlockTags.MINEABLE_BY_PICKAXE, BlockTags.NETHER_MOBS_SPAWN);
 
-        FLUID_WATER_FLOWING = new FlowingFluidBlock("fluid.water.flowing", "minecraft:block/fluid_water_flowing", 270, Material.water).withHardness(100F).withLightBlock(3).withDisabledNeighborNotifyOnMetadataChange().withDisabledStats()
+        FLUID_WATER_FLOWING = new BlockFluidFlowing("fluid.water.flowing", "minecraft:block/fluid_water_flowing", 270, Material.water).withHardness(100F).withLightBlock(3).withDisabledNeighborNotifyOnMetadataChange().withDisabledStats()
             .withTags(BlockTags.IS_WATER, BlockTags.PLACE_OVERWRITES, BlockTags.NOT_IN_CREATIVE_MENU);
-        FLUID_WATER_STILL = new StillFluidBlock("fluid.water.still", "minecraft:block/fluid_water_still", 271, Material.water).withHardness(100F).withLightBlock(3).withDisabledNeighborNotifyOnMetadataChange().withDisabledStats().setStatParent(() -> FLUID_WATER_FLOWING)
+        FLUID_WATER_STILL = new BlockFluidStill("fluid.water.still", "minecraft:block/fluid_water_still", 271, Material.water).withHardness(100F).withLightBlock(3).withDisabledNeighborNotifyOnMetadataChange().withDisabledStats().setStatParent(() -> FLUID_WATER_FLOWING)
             .withTags(BlockTags.IS_WATER, BlockTags.PLACE_OVERWRITES, BlockTags.NOT_IN_CREATIVE_MENU);
-        FLUID_LAVA_FLOWING = new FlowingFluidBlock("fluid.lava.flowing", "minecraft:block/fluid_lava_flowing", 272, Material.lava).withHardness(0.0F).withLightEmission(1.0F).withLightBlock(255).withDisabledNeighborNotifyOnMetadataChange().withDisabledStats()
+        FLUID_LAVA_FLOWING = new BlockFluidFlowing("fluid.lava.flowing", "minecraft:block/fluid_lava_flowing", 272, Material.lava).withHardness(0.0F).withLightEmission(1.0F).withLightBlock(255).withDisabledNeighborNotifyOnMetadataChange().withDisabledStats()
             .withTags(BlockTags.IS_LAVA, BlockTags.PLACE_OVERWRITES, BlockTags.NOT_IN_CREATIVE_MENU);
-        FLUID_LAVA_STILL = new StillFluidBlock("fluid.lava.still", "minecraft:block/fluid_lava_still", 273, Material.lava).withHardness(100F).withLightEmission(1.0F).withLightBlock(255).withDisabledNeighborNotifyOnMetadataChange().withDisabledStats().setStatParent(() -> FLUID_LAVA_FLOWING)
+        FLUID_LAVA_STILL = new BlockFluidStill("fluid.lava.still", "minecraft:block/fluid_lava_still", 273, Material.lava).withHardness(100F).withLightEmission(1.0F).withLightBlock(255).withDisabledNeighborNotifyOnMetadataChange().withDisabledStats().setStatParent(() -> FLUID_LAVA_FLOWING)
             .withTags(BlockTags.IS_LAVA, BlockTags.PLACE_OVERWRITES, BlockTags.NOT_IN_CREATIVE_MENU);
 
-        LOG_OAK = new LogBlock("log.oak", "minecraft:block/log_oak", 280).withSound(BlockSounds.WOOD).withHardness(2.0F).withDisabledNeighborNotifyOnMetadataChange()
+        LOG_OAK = new BlockLog("log.oak", "minecraft:block/log_oak", 280).withSound(BlockSounds.WOOD).withHardness(2.0F).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.FENCES_CONNECT, BlockTags.MINEABLE_BY_AXE);
-        LOG_PINE = new LogBlock("log.pine", "minecraft:block/log_pine", 281).withSound(BlockSounds.WOOD).withHardness(2.0F).withDisabledNeighborNotifyOnMetadataChange()
+        LOG_PINE = new BlockLog("log.pine", "minecraft:block/log_pine", 281).withSound(BlockSounds.WOOD).withHardness(2.0F).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.FENCES_CONNECT, BlockTags.MINEABLE_BY_AXE);
-        LOG_BIRCH = new LogBlock("log.birch", "minecraft:block/log_birch", 282).withSound(BlockSounds.WOOD).withHardness(2.0F).withDisabledNeighborNotifyOnMetadataChange()
+        LOG_BIRCH = new BlockLog("log.birch", "minecraft:block/log_birch", 282).withSound(BlockSounds.WOOD).withHardness(2.0F).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.FENCES_CONNECT, BlockTags.MINEABLE_BY_AXE);
-        LOG_CHERRY = new LogBlock("log.cherry", "minecraft:block/log_cherry", 283).withSound(BlockSounds.WOOD).withHardness(2.0F).withDisabledNeighborNotifyOnMetadataChange()
+        LOG_CHERRY = new BlockLog("log.cherry", "minecraft:block/log_cherry", 283).withSound(BlockSounds.WOOD).withHardness(2.0F).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.FENCES_CONNECT, BlockTags.MINEABLE_BY_AXE);
-        LOG_EUCALYPTUS = new LogBlock("log.eucalyptus", "minecraft:block/log_eucalyptus", 284).withSound(BlockSounds.WOOD).withHardness(2.0F).withDisabledNeighborNotifyOnMetadataChange()
+        LOG_EUCALYPTUS = new BlockLog("log.eucalyptus", "minecraft:block/log_eucalyptus", 284).withSound(BlockSounds.WOOD).withHardness(2.0F).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.FENCES_CONNECT, BlockTags.MINEABLE_BY_AXE);
-        LOG_OAK_MOSSY = new LogBlock("log.oak.mossy", "minecraft:block/log_oak_mossy", 285).withSound(BlockSounds.WOOD).withHardness(2.0F).withDisabledNeighborNotifyOnMetadataChange()
+        LOG_OAK_MOSSY = new BlockLog("log.oak.mossy", "minecraft:block/log_oak_mossy", 285).withSound(BlockSounds.WOOD).withHardness(2.0F).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.FENCES_CONNECT, BlockTags.MINEABLE_BY_AXE);
-        LOG_THORN = new LogBlock("log.thorn", "minecraft:block/log_thorn", 286).withSound(BlockSounds.WOOD).withHardness(2.0F).withDisabledNeighborNotifyOnMetadataChange()
+        LOG_THORN = new BlockLog("log.thorn", "minecraft:block/log_thorn", 286).withSound(BlockSounds.WOOD).withHardness(2.0F).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.FENCES_CONNECT, BlockTags.MINEABLE_BY_AXE);
-        LOG_PALM = new LogBlock("log.palm", "minecraft:block/log_palm", 287).withSound(BlockSounds.WOOD).withHardness(2.0F).withDisabledNeighborNotifyOnMetadataChange()
+        LOG_PALM = new BlockLog("log.palm", "minecraft:block/log_palm", 287).withSound(BlockSounds.WOOD).withHardness(2.0F).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.FENCES_CONNECT, BlockTags.MINEABLE_BY_AXE);
 
-        LEAVES_OAK = new OakLeavesBlock("leaves.oak", "minecraft:block/leaves_oak", 290).withSound(BlockSounds.GRASS).withHardness(0.2F).withLightBlock(1).withDisabledNeighborNotifyOnMetadataChange()
+        LEAVES_OAK = new BlockLeavesOak("leaves.oak", "minecraft:block/leaves_oak", 290).withSound(BlockSounds.GRASS).withHardness(0.2F).withLightBlock(1).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.SHEARS_DO_SILK_TOUCH, BlockTags.MINEABLE_BY_AXE, BlockTags.MINEABLE_BY_HOE, BlockTags.MINEABLE_BY_SWORD, BlockTags.MINEABLE_BY_SHEARS);
-        LEAVES_OAK_RETRO = new RetroLeavesBlock("leaves.oak.retro", "minecraft:block/leaves_oak_retro", 291).withSound(BlockSounds.GRASS).withHardness(0.2F).withLightBlock(1).withDisabledNeighborNotifyOnMetadataChange()
+        LEAVES_OAK_RETRO = new BlockLeavesRetro("leaves.oak.retro", "minecraft:block/leaves_oak_retro", 291).withSound(BlockSounds.GRASS).withHardness(0.2F).withLightBlock(1).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.SHEARS_DO_SILK_TOUCH, BlockTags.MINEABLE_BY_AXE, BlockTags.MINEABLE_BY_HOE, BlockTags.MINEABLE_BY_SWORD, BlockTags.MINEABLE_BY_SHEARS);
-        LEAVES_PINE = new PineLeavesBlock("leaves.pine", "minecraft:block/leaves_pine", 292).withSound(BlockSounds.GRASS).withHardness(0.2F).withLightBlock(1).withDisabledNeighborNotifyOnMetadataChange().withOverrideColor(MaterialColor.pineLeaves)
+        LEAVES_PINE = new BlockLeavesPine("leaves.pine", "minecraft:block/leaves_pine", 292).withSound(BlockSounds.GRASS).withHardness(0.2F).withLightBlock(1).withDisabledNeighborNotifyOnMetadataChange().withOverrideColor(MaterialColor.pineLeaves)
             .withTags(BlockTags.SHEARS_DO_SILK_TOUCH, BlockTags.MINEABLE_BY_AXE, BlockTags.MINEABLE_BY_HOE, BlockTags.MINEABLE_BY_SWORD, BlockTags.MINEABLE_BY_SHEARS);
-        LEAVES_BIRCH = new BirchLeavesBlock("leaves.birch", "minecraft:block/leaves_birch", 293).withSound(BlockSounds.GRASS).withHardness(0.2F).withLightBlock(1).withDisabledNeighborNotifyOnMetadataChange().withOverrideColor(MaterialColor.birchLeaves)
+        LEAVES_BIRCH = new BlockLeavesBirch("leaves.birch", "minecraft:block/leaves_birch", 293).withSound(BlockSounds.GRASS).withHardness(0.2F).withLightBlock(1).withDisabledNeighborNotifyOnMetadataChange().withOverrideColor(MaterialColor.birchLeaves)
             .withTags(BlockTags.SHEARS_DO_SILK_TOUCH, BlockTags.MINEABLE_BY_AXE, BlockTags.MINEABLE_BY_HOE, BlockTags.MINEABLE_BY_SWORD, BlockTags.MINEABLE_BY_SHEARS);
-        LEAVES_CHERRY = new CherryLeavesBlock("leaves.cherry", "minecraft:block/leaves_cherry", 294).withSound(BlockSounds.GRASS).withHardness(0.2F).withLightBlock(1).withDisabledNeighborNotifyOnMetadataChange().withOverrideColor(MaterialColor.cherryLeaves)
+        LEAVES_CHERRY = new BlockLeavesCherry("leaves.cherry", "minecraft:block/leaves_cherry", 294).withSound(BlockSounds.GRASS).withHardness(0.2F).withLightBlock(1).withDisabledNeighborNotifyOnMetadataChange().withOverrideColor(MaterialColor.cherryLeaves)
             .withTags(BlockTags.SHEARS_DO_SILK_TOUCH, BlockTags.MINEABLE_BY_AXE, BlockTags.MINEABLE_BY_HOE, BlockTags.MINEABLE_BY_SWORD, BlockTags.MINEABLE_BY_SHEARS);
-        LEAVES_EUCALYPTUS = new EucalyptusLeavesBlock("leaves.eucalyptus", "minecraft:block/leaves_eucalyptus", 295).withSound(BlockSounds.GRASS).withHardness(0.2F).withLightBlock(1).withDisabledNeighborNotifyOnMetadataChange()
+        LEAVES_EUCALYPTUS = new BlockLeavesEucalyptus("leaves.eucalyptus", "minecraft:block/leaves_eucalyptus", 295).withSound(BlockSounds.GRASS).withHardness(0.2F).withLightBlock(1).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.SHEARS_DO_SILK_TOUCH, BlockTags.MINEABLE_BY_AXE, BlockTags.MINEABLE_BY_HOE, BlockTags.MINEABLE_BY_SWORD, BlockTags.MINEABLE_BY_SHEARS);
-        LEAVES_SHRUB = new ShrubLeavesBlock("leaves.shrub", "minecraft:block/leaves_shrub", 296).withSound(BlockSounds.GRASS).withHardness(0.2F).withLightBlock(1).withDisabledNeighborNotifyOnMetadataChange()
+        LEAVES_SHRUB = new BlockLeavesShrub("leaves.shrub", "minecraft:block/leaves_shrub", 296).withSound(BlockSounds.GRASS).withHardness(0.2F).withLightBlock(1).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.SHEARS_DO_SILK_TOUCH, BlockTags.MINEABLE_BY_AXE, BlockTags.MINEABLE_BY_HOE, BlockTags.MINEABLE_BY_SWORD, BlockTags.MINEABLE_BY_SHEARS);
-        LEAVES_CHERRY_FLOWERING = new FloweringCherryLeavesBlock("leaves.cherry.flowering", "minecraft:block/leaves_cherry_flowering", 297).withSound(BlockSounds.GRASS).withHardness(0.2F).withLightBlock(1).withDisabledNeighborNotifyOnMetadataChange().withOverrideColor(MaterialColor.cherryLeaves)
+        LEAVES_CHERRY_FLOWERING = new BlockLeavesCherryFlowering("leaves.cherry.flowering", "minecraft:block/leaves_cherry_flowering", 297).withSound(BlockSounds.GRASS).withHardness(0.2F).withLightBlock(1).withDisabledNeighborNotifyOnMetadataChange().withOverrideColor(MaterialColor.cherryLeaves)
             .withTags(BlockTags.MINEABLE_BY_AXE, BlockTags.MINEABLE_BY_HOE, BlockTags.MINEABLE_BY_SWORD, BlockTags.MINEABLE_BY_SHEARS);
-        LEAVES_CACAO = new CacaoLeavesBlock("leaves.cacao", "minecraft:block/leaves_cacao", 298).withSound(BlockSounds.GRASS).withHardness(0.2F).withLightBlock(1).withDisabledNeighborNotifyOnMetadataChange()
+        LEAVES_CACAO = new BlockLeavesCacao("leaves.cacao", "minecraft:block/leaves_cacao", 298).withSound(BlockSounds.GRASS).withHardness(0.2F).withLightBlock(1).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.SHEARS_DO_SILK_TOUCH, BlockTags.MINEABLE_BY_AXE, BlockTags.MINEABLE_BY_HOE, BlockTags.MINEABLE_BY_SWORD, BlockTags.MINEABLE_BY_SHEARS);
-        LEAVES_THORN = new ThornLeavesBlock("leaves.thorn", "minecraft:block/leaves_thorn", 299).withSound(BlockSounds.GRASS).withHardness(0.2F).withLightBlock(1).withDisabledNeighborNotifyOnMetadataChange().withOverrideColor(MaterialColor.thornLeaves)
+        LEAVES_THORN = new BlockLeavesThorn("leaves.thorn", "minecraft:block/leaves_thorn", 299).withSound(BlockSounds.GRASS).withHardness(0.2F).withLightBlock(1).withDisabledNeighborNotifyOnMetadataChange().withOverrideColor(MaterialColor.thornLeaves)
             .withTags(BlockTags.MINEABLE_BY_AXE, BlockTags.MINEABLE_BY_HOE, BlockTags.MINEABLE_BY_SWORD, BlockTags.MINEABLE_BY_SHEARS);
-        LEAVES_PALM = new PalmLeavesBlock("leaves.palm", "minecraft:block/leaves_palm", 300).withSound(BlockSounds.GRASS).withHardness(0.2F).withLightBlock(1).withDisabledNeighborNotifyOnMetadataChange().withOverrideColor(MaterialColor.palmLeaves)
+        LEAVES_PALM = new BlockLeavesPalm("leaves.palm", "minecraft:block/leaves_palm", 300).withSound(BlockSounds.GRASS).withHardness(0.2F).withLightBlock(1).withDisabledNeighborNotifyOnMetadataChange().withOverrideColor(MaterialColor.palmLeaves)
             .withTags(BlockTags.MINEABLE_BY_AXE, BlockTags.MINEABLE_BY_HOE, BlockTags.MINEABLE_BY_SWORD, BlockTags.MINEABLE_BY_SHEARS);
 
 
-        SAPLING_OAK = new SaplingOakBlock("sapling.oak", "minecraft:block/sapling_oak", 310).withSound(BlockSounds.GRASS).withHardness(0.0F).withDisabledNeighborNotifyOnMetadataChange()
+        SAPLING_OAK = new BlockSaplingOak("sapling.oak", "minecraft:block/sapling_oak", 310).withSound(BlockSounds.GRASS).withHardness(0.0F).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.BROKEN_BY_FLUIDS, BlockTags.PLANTABLE_IN_JAR);
-        SAPLING_OAK_RETRO = new SaplingRetroBlock("sapling.oak.retro", "minecraft:block/sapling_oak_retro", 311).withSound(BlockSounds.GRASS).withHardness(0.0F).withDisabledNeighborNotifyOnMetadataChange()
+        SAPLING_OAK_RETRO = new BlockSaplingRetro("sapling.oak.retro", "minecraft:block/sapling_oak_retro", 311).withSound(BlockSounds.GRASS).withHardness(0.0F).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.BROKEN_BY_FLUIDS, BlockTags.PLANTABLE_IN_JAR);
-        SAPLING_PINE = new SaplingPineBlock("sapling.pine", "minecraft:block/sapling_pine", 312).withSound(BlockSounds.GRASS).withHardness(0.0F).withDisabledNeighborNotifyOnMetadataChange()
+        SAPLING_PINE = new BlockSaplingPine("sapling.pine", "minecraft:block/sapling_pine", 312).withSound(BlockSounds.GRASS).withHardness(0.0F).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.BROKEN_BY_FLUIDS, BlockTags.PLANTABLE_IN_JAR);
-        SAPLING_BIRCH = new SaplingBirchBlock("sapling.birch", "minecraft:block/sapling_birch", 313).withSound(BlockSounds.GRASS).withHardness(0.0F).withDisabledNeighborNotifyOnMetadataChange()
+        SAPLING_BIRCH = new BlockSaplingBirch("sapling.birch", "minecraft:block/sapling_birch", 313).withSound(BlockSounds.GRASS).withHardness(0.0F).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.BROKEN_BY_FLUIDS, BlockTags.PLANTABLE_IN_JAR);
-        SAPLING_CHERRY = new SaplingCherryBlock("sapling.cherry", "minecraft:block/sapling_cherry", 314).withSound(BlockSounds.GRASS).withHardness(0.0F).withDisabledNeighborNotifyOnMetadataChange()
+        SAPLING_CHERRY = new BlockSaplingCherry("sapling.cherry", "minecraft:block/sapling_cherry", 314).withSound(BlockSounds.GRASS).withHardness(0.0F).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.BROKEN_BY_FLUIDS, BlockTags.PLANTABLE_IN_JAR);
-        SAPLING_EUCALYPTUS = new SaplingEucalyptusBlock("sapling.eucalyptus", "minecraft:block/sapling_eucalyptus", 315).withSound(BlockSounds.GRASS).withHardness(0.0F).withDisabledNeighborNotifyOnMetadataChange()
+        SAPLING_EUCALYPTUS = new BlockSaplingEucalyptus("sapling.eucalyptus", "minecraft:block/sapling_eucalyptus", 315).withSound(BlockSounds.GRASS).withHardness(0.0F).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.BROKEN_BY_FLUIDS, BlockTags.PLANTABLE_IN_JAR);
-        SAPLING_SHRUB = new SaplingShrubBlock("sapling.shrub", "minecraft:block/sapling_shrub", 316).withSound(BlockSounds.GRASS).withHardness(0.0F).withDisabledNeighborNotifyOnMetadataChange()
+        SAPLING_SHRUB = new BlockSaplingShrub("sapling.shrub", "minecraft:block/sapling_shrub", 316).withSound(BlockSounds.GRASS).withHardness(0.0F).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.BROKEN_BY_FLUIDS, BlockTags.PLANTABLE_IN_JAR);
-        SAPLING_CACAO = new SaplingCacaoBlock("sapling.cacao", "minecraft:block/sapling_cacao", 317).withSound(BlockSounds.GRASS).withHardness(0.0F).withDisabledNeighborNotifyOnMetadataChange()
+        SAPLING_CACAO = new BlockSaplingCacao("sapling.cacao", "minecraft:block/sapling_cacao", 317).withSound(BlockSounds.GRASS).withHardness(0.0F).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.BROKEN_BY_FLUIDS, BlockTags.PLANTABLE_IN_JAR);
-        SAPLING_THORN = new SaplingThornBlock("sapling.thorn", "minecraft:block/sapling_thorn", 318).withSound(BlockSounds.GRASS).withHardness(0.0F).withDisabledNeighborNotifyOnMetadataChange()
+        SAPLING_THORN = new BlockSaplingThorn("sapling.thorn", "minecraft:block/sapling_thorn", 318).withSound(BlockSounds.GRASS).withHardness(0.0F).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.BROKEN_BY_FLUIDS, BlockTags.PLANTABLE_IN_JAR);
-        SAPLING_PALM = new SaplingPalmBlock("sapling.palm", "minecraft:block/sapling_palm", 319).withSound(BlockSounds.GRASS).withHardness(0.0F).withDisabledNeighborNotifyOnMetadataChange()
+        SAPLING_PALM = new BlockSaplingPalm("sapling.palm", "minecraft:block/sapling_palm", 319).withSound(BlockSounds.GRASS).withHardness(0.0F).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.BROKEN_BY_FLUIDS, BlockTags.PLANTABLE_IN_JAR);
 
-        TALLGRASS = new TallGrassBlock("tallgrass", "minecraft:block/tallgrass", 320).setKilledByWeather().withSound(BlockSounds.GRASS).withHardness(0.0F)
+        TALLGRASS = new BlockTallGrass("tallgrass", "minecraft:block/tallgrass", 320).setKilledByWeather().withSound(BlockSounds.GRASS).withHardness(0.0F)
             .withTags(BlockTags.BROKEN_BY_FLUIDS, BlockTags.PLACE_OVERWRITES, BlockTags.SHEARS_DO_SILK_TOUCH, BlockTags.SHEEPS_FAVOURITE_BLOCK);
-        TALLGRASS_FERN = new TallGrassBlock("tallgrass.fern", "minecraft:block/tallgrass_fern", 321).setKilledByWeather().withSound(BlockSounds.GRASS).withHardness(0.0F)
+        TALLGRASS_FERN = new BlockTallGrass("tallgrass.fern", "minecraft:block/tallgrass_fern", 321).setKilledByWeather().withSound(BlockSounds.GRASS).withHardness(0.0F)
             .withTags(BlockTags.BROKEN_BY_FLUIDS, BlockTags.PLACE_OVERWRITES, BlockTags.SHEARS_DO_SILK_TOUCH, BlockTags.PLANTABLE_IN_JAR, BlockTags.SHEEPS_FAVOURITE_BLOCK);
-        DEADBUSH = new DeadBushBlock("deadbush", "minecraft:block/deadbush", 322).withSound(BlockSounds.GRASS).withHardness(0.0F).withOverrideColor(MaterialColor.wood)
+        DEADBUSH = new BlockDeadBush("deadbush", "minecraft:block/deadbush", 322).withSound(BlockSounds.GRASS).withHardness(0.0F).withOverrideColor(MaterialColor.wood)
             .withTags(BlockTags.BROKEN_BY_FLUIDS, BlockTags.PLACE_OVERWRITES, BlockTags.SHEARS_DO_SILK_TOUCH, BlockTags.PLANTABLE_IN_JAR);
-        SPINIFEX = new SpinifexBlock("spinifex", "minecraft:block/spinifex", 323).withSound(BlockSounds.GRASS).withHardness(0.0F)
+        SPINIFEX = new BlockSpinifex("spinifex", "minecraft:block/spinifex", 323).withSound(BlockSounds.GRASS).withHardness(0.0F)
             .withTags(BlockTags.BROKEN_BY_FLUIDS, BlockTags.PLACE_OVERWRITES, BlockTags.SHEARS_DO_SILK_TOUCH);
-        ALGAE = new AlgaeBlock("algae", "minecraft:block/algae", 324, Material.plant).withSound(BlockSounds.GRASS).withHardness(0.0F).withLitInteriorSurface(true)
-            .setBlockItem((b) -> new AlgaeBlockItem(b))
+        ALGAE = new BlockAlgae("algae", "minecraft:block/algae", 324, Material.plant).withSound(BlockSounds.GRASS).withHardness(0.0F).withLitInteriorSurface(true)
+            .setBlockItem((b) -> new ItemBlockAlgae(b))
             .withTags(BlockTags.BROKEN_BY_FLUIDS, BlockTags.PLACE_OVERWRITES, BlockTags.SHEARS_DO_SILK_TOUCH);
 
-        FLOWER_YELLOW = new StackedFlowerBlock("flower.yellow", "minecraft:block/flower_yellow", 330).setKilledByWeather().setBonemealable().withSound(BlockSounds.GRASS).withHardness(0.0F).withOverrideColor(MaterialColor.paintedYellow)
+        FLOWER_YELLOW = new BlockFlowerStackable("flower.yellow", "minecraft:block/flower_yellow", 330).setKilledByWeather().setBonemealable().withSound(BlockSounds.GRASS).withHardness(0.0F).withOverrideColor(MaterialColor.paintedYellow)
             .withTags(BlockTags.BROKEN_BY_FLUIDS, BlockTags.PLANTABLE_IN_JAR, BlockTags.SHEEPS_FAVOURITE_BLOCK, BlockTags.SHEARS_DO_SILK_TOUCH);
-        FLOWER_RED = new StackedFlowerBlock("flower.red", "minecraft:block/flower_red", 331).setKilledByWeather().setBonemealable().withSound(BlockSounds.GRASS).withHardness(0.0F).withOverrideColor(MaterialColor.paintedRed)
+        FLOWER_RED = new BlockFlowerStackable("flower.red", "minecraft:block/flower_red", 331).setKilledByWeather().setBonemealable().withSound(BlockSounds.GRASS).withHardness(0.0F).withOverrideColor(MaterialColor.paintedRed)
             .withTags(BlockTags.BROKEN_BY_FLUIDS, BlockTags.PLANTABLE_IN_JAR, BlockTags.SHEEPS_FAVOURITE_BLOCK, BlockTags.SHEARS_DO_SILK_TOUCH);
-        FLOWER_PINK = new StackedFlowerBlock("flower.pink", "minecraft:block/flower_pink", 332).setKilledByWeather().setBonemealable().withSound(BlockSounds.GRASS).withHardness(0.0F).withOverrideColor(MaterialColor.paintedPink)
+        FLOWER_PINK = new BlockFlowerStackable("flower.pink", "minecraft:block/flower_pink", 332).setKilledByWeather().setBonemealable().withSound(BlockSounds.GRASS).withHardness(0.0F).withOverrideColor(MaterialColor.paintedPink)
             .withTags(BlockTags.BROKEN_BY_FLUIDS, BlockTags.PLANTABLE_IN_JAR, BlockTags.SHEEPS_FAVOURITE_BLOCK, BlockTags.SHEARS_DO_SILK_TOUCH);
-        FLOWER_PURPLE = new StackedFlowerBlock("flower.purple", "minecraft:block/flower_purple", 333).setKilledByWeather().setBonemealable().withSound(BlockSounds.GRASS).withHardness(0.0F).withOverrideColor(MaterialColor.paintedPurple)
+        FLOWER_PURPLE = new BlockFlowerStackable("flower.purple", "minecraft:block/flower_purple", 333).setKilledByWeather().setBonemealable().withSound(BlockSounds.GRASS).withHardness(0.0F).withOverrideColor(MaterialColor.paintedPurple)
             .withTags(BlockTags.BROKEN_BY_FLUIDS, BlockTags.PLANTABLE_IN_JAR, BlockTags.SHEEPS_FAVOURITE_BLOCK, BlockTags.SHEARS_DO_SILK_TOUCH);
-        FLOWER_LIGHT_BLUE = new StackedFlowerBlock("flower.lightblue", "minecraft:block/flower_light_blue", 334).setKilledByWeather().setBonemealable().withSound(BlockSounds.GRASS).withHardness(0.0F).withOverrideColor(MaterialColor.paintedLightblue)
+        FLOWER_LIGHT_BLUE = new BlockFlowerStackable("flower.lightblue", "minecraft:block/flower_light_blue", 334).setKilledByWeather().setBonemealable().withSound(BlockSounds.GRASS).withHardness(0.0F).withOverrideColor(MaterialColor.paintedLightblue)
             .withTags(BlockTags.BROKEN_BY_FLUIDS, BlockTags.PLANTABLE_IN_JAR, BlockTags.SHEEPS_FAVOURITE_BLOCK, BlockTags.SHEARS_DO_SILK_TOUCH);
-        FLOWER_ORANGE = new StackedFlowerBlock("flower.orange", "minecraft:block/flower_orange", 335).setKilledByWeather().setBonemealable().withSound(BlockSounds.GRASS).withHardness(0.0F).withOverrideColor(MaterialColor.paintedOrange)
+        FLOWER_ORANGE = new BlockFlowerStackable("flower.orange", "minecraft:block/flower_orange", 335).setKilledByWeather().setBonemealable().withSound(BlockSounds.GRASS).withHardness(0.0F).withOverrideColor(MaterialColor.paintedOrange)
             .withTags(BlockTags.BROKEN_BY_FLUIDS, BlockTags.PLANTABLE_IN_JAR, BlockTags.SHEEPS_FAVOURITE_BLOCK, BlockTags.SHEARS_DO_SILK_TOUCH);
 
-        MUSHROOM_BROWN = new MushroomBlock("mushroom.brown", "minecraft:block/mushroom_brown", 340).withSound(BlockSounds.GRASS).withHardness(0.0F).withLightEmission(0.125F).withOverrideColor(MaterialColor.paintedBrown)
+        MUSHROOM_BROWN = new BlockMushroom("mushroom.brown", "minecraft:block/mushroom_brown", 340).withSound(BlockSounds.GRASS).withHardness(0.0F).withLightEmission(0.125F).withOverrideColor(MaterialColor.paintedBrown)
             .withTags(BlockTags.BROKEN_BY_FLUIDS, BlockTags.PLANTABLE_IN_JAR, BlockTags.PIGS_FAVOURITE_BLOCK);
-        MUSHROOM_RED = new MushroomBlock("mushroom.red", "minecraft:block/mushroom_red", 341).withSound(BlockSounds.GRASS).withHardness(0.0F).withOverrideColor(MaterialColor.paintedRed)
+        MUSHROOM_RED = new BlockMushroom("mushroom.red", "minecraft:block/mushroom_red", 341).withSound(BlockSounds.GRASS).withHardness(0.0F).withOverrideColor(MaterialColor.paintedRed)
             .withTags(BlockTags.BROKEN_BY_FLUIDS, BlockTags.PLANTABLE_IN_JAR, BlockTags.PIGS_FAVOURITE_BLOCK);
 
 
-        ORE_COAL_STONE = new CoalOreBlock("ore.coal.stone", "minecraft:block/ore_coal_stone", 350, STONE.id, Material.stone).withSound(BlockSounds.STONE).withHardness(3F).withBlastResistance(5F)
+        ORE_COAL_STONE = new BlockOreCoal("ore.coal.stone", "minecraft:block/ore_coal_stone", 350, STONE.id, Material.stone).withSound(BlockSounds.STONE).withHardness(3F).withBlastResistance(5F)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        ORE_COAL_BASALT = new CoalOreBlock("ore.coal.basalt", "minecraft:block/ore_coal_basalt", 351, BASALT.id, Material.basalt).withSound(BlockSounds.STONE).withHardness(3F).withBlastResistance(5F)
+        ORE_COAL_BASALT = new BlockOreCoal("ore.coal.basalt", "minecraft:block/ore_coal_basalt", 351, BASALT.id, Material.basalt).withSound(BlockSounds.STONE).withHardness(3F).withBlastResistance(5F)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        ORE_COAL_LIMESTONE = new CoalOreBlock("ore.coal.limestone", "minecraft:block/ore_coal_limestone", 352, LIMESTONE.id, Material.limestone).withSound(BlockSounds.STONE).withHardness(3F).withBlastResistance(5F)
+        ORE_COAL_LIMESTONE = new BlockOreCoal("ore.coal.limestone", "minecraft:block/ore_coal_limestone", 352, LIMESTONE.id, Material.limestone).withSound(BlockSounds.STONE).withHardness(3F).withBlastResistance(5F)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        ORE_COAL_GRANITE = new CoalOreBlock("ore.coal.granite", "minecraft:block/ore_coal_granite", 353, GRANITE.id, Material.granite).withSound(BlockSounds.STONE).withHardness(3F).withBlastResistance(5F)
+        ORE_COAL_GRANITE = new BlockOreCoal("ore.coal.granite", "minecraft:block/ore_coal_granite", 353, GRANITE.id, Material.granite).withSound(BlockSounds.STONE).withHardness(3F).withBlastResistance(5F)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        ORE_COAL_PERMAFROST = new CoalOreBlock("ore.coal.permafrost", "minecraft:block/ore_coal_permafrost", 354, PERMAFROST.id, Material.permafrost).withSound(BlockSounds.PERMAFROST).withHardness(3F).withBlastResistance(5F)
+        ORE_COAL_PERMAFROST = new BlockOreCoal("ore.coal.permafrost", "minecraft:block/ore_coal_permafrost", 354, PERMAFROST.id, Material.permafrost).withSound(BlockSounds.PERMAFROST).withHardness(3F).withBlastResistance(5F)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
 
-        ORE_IRON_STONE = new IronOreBlock("ore.iron.stone", "minecraft:block/ore_iron_stone", 360, STONE.id, Material.stone).withSound(BlockSounds.STONE).withHardness(3F).withBlastResistance(5F)
+        ORE_IRON_STONE = new BlockOreIron("ore.iron.stone", "minecraft:block/ore_iron_stone", 360, STONE.id, Material.stone).withSound(BlockSounds.STONE).withHardness(3F).withBlastResistance(5F)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        ORE_IRON_BASALT = new IronOreBlock("ore.iron.basalt", "minecraft:block/ore_iron_basalt", 361, BASALT.id, Material.basalt).withSound(BlockSounds.STONE).withHardness(3F).withBlastResistance(5F)
+        ORE_IRON_BASALT = new BlockOreIron("ore.iron.basalt", "minecraft:block/ore_iron_basalt", 361, BASALT.id, Material.basalt).withSound(BlockSounds.STONE).withHardness(3F).withBlastResistance(5F)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        ORE_IRON_LIMESTONE = new IronOreBlock("ore.iron.limestone", "minecraft:block/ore_iron_limestone", 362, LIMESTONE.id, Material.limestone).withSound(BlockSounds.STONE).withHardness(3F).withBlastResistance(5F)
+        ORE_IRON_LIMESTONE = new BlockOreIron("ore.iron.limestone", "minecraft:block/ore_iron_limestone", 362, LIMESTONE.id, Material.limestone).withSound(BlockSounds.STONE).withHardness(3F).withBlastResistance(5F)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        ORE_IRON_GRANITE = new IronOreBlock("ore.iron.granite", "minecraft:block/ore_iron_granite", 363, GRANITE.id, Material.granite).withSound(BlockSounds.STONE).withHardness(3F).withBlastResistance(5F)
+        ORE_IRON_GRANITE = new BlockOreIron("ore.iron.granite", "minecraft:block/ore_iron_granite", 363, GRANITE.id, Material.granite).withSound(BlockSounds.STONE).withHardness(3F).withBlastResistance(5F)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        ORE_IRON_PERMAFROST = new IronOreBlock("ore.iron.permafrost", "minecraft:block/ore_iron_permafrost", 364, PERMAFROST.id, Material.permafrost).withSound(BlockSounds.PERMAFROST).withHardness(3F).withBlastResistance(5F)
+        ORE_IRON_PERMAFROST = new BlockOreIron("ore.iron.permafrost", "minecraft:block/ore_iron_permafrost", 364, PERMAFROST.id, Material.permafrost).withSound(BlockSounds.PERMAFROST).withHardness(3F).withBlastResistance(5F)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
 
-        ORE_GOLD_STONE = new GoldOreBlock("ore.gold.stone", "minecraft:block/ore_gold_stone", 370, STONE.id, Material.stone).withSound(BlockSounds.STONE).withHardness(3F).withBlastResistance(5F)
+        ORE_GOLD_STONE = new BlockOreGold("ore.gold.stone", "minecraft:block/ore_gold_stone", 370, STONE.id, Material.stone).withSound(BlockSounds.STONE).withHardness(3F).withBlastResistance(5F)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        ORE_GOLD_BASALT = new GoldOreBlock("ore.gold.basalt", "minecraft:block/ore_gold_basalt", 371, BASALT.id, Material.basalt).withSound(BlockSounds.STONE).withHardness(3F).withBlastResistance(5F)
+        ORE_GOLD_BASALT = new BlockOreGold("ore.gold.basalt", "minecraft:block/ore_gold_basalt", 371, BASALT.id, Material.basalt).withSound(BlockSounds.STONE).withHardness(3F).withBlastResistance(5F)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        ORE_GOLD_LIMESTONE = new GoldOreBlock("ore.gold.limestone", "minecraft:block/ore_gold_limestone", 372, LIMESTONE.id, Material.limestone).withSound(BlockSounds.STONE).withHardness(3F).withBlastResistance(5F)
+        ORE_GOLD_LIMESTONE = new BlockOreGold("ore.gold.limestone", "minecraft:block/ore_gold_limestone", 372, LIMESTONE.id, Material.limestone).withSound(BlockSounds.STONE).withHardness(3F).withBlastResistance(5F)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        ORE_GOLD_GRANITE = new GoldOreBlock("ore.gold.granite", "minecraft:block/ore_gold_granite", 373, GRANITE.id, Material.granite).withSound(BlockSounds.STONE).withHardness(3F).withBlastResistance(5F)
+        ORE_GOLD_GRANITE = new BlockOreGold("ore.gold.granite", "minecraft:block/ore_gold_granite", 373, GRANITE.id, Material.granite).withSound(BlockSounds.STONE).withHardness(3F).withBlastResistance(5F)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        ORE_GOLD_PERMAFROST = new GoldOreBlock("ore.gold.permafrost", "minecraft:block/ore_gold_permafrost",374, PERMAFROST.id, Material.permafrost).withSound(BlockSounds.PERMAFROST).withHardness(3F).withBlastResistance(5F)
+        ORE_GOLD_PERMAFROST = new BlockOreGold("ore.gold.permafrost", "minecraft:block/ore_gold_permafrost",374, PERMAFROST.id, Material.permafrost).withSound(BlockSounds.PERMAFROST).withHardness(3F).withBlastResistance(5F)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
 
-        ORE_LAPIS_STONE = new LapisOreBlock("ore.lapis.stone", "minecraft:block/ore_lapis_stone", 380, STONE.id, Material.stone).withSound(BlockSounds.STONE).withHardness(3F).withBlastResistance(5F)
+        ORE_LAPIS_STONE = new BlockOreLapis("ore.lapis.stone", "minecraft:block/ore_lapis_stone", 380, STONE.id, Material.stone).withSound(BlockSounds.STONE).withHardness(3F).withBlastResistance(5F)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        ORE_LAPIS_BASALT = new LapisOreBlock("ore.lapis.basalt", "minecraft:block/ore_lapis_basalt", 381, BASALT.id, Material.basalt).withSound(BlockSounds.STONE).withHardness(3F).withBlastResistance(5F)
+        ORE_LAPIS_BASALT = new BlockOreLapis("ore.lapis.basalt", "minecraft:block/ore_lapis_basalt", 381, BASALT.id, Material.basalt).withSound(BlockSounds.STONE).withHardness(3F).withBlastResistance(5F)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        ORE_LAPIS_LIMESTONE = new LapisOreBlock("ore.lapis.limestone", "minecraft:block/ore_lapis_limestone", 382, LIMESTONE.id, Material.limestone).withSound(BlockSounds.STONE).withHardness(3F).withBlastResistance(5F)
+        ORE_LAPIS_LIMESTONE = new BlockOreLapis("ore.lapis.limestone", "minecraft:block/ore_lapis_limestone", 382, LIMESTONE.id, Material.limestone).withSound(BlockSounds.STONE).withHardness(3F).withBlastResistance(5F)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        ORE_LAPIS_GRANITE = new LapisOreBlock("ore.lapis.granite", "minecraft:block/ore_lapis_granite", 383, GRANITE.id, Material.granite).withSound(BlockSounds.STONE).withHardness(3F).withBlastResistance(5F)
+        ORE_LAPIS_GRANITE = new BlockOreLapis("ore.lapis.granite", "minecraft:block/ore_lapis_granite", 383, GRANITE.id, Material.granite).withSound(BlockSounds.STONE).withHardness(3F).withBlastResistance(5F)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        ORE_LAPIS_PERMAFROST = new LapisOreBlock("ore.lapis.permafrost", "minecraft:block/ore_lapis_permafrost", 384, PERMAFROST.id, Material.permafrost).withSound(BlockSounds.PERMAFROST).withHardness(3F).withBlastResistance(5F)
+        ORE_LAPIS_PERMAFROST = new BlockOreLapis("ore.lapis.permafrost", "minecraft:block/ore_lapis_permafrost", 384, PERMAFROST.id, Material.permafrost).withSound(BlockSounds.PERMAFROST).withHardness(3F).withBlastResistance(5F)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
 
-        ORE_REDSTONE_STONE = new RedstoneOreBlock("ore.redstone.stone", "minecraft:block/ore_redstone_stone", 390, STONE.id, Material.stone, false, () -> ORE_REDSTONE_STONE, () -> ORE_REDSTONE_GLOWING_STONE).withSound(BlockSounds.STONE).withHardness(3F).withBlastResistance(2F).withDisabledNeighborNotifyOnMetadataChange()
+        ORE_REDSTONE_STONE = new BlockOreRedstone("ore.redstone.stone", "minecraft:block/ore_redstone_stone", 390, STONE.id, Material.stone, false, () -> ORE_REDSTONE_STONE, () -> ORE_REDSTONE_GLOWING_STONE).withSound(BlockSounds.STONE).withHardness(3F).withBlastResistance(2F).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        ORE_REDSTONE_BASALT = new RedstoneOreBlock("ore.redstone.basalt", "minecraft:block/ore_redstone_basalt", 391, BASALT.id, Material.basalt, false, () -> ORE_REDSTONE_BASALT, () -> ORE_REDSTONE_GLOWING_BASALT).withSound(BlockSounds.STONE).withHardness(3F).withBlastResistance(2F).withDisabledNeighborNotifyOnMetadataChange()
+        ORE_REDSTONE_BASALT = new BlockOreRedstone("ore.redstone.basalt", "minecraft:block/ore_redstone_basalt", 391, BASALT.id, Material.basalt, false, () -> ORE_REDSTONE_BASALT, () -> ORE_REDSTONE_GLOWING_BASALT).withSound(BlockSounds.STONE).withHardness(3F).withBlastResistance(2F).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        ORE_REDSTONE_LIMESTONE = new RedstoneOreBlock("ore.redstone.limestone", "minecraft:block/ore_redstone_limestone", 392, LIMESTONE.id, Material.limestone, false, () -> ORE_REDSTONE_LIMESTONE, () -> ORE_REDSTONE_GLOWING_LIMESTONE).withSound(BlockSounds.STONE).withHardness(3F).withBlastResistance(2F).withDisabledNeighborNotifyOnMetadataChange()
+        ORE_REDSTONE_LIMESTONE = new BlockOreRedstone("ore.redstone.limestone", "minecraft:block/ore_redstone_limestone", 392, LIMESTONE.id, Material.limestone, false, () -> ORE_REDSTONE_LIMESTONE, () -> ORE_REDSTONE_GLOWING_LIMESTONE).withSound(BlockSounds.STONE).withHardness(3F).withBlastResistance(2F).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        ORE_REDSTONE_GRANITE = new RedstoneOreBlock("ore.redstone.granite", "minecraft:block/ore_redstone_granite", 393, GRANITE.id, Material.granite, false, () -> ORE_REDSTONE_GRANITE, () -> ORE_REDSTONE_GLOWING_GRANITE).withSound(BlockSounds.STONE).withHardness(3F).withBlastResistance(2F).withDisabledNeighborNotifyOnMetadataChange()
+        ORE_REDSTONE_GRANITE = new BlockOreRedstone("ore.redstone.granite", "minecraft:block/ore_redstone_granite", 393, GRANITE.id, Material.granite, false, () -> ORE_REDSTONE_GRANITE, () -> ORE_REDSTONE_GLOWING_GRANITE).withSound(BlockSounds.STONE).withHardness(3F).withBlastResistance(2F).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        ORE_REDSTONE_PERMAFROST = new RedstoneOreBlock("ore.redstone.permafrost", "minecraft:block/ore_redstone_permafrost", 394, PERMAFROST.id, Material.permafrost, false, () -> ORE_REDSTONE_PERMAFROST, () -> ORE_REDSTONE_GLOWING_PERMAFROST).withSound(BlockSounds.PERMAFROST).withHardness(3F).withBlastResistance(2F).withDisabledNeighborNotifyOnMetadataChange()
+        ORE_REDSTONE_PERMAFROST = new BlockOreRedstone("ore.redstone.permafrost", "minecraft:block/ore_redstone_permafrost", 394, PERMAFROST.id, Material.permafrost, false, () -> ORE_REDSTONE_PERMAFROST, () -> ORE_REDSTONE_GLOWING_PERMAFROST).withSound(BlockSounds.PERMAFROST).withHardness(3F).withBlastResistance(2F).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
 
-        ORE_REDSTONE_GLOWING_STONE = new RedstoneOreBlock("ore.redstone.glowing.stone", "minecraft:block/ore_redstone_glowing_stone", 400, -1, Material.stone, true, () -> ORE_REDSTONE_STONE, () -> ORE_REDSTONE_GLOWING_STONE).withSound(BlockSounds.STONE).withLightEmission(0.2F).withHardness(3F).withBlastResistance(5F).withDisabledNeighborNotifyOnMetadataChange().setStatParent(() -> ORE_REDSTONE_STONE)
+        ORE_REDSTONE_GLOWING_STONE = new BlockOreRedstone("ore.redstone.glowing.stone", "minecraft:block/ore_redstone_glowing_stone", 400, -1, Material.stone, true, () -> ORE_REDSTONE_STONE, () -> ORE_REDSTONE_GLOWING_STONE).withSound(BlockSounds.STONE).withLightEmission(0.2F).withHardness(3F).withBlastResistance(5F).withDisabledNeighborNotifyOnMetadataChange().setStatParent(() -> ORE_REDSTONE_STONE)
             .withTags(BlockTags.NOT_IN_CREATIVE_MENU, BlockTags.MINEABLE_BY_PICKAXE);
-        ORE_REDSTONE_GLOWING_BASALT = new RedstoneOreBlock("ore.redstone.glowing.basalt", "minecraft:block/ore_redstone_glowing_basalt", 401, -1, Material.basalt, true, () -> ORE_REDSTONE_BASALT, () -> ORE_REDSTONE_GLOWING_BASALT).withSound(BlockSounds.STONE).withLightEmission(0.2F).withHardness(3F).withBlastResistance(5F).withDisabledNeighborNotifyOnMetadataChange().setStatParent(() -> ORE_REDSTONE_BASALT)
+        ORE_REDSTONE_GLOWING_BASALT = new BlockOreRedstone("ore.redstone.glowing.basalt", "minecraft:block/ore_redstone_glowing_basalt", 401, -1, Material.basalt, true, () -> ORE_REDSTONE_BASALT, () -> ORE_REDSTONE_GLOWING_BASALT).withSound(BlockSounds.STONE).withLightEmission(0.2F).withHardness(3F).withBlastResistance(5F).withDisabledNeighborNotifyOnMetadataChange().setStatParent(() -> ORE_REDSTONE_BASALT)
             .withTags(BlockTags.NOT_IN_CREATIVE_MENU, BlockTags.MINEABLE_BY_PICKAXE);
-        ORE_REDSTONE_GLOWING_LIMESTONE = new RedstoneOreBlock("ore.redstone.glowing.limestone", "minecraft:block/ore_redstone_glowing_limestone", 402, -1, Material.limestone, true, () -> ORE_REDSTONE_LIMESTONE, () -> ORE_REDSTONE_GLOWING_LIMESTONE).withSound(BlockSounds.STONE).withLightEmission(0.2F).withHardness(3F).withBlastResistance(5F).withDisabledNeighborNotifyOnMetadataChange().setStatParent(() -> ORE_REDSTONE_LIMESTONE)
+        ORE_REDSTONE_GLOWING_LIMESTONE = new BlockOreRedstone("ore.redstone.glowing.limestone", "minecraft:block/ore_redstone_glowing_limestone", 402, -1, Material.limestone, true, () -> ORE_REDSTONE_LIMESTONE, () -> ORE_REDSTONE_GLOWING_LIMESTONE).withSound(BlockSounds.STONE).withLightEmission(0.2F).withHardness(3F).withBlastResistance(5F).withDisabledNeighborNotifyOnMetadataChange().setStatParent(() -> ORE_REDSTONE_LIMESTONE)
             .withTags(BlockTags.NOT_IN_CREATIVE_MENU, BlockTags.MINEABLE_BY_PICKAXE);
-        ORE_REDSTONE_GLOWING_GRANITE = new RedstoneOreBlock("ore.redstone.glowing.granite", "minecraft:block/ore_redstone_glowing_granite", 403, -1, Material.granite, true, () -> ORE_REDSTONE_GRANITE, () -> ORE_REDSTONE_GLOWING_GRANITE).withSound(BlockSounds.STONE).withLightEmission(0.2F).withHardness(3F).withBlastResistance(5F).withDisabledNeighborNotifyOnMetadataChange().setStatParent(() -> ORE_REDSTONE_GRANITE)
+        ORE_REDSTONE_GLOWING_GRANITE = new BlockOreRedstone("ore.redstone.glowing.granite", "minecraft:block/ore_redstone_glowing_granite", 403, -1, Material.granite, true, () -> ORE_REDSTONE_GRANITE, () -> ORE_REDSTONE_GLOWING_GRANITE).withSound(BlockSounds.STONE).withLightEmission(0.2F).withHardness(3F).withBlastResistance(5F).withDisabledNeighborNotifyOnMetadataChange().setStatParent(() -> ORE_REDSTONE_GRANITE)
             .withTags(BlockTags.NOT_IN_CREATIVE_MENU, BlockTags.MINEABLE_BY_PICKAXE);
-        ORE_REDSTONE_GLOWING_PERMAFROST = new RedstoneOreBlock("ore.redstone.glowing.permafrost", "minecraft:block/ore_redstone_glowing_permafrost", 404, -1, Material.permafrost, true, () -> ORE_REDSTONE_PERMAFROST, () -> ORE_REDSTONE_GLOWING_PERMAFROST).withSound(BlockSounds.PERMAFROST).withLightEmission(0.2F).withHardness(3F).withBlastResistance(5F).withDisabledNeighborNotifyOnMetadataChange().setStatParent(() -> ORE_REDSTONE_PERMAFROST)
+        ORE_REDSTONE_GLOWING_PERMAFROST = new BlockOreRedstone("ore.redstone.glowing.permafrost", "minecraft:block/ore_redstone_glowing_permafrost", 404, -1, Material.permafrost, true, () -> ORE_REDSTONE_PERMAFROST, () -> ORE_REDSTONE_GLOWING_PERMAFROST).withSound(BlockSounds.PERMAFROST).withLightEmission(0.2F).withHardness(3F).withBlastResistance(5F).withDisabledNeighborNotifyOnMetadataChange().setStatParent(() -> ORE_REDSTONE_PERMAFROST)
             .withTags(BlockTags.NOT_IN_CREATIVE_MENU, BlockTags.MINEABLE_BY_PICKAXE);
 
-        ORE_DIAMOND_STONE = new DiamondOreBlock("ore.diamond.stone", "minecraft:block/ore_diamond_stone", 410, STONE.id, Material.stone).withSound(BlockSounds.STONE).withHardness(3F).withBlastResistance(5F)
+        ORE_DIAMOND_STONE = new BlockOreDiamond("ore.diamond.stone", "minecraft:block/ore_diamond_stone", 410, STONE.id, Material.stone).withSound(BlockSounds.STONE).withHardness(3F).withBlastResistance(5F)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        ORE_DIAMOND_BASALT = new DiamondOreBlock("ore.diamond.basalt", "minecraft:block/ore_diamond_basalt", 411, BASALT.id, Material.basalt).withSound(BlockSounds.STONE).withHardness(3F).withBlastResistance(5F)
+        ORE_DIAMOND_BASALT = new BlockOreDiamond("ore.diamond.basalt", "minecraft:block/ore_diamond_basalt", 411, BASALT.id, Material.basalt).withSound(BlockSounds.STONE).withHardness(3F).withBlastResistance(5F)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        ORE_DIAMOND_LIMESTONE = new DiamondOreBlock("ore.diamond.limestone", "minecraft:block/ore_diamond_limestone", 412, LIMESTONE.id, Material.limestone).withSound(BlockSounds.STONE).withHardness(3F).withBlastResistance(5F)
+        ORE_DIAMOND_LIMESTONE = new BlockOreDiamond("ore.diamond.limestone", "minecraft:block/ore_diamond_limestone", 412, LIMESTONE.id, Material.limestone).withSound(BlockSounds.STONE).withHardness(3F).withBlastResistance(5F)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        ORE_DIAMOND_GRANITE = new DiamondOreBlock("ore.diamond.granite", "minecraft:block/ore_diamond_granite", 413, GRANITE.id, Material.granite).withSound(BlockSounds.STONE).withHardness(3F).withBlastResistance(5F)
+        ORE_DIAMOND_GRANITE = new BlockOreDiamond("ore.diamond.granite", "minecraft:block/ore_diamond_granite", 413, GRANITE.id, Material.granite).withSound(BlockSounds.STONE).withHardness(3F).withBlastResistance(5F)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        ORE_DIAMOND_PERMAFROST = new DiamondOreBlock("ore.diamond.permafrost", "minecraft:block/ore_diamond_permafrost", 414, PERMAFROST.id, Material.permafrost).withSound(BlockSounds.PERMAFROST).withHardness(3F).withBlastResistance(5F)
+        ORE_DIAMOND_PERMAFROST = new BlockOreDiamond("ore.diamond.permafrost", "minecraft:block/ore_diamond_permafrost", 414, PERMAFROST.id, Material.permafrost).withSound(BlockSounds.PERMAFROST).withHardness(3F).withBlastResistance(5F)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
 
-        ORE_NETHERCOAL_NETHERRACK = new NetherCoalOreBlock("ore.nethercoal.netherrack", "minecraft:block/ore_nethercoal_netherrack", 420).withSound(BlockSounds.STONE).withHardness(3F).withBlastResistance(5F).withLightEmission(0.625F)
+        ORE_NETHERCOAL_NETHERRACK = new BlockOreNetherCoal("ore.nethercoal.netherrack", "minecraft:block/ore_nethercoal_netherrack", 420).withSound(BlockSounds.STONE).withHardness(3F).withBlastResistance(5F).withLightEmission(0.625F)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE, BlockTags.NETHER_MOBS_SPAWN);
 
         BLOCK_COAL = new Block("block.coal", "minecraft:block/block_coal", 430, Material.stone).withSound(BlockSounds.STONE).withHardness(3F).withBlastResistance(10F).withOverrideColor(MaterialColor.coal)
@@ -927,7 +927,7 @@ public final class Blocks {
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
         BLOCK_LAPIS = new Block("block.lapis", "minecraft:block/block_lapis", 433, Material.stone).withSound(BlockSounds.STONE).withHardness(3F).withBlastResistance(5F).withOverrideColor(MaterialColor.lapis)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        BLOCK_REDSTONE = new RedstoneBlock("block.redstone", "minecraft:block/block_redstone", 434, Material.stone).withSound(BlockSounds.STONE).withHardness(5F).withBlastResistance(10F).withOverrideColor(MaterialColor.redstone)
+        BLOCK_REDSTONE = new BlockRedstone("block.redstone", "minecraft:block/block_redstone", 434, Material.stone).withSound(BlockSounds.STONE).withHardness(5F).withBlastResistance(10F).withOverrideColor(MaterialColor.redstone)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
         BLOCK_DIAMOND = new Block("block.diamond", "minecraft:block/block_diamond", 435, Material.stone).withSound(BlockSounds.STONE).withHardness(5F).withBlastResistance(10F).withOverrideColor(MaterialColor.diamond)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
@@ -942,292 +942,292 @@ public final class Blocks {
         BLOCK_CHARCOAL = new Block("block.charcoal", "minecraft:block/block_charcoal", 440, Material.stone).withSound(BlockSounds.STONE).withHardness(3F).withBlastResistance(10F).withOverrideColor(MaterialColor.coal)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
 
-        WIRE_REDSTONE = new RedstoneWireBlock("wire.redstone", "minecraft:block/wire_redstone", 450).withSound(BlockSounds.STONE).withHardness(0.0F).withDisabledNeighborNotifyOnMetadataChange().withOverrideColor(MaterialColor.redstone).setStatParent(() -> Items.DUST_REDSTONE)
+        WIRE_REDSTONE = new BlockWireRedstone("wire.redstone", "minecraft:block/wire_redstone", 450).withSound(BlockSounds.STONE).withHardness(0.0F).withDisabledNeighborNotifyOnMetadataChange().withOverrideColor(MaterialColor.redstone).setStatParent(() -> Items.DUST_REDSTONE)
             .withTags(BlockTags.BROKEN_BY_FLUIDS, BlockTags.NOT_IN_CREATIVE_MENU, BlockTags.PREVENT_MOB_SPAWNS);
 
-        TORCH_REDSTONE_IDLE = new RedstoneTorchBlock("torch.redstone.idle", "minecraft:block/torch_redstone_idle", 460, false).withSound(BlockSounds.WOOD).withHardness(0.0F).withDisabledNeighborNotifyOnMetadataChange().withOverrideColor(MaterialColor.redstone).setStatParent(() -> TORCH_REDSTONE_ACTIVE)
+        TORCH_REDSTONE_IDLE = new BlockTorchRedstone("torch.redstone.idle", "minecraft:block/torch_redstone_idle", 460, false).withSound(BlockSounds.WOOD).withHardness(0.0F).withDisabledNeighborNotifyOnMetadataChange().withOverrideColor(MaterialColor.redstone).setStatParent(() -> TORCH_REDSTONE_ACTIVE)
             .withTags(BlockTags.BROKEN_BY_FLUIDS, BlockTags.NOT_IN_CREATIVE_MENU, BlockTags.PREVENT_MOB_SPAWNS);
-        TORCH_REDSTONE_ACTIVE = new RedstoneTorchBlock("torch.redstone.active", "minecraft:block/torch_redstone_active", 461, true).withSound(BlockSounds.WOOD).withHardness(0.0F).withLightEmission(0.5F).withDisabledNeighborNotifyOnMetadataChange().withOverrideColor(MaterialColor.redstone)
+        TORCH_REDSTONE_ACTIVE = new BlockTorchRedstone("torch.redstone.active", "minecraft:block/torch_redstone_active", 461, true).withSound(BlockSounds.WOOD).withHardness(0.0F).withLightEmission(0.5F).withDisabledNeighborNotifyOnMetadataChange().withOverrideColor(MaterialColor.redstone)
             .withTags(BlockTags.BROKEN_BY_FLUIDS, BlockTags.PREVENT_MOB_SPAWNS);
 
-        BUTTON_STONE = new ButtonBlock("button.stone", "minecraft:block/button_stone", 470).withSound(BlockSounds.STONE).withHardness(0.5F).withDisabledNeighborNotifyOnMetadataChange()
+        BUTTON_STONE = new BlockButton("button.stone", "minecraft:block/button_stone", 470).withSound(BlockSounds.STONE).withHardness(0.5F).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.BROKEN_BY_FLUIDS, BlockTags.MINEABLE_BY_PICKAXE, BlockTags.PREVENT_MOB_SPAWNS);
 
-        LEVER_COBBLE_STONE = new LeverBlock("lever.cobble.stone", "minecraft:block/lever_cobble_stone", 480).withSound(BlockSounds.STONE).withHardness(0.5F).withDisabledNeighborNotifyOnMetadataChange()
+        LEVER_COBBLE_STONE = new BlockLever("lever.cobble.stone", "minecraft:block/lever_cobble_stone", 480).withSound(BlockSounds.STONE).withHardness(0.5F).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.BROKEN_BY_FLUIDS, BlockTags.MINEABLE_BY_PICKAXE, BlockTags.PREVENT_MOB_SPAWNS);
 
-        PRESSURE_PLATE_STONE = new PressurePlateBlock("pressureplate.stone", "minecraft:block/pressure_plate_stone", 490, Mob.class, Material.stone).withSound(BlockSounds.STONE).withHardness(0.5F).withDisabledNeighborNotifyOnMetadataChange()
+        PRESSURE_PLATE_STONE = new BlockPressurePlate("pressureplate.stone", "minecraft:block/pressure_plate_stone", 490, Mob.class, Material.stone).withSound(BlockSounds.STONE).withHardness(0.5F).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.MINEABLE_BY_PICKAXE, BlockTags.PREVENT_MOB_SPAWNS);
-        PRESSURE_PLATE_PLANKS_OAK = new PressurePlateBlock("pressureplate.planks.oak", "minecraft:block/pressure_plate_planks_oak", 491, Entity.class, Material.wood).withSound(BlockSounds.WOOD).withHardness(0.5F).withDisabledNeighborNotifyOnMetadataChange()
+        PRESSURE_PLATE_PLANKS_OAK = new BlockPressurePlate("pressureplate.planks.oak", "minecraft:block/pressure_plate_planks_oak", 491, Entity.class, Material.wood).withSound(BlockSounds.WOOD).withHardness(0.5F).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.MINEABLE_BY_AXE, BlockTags.PREVENT_MOB_SPAWNS);
-        PRESSURE_PLATE_COBBLE_STONE = new PressurePlateBlock("pressureplate.cobble.stone", "minecraft:block/pressure_plate_cobble_stone", 492, Player.class, Material.stone).withSound(BlockSounds.STONE).withHardness(0.5F).withDisabledNeighborNotifyOnMetadataChange()
+        PRESSURE_PLATE_COBBLE_STONE = new BlockPressurePlate("pressureplate.cobble.stone", "minecraft:block/pressure_plate_cobble_stone", 492, Player.class, Material.stone).withSound(BlockSounds.STONE).withHardness(0.5F).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.MINEABLE_BY_PICKAXE, BlockTags.PREVENT_MOB_SPAWNS);
 
-        MOTION_SENSOR_IDLE = new MotionSensorBlock("motionsensor.idle", "minecraft:block/motion_sensor_idle", 500, false).withSound(BlockSounds.STONE).withHardness(2.0F).withBlastResistance(10F).withDisabledNeighborNotifyOnMetadataChange().withOverrideColor(MaterialColor.stone)
+        MOTION_SENSOR_IDLE = new BlockMotionSensor("motionsensor.idle", "minecraft:block/motion_sensor_idle", 500, false).withSound(BlockSounds.STONE).withHardness(2.0F).withBlastResistance(10F).withDisabledNeighborNotifyOnMetadataChange().withOverrideColor(MaterialColor.stone)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        MOTION_SENSOR_ACTIVE = new MotionSensorBlock("motionsensor.active", "minecraft:block/motion_sensor_active", 501, true).withSound(BlockSounds.STONE).withLightEmission(0.3F).withHardness(2.0F).withBlastResistance(10F).withOverrideColor(MaterialColor.stone).setStatParent(() -> MOTION_SENSOR_IDLE)
+        MOTION_SENSOR_ACTIVE = new BlockMotionSensor("motionsensor.active", "minecraft:block/motion_sensor_active", 501, true).withSound(BlockSounds.STONE).withLightEmission(0.3F).withHardness(2.0F).withBlastResistance(10F).withOverrideColor(MaterialColor.stone).setStatParent(() -> MOTION_SENSOR_IDLE)
             .withTags(BlockTags.NOT_IN_CREATIVE_MENU, BlockTags.MINEABLE_BY_PICKAXE);
 
-        REPEATER_IDLE = new RepeaterBlock("repeater.idle", "minecraft:block/repeater_idle", 510, false).withSound(BlockSounds.STONE).withHardness(0.0F).withDisabledStats().withDisabledNeighborNotifyOnMetadataChange().withOverrideColor(MaterialColor.redstone).setStatParent(() -> Items.REPEATER)
+        REPEATER_IDLE = new BlockRepeater("repeater.idle", "minecraft:block/repeater_idle", 510, false).withSound(BlockSounds.STONE).withHardness(0.0F).withDisabledStats().withDisabledNeighborNotifyOnMetadataChange().withOverrideColor(MaterialColor.redstone).setStatParent(() -> Items.REPEATER)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE, BlockTags.BROKEN_BY_FLUIDS, BlockTags.NOT_IN_CREATIVE_MENU, BlockTags.PREVENT_MOB_SPAWNS);
-        REPEATER_ACTIVE = new RepeaterBlock("repeater.active", "minecraft:block/repeater_active", 511, true).withSound(BlockSounds.STONE).withHardness(0.0F).withLightEmission(0.625F).withDisabledStats().withDisabledNeighborNotifyOnMetadataChange().withOverrideColor(MaterialColor.redstone).setStatParent(() -> REPEATER_IDLE)
+        REPEATER_ACTIVE = new BlockRepeater("repeater.active", "minecraft:block/repeater_active", 511, true).withSound(BlockSounds.STONE).withHardness(0.0F).withLightEmission(0.625F).withDisabledStats().withDisabledNeighborNotifyOnMetadataChange().withOverrideColor(MaterialColor.redstone).setStatParent(() -> REPEATER_IDLE)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE, BlockTags.BROKEN_BY_FLUIDS, BlockTags.NOT_IN_CREATIVE_MENU, BlockTags.PREVENT_MOB_SPAWNS);
 
-        PISTON_BASE = new PistonBaseBlock("piston.base", "minecraft:block/piston_base", 520, 12).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange()
+        PISTON_BASE = new BlockPistonBase("piston.base", "minecraft:block/piston_base", 520, 12).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        PISTON_BASE_STICKY = new StickyPistonBaseBlock("piston.base.sticky", "minecraft:block/piston_base_sticky", 521, 12).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange()
+        PISTON_BASE_STICKY = new BlockPistonBaseSticky("piston.base.sticky", "minecraft:block/piston_base_sticky", 521, 12).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        PISTON_HEAD = new PistonHeadBlock("piston.head", "minecraft:block/piston_head", 522, 4/16d).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withDisabledStats().withImmovableFlagSet()
+        PISTON_HEAD = new BlockPistonHead("piston.head", "minecraft:block/piston_head", 522, 4/16d).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withDisabledStats().withImmovableFlagSet()
             .withTags(BlockTags.NOT_IN_CREATIVE_MENU, BlockTags.MINEABLE_BY_PICKAXE);
-        PISTON_MOVING = new MovingPistonBlock("piston.moving", "minecraft:block/piston_moving", 523).withSound(BlockSounds.STONE).withDisabledStats()
+        PISTON_MOVING = new BlockPistonMoving("piston.moving", "minecraft:block/piston_moving", 523).withSound(BlockSounds.STONE).withDisabledStats()
             .withTags(BlockTags.NOT_IN_CREATIVE_MENU);
-        PISTON_BASE_STEEL = new SteelPistonBaseBlock("piston.base.steel", "minecraft:block/piston_base_steel", 524, 24).withSound(BlockSounds.METAL).withDisabledNeighborNotifyOnMetadataChange()
+        PISTON_BASE_STEEL = new BlockPistonBaseSteel("piston.base.steel", "minecraft:block/piston_base_steel", 524, 24).withSound(BlockSounds.METAL).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        PISTON_HEAD_STEEL = new PistonHeadBlock("piston.head.steel", "minecraft:block/piston_head_steel", 525, 6/16d).withSound(BlockSounds.METAL).withDisabledNeighborNotifyOnMetadataChange().withDisabledStats()
+        PISTON_HEAD_STEEL = new BlockPistonHead("piston.head.steel", "minecraft:block/piston_head_steel", 525, 6/16d).withSound(BlockSounds.METAL).withDisabledNeighborNotifyOnMetadataChange().withDisabledStats()
             .withTags(BlockTags.NOT_IN_CREATIVE_MENU, BlockTags.MINEABLE_BY_PICKAXE);
 
-        NOTEBLOCK = new NoteBlock("noteblock", "minecraft:block/noteblock", 530).withSound(BlockSounds.WOOD).withHardness(0.8F).withDisabledNeighborNotifyOnMetadataChange()
+        NOTEBLOCK = new BlockNote("noteblock", "minecraft:block/noteblock", 530).withSound(BlockSounds.WOOD).withHardness(0.8F).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.MINEABLE_BY_AXE);
 
-        RAIL = new RailBlock("rail", "minecraft:block/rail", 540, false).withSound(BlockSounds.METAL).withHardness(0.7F).withDisabledNeighborNotifyOnMetadataChange()
+        RAIL = new BlockRail("rail", "minecraft:block/rail", 540, false).withSound(BlockSounds.METAL).withHardness(0.7F).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.BROKEN_BY_FLUIDS, BlockTags.MINEABLE_BY_PICKAXE, BlockTags.PREVENT_MOB_SPAWNS);
-        RAIL_POWERED = new RailBlock("rail.powered", "minecraft:block/rail_powered", 541, true).withSound(BlockSounds.METAL).withHardness(0.7F).withDisabledNeighborNotifyOnMetadataChange()
+        RAIL_POWERED = new BlockRail("rail.powered", "minecraft:block/rail_powered", 541, true).withSound(BlockSounds.METAL).withHardness(0.7F).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.BROKEN_BY_FLUIDS, BlockTags.MINEABLE_BY_PICKAXE, BlockTags.PREVENT_MOB_SPAWNS);
-        RAIL_DETECTOR = new DetectorRailBlock("rail.detector", "minecraft:block/rail_detector", 542).withSound(BlockSounds.METAL).withHardness(0.7F).withDisabledNeighborNotifyOnMetadataChange()
+        RAIL_DETECTOR = new BlockRailDetector("rail.detector", "minecraft:block/rail_detector", 542).withSound(BlockSounds.METAL).withHardness(0.7F).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.BROKEN_BY_FLUIDS, BlockTags.MINEABLE_BY_PICKAXE, BlockTags.PREVENT_MOB_SPAWNS);
 
-        SPIKES = new SpikesBlock("spikes", "minecraft:block/spikes", 550, Material.metal).withSound(BlockSounds.METAL).withLightBlock(3).withHardness(2F).withDisabledNeighborNotifyOnMetadataChange()
+        SPIKES = new BlockSpikes("spikes", "minecraft:block/spikes", 550, Material.metal).withSound(BlockSounds.METAL).withLightBlock(3).withHardness(2F).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
 
-        DISPENSER_COBBLE_STONE = new DispenserBlock("dispenser.cobble.stone", "minecraft:block/dispenser_cobble_stone", 560).withSound(BlockSounds.STONE).withHardness(3.5F).withDisabledNeighborNotifyOnMetadataChange()
+        DISPENSER_COBBLE_STONE = new BlockDispenser("dispenser.cobble.stone", "minecraft:block/dispenser_cobble_stone", 560).withSound(BlockSounds.STONE).withHardness(3.5F).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        ACTIVATOR_COBBLE_NETHERRACK = new ActivatorBlock("activator.cobble.netherrack", "minecraft:block/activator_cobble_netherrack", 561).withSound(BlockSounds.STONE).withHardness(3.5F).withDisabledNeighborNotifyOnMetadataChange()
+        ACTIVATOR_COBBLE_NETHERRACK = new BlockActivator("activator.cobble.netherrack", "minecraft:block/activator_cobble_netherrack", 561).withSound(BlockSounds.STONE).withHardness(3.5F).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
 
-        TRAPDOOR_PLANKS_OAK = new TrapDoorBlock("trapdoor.planks.oak", "minecraft:block/trapdoor_planks_oak", 570, Material.wood).withSound(BlockSounds.WOOD).withHardness(3F).withDisabledNeighborNotifyOnMetadataChange()
+        TRAPDOOR_PLANKS_OAK = new BlockTrapDoor("trapdoor.planks.oak", "minecraft:block/trapdoor_planks_oak", 570, Material.wood).withSound(BlockSounds.WOOD).withHardness(3F).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.MINEABLE_BY_AXE);
-        TRAPDOOR_IRON = new TrapDoorBlock("trapdoor.iron", "minecraft:block/trapdoor_iron", 571, Material.metal).withSound(BlockSounds.METAL).withHardness(5F).withDisabledNeighborNotifyOnMetadataChange().withOverrideColor(MaterialColor.iron)
+        TRAPDOOR_IRON = new BlockTrapDoor("trapdoor.iron", "minecraft:block/trapdoor_iron", 571, Material.metal).withSound(BlockSounds.METAL).withHardness(5F).withDisabledNeighborNotifyOnMetadataChange().withOverrideColor(MaterialColor.iron)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        TRAPDOOR_GLASS = new TrapDoorBlock("trapdoor.glass", "minecraft:block/trapdoor_glass", 572, Material.glass).withSound(BlockSounds.GLASS).withHardness(0.3F).withDisabledNeighborNotifyOnMetadataChange()
+        TRAPDOOR_GLASS = new BlockTrapDoor("trapdoor.glass", "minecraft:block/trapdoor_glass", 572, Material.glass).withSound(BlockSounds.GLASS).withHardness(0.3F).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        TRAPDOOR_PLANKS_PAINTED = new PaintedTrapDoorBlock("trapdoor.planks.oak.painted", "minecraft:block/trapdoor_planks_oak_painted", 573, Material.wood).withSound(BlockSounds.WOOD).withHardness(3F).withDisabledNeighborNotifyOnMetadataChange()
-            .setBlockItem((b) -> new PaintedBlockItem(b, true))
+        TRAPDOOR_PLANKS_PAINTED = new BlockTrapDoorPainted("trapdoor.planks.oak.painted", "minecraft:block/trapdoor_planks_oak_painted", 573, Material.wood).withSound(BlockSounds.WOOD).withHardness(3F).withDisabledNeighborNotifyOnMetadataChange()
+            .setBlockItem((b) -> new ItemBlockPainted(b, true))
             .withTags(BlockTags.MINEABLE_BY_AXE);
-        TRAPDOOR_STEEL = new TrapDoorBlock("trapdoor.steel", "minecraft:block/trapdoor_steel", 574, Material.metal).withSound(BlockSounds.METAL).withOverrideColor(MaterialColor.steel).withHardness(5F).withBlastResistance(2000F).withDisabledNeighborNotifyOnMetadataChange().withOverrideColor(MaterialColor.steel)
+        TRAPDOOR_STEEL = new BlockTrapDoor("trapdoor.steel", "minecraft:block/trapdoor_steel", 574, Material.metal).withSound(BlockSounds.METAL).withOverrideColor(MaterialColor.steel).withHardness(5F).withBlastResistance(2000F).withDisabledNeighborNotifyOnMetadataChange().withOverrideColor(MaterialColor.steel)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
 
-        TNT = new TNTBlock("tnt", "minecraft:block/tnt", 580).withSound(BlockSounds.GRASS).withHardness(0.0F);
+        TNT = new BlockTNT("tnt", "minecraft:block/tnt", 580).withSound(BlockSounds.GRASS).withHardness(0.0F);
 
-        DOOR_PLANKS_OAK_BOTTOM = new DoorBlock("door.planks.oak.bottom", "minecraft:block/door_planks_oak_bottom", 590, Material.wood, false, false, () -> Items.DOOR_OAK).withSound(BlockSounds.WOOD).withHardness(3F).withDisabledNeighborNotifyOnMetadataChange().setStatParent(() -> Items.DOOR_OAK)
+        DOOR_PLANKS_OAK_BOTTOM = new BlockDoor("door.planks.oak.bottom", "minecraft:block/door_planks_oak_bottom", 590, Material.wood, false, false, () -> Items.DOOR_OAK).withSound(BlockSounds.WOOD).withHardness(3F).withDisabledNeighborNotifyOnMetadataChange().setStatParent(() -> Items.DOOR_OAK)
             .withTags(BlockTags.NOT_IN_CREATIVE_MENU, BlockTags.MINEABLE_BY_AXE);
-        DOOR_PLANKS_OAK_TOP = new DoorBlock("door.planks.oak.top", "minecraft:block/doors_planks_oak_top", 591, Material.wood, true, false, () -> Items.DOOR_OAK).withSound(BlockSounds.WOOD).withHardness(3F).withDisabledNeighborNotifyOnMetadataChange().setStatParent(() -> DOOR_PLANKS_OAK_BOTTOM)
+        DOOR_PLANKS_OAK_TOP = new BlockDoor("door.planks.oak.top", "minecraft:block/doors_planks_oak_top", 591, Material.wood, true, false, () -> Items.DOOR_OAK).withSound(BlockSounds.WOOD).withHardness(3F).withDisabledNeighborNotifyOnMetadataChange().setStatParent(() -> DOOR_PLANKS_OAK_BOTTOM)
             .withTags(BlockTags.NOT_IN_CREATIVE_MENU, BlockTags.MINEABLE_BY_AXE);
-        DOOR_IRON_BOTTOM = new DoorBlock("door.iron.bottom", "minecraft:block/door_iron_bottom", 592, Material.metal, false, true, () -> Items.DOOR_IRON).withSound(BlockSounds.METAL).withHardness(5F).withDisabledNeighborNotifyOnMetadataChange().withOverrideColor(MaterialColor.iron).setStatParent(() -> Items.DOOR_IRON)
+        DOOR_IRON_BOTTOM = new BlockDoor("door.iron.bottom", "minecraft:block/door_iron_bottom", 592, Material.metal, false, true, () -> Items.DOOR_IRON).withSound(BlockSounds.METAL).withHardness(5F).withDisabledNeighborNotifyOnMetadataChange().withOverrideColor(MaterialColor.iron).setStatParent(() -> Items.DOOR_IRON)
             .withTags(BlockTags.NOT_IN_CREATIVE_MENU, BlockTags.MINEABLE_BY_PICKAXE);
-        DOOR_IRON_TOP = new DoorBlock("door.iron.top", "minecraft:block/door_iron_top", 593, Material.metal, true, true, () -> Items.DOOR_IRON).withSound(BlockSounds.METAL).withHardness(5F).withDisabledNeighborNotifyOnMetadataChange().withOverrideColor(MaterialColor.iron).setStatParent(() -> DOOR_IRON_BOTTOM)
+        DOOR_IRON_TOP = new BlockDoor("door.iron.top", "minecraft:block/door_iron_top", 593, Material.metal, true, true, () -> Items.DOOR_IRON).withSound(BlockSounds.METAL).withHardness(5F).withDisabledNeighborNotifyOnMetadataChange().withOverrideColor(MaterialColor.iron).setStatParent(() -> DOOR_IRON_BOTTOM)
             .withTags(BlockTags.NOT_IN_CREATIVE_MENU, BlockTags.MINEABLE_BY_PICKAXE);
-        DOOR_PLANKS_PAINTED_BOTTOM = new DoorPaintedBlock("door.planks.oak.painted.bottom", "minecraft:block/door_planks_oak_painted_bottom", 594, Material.wood, false).withSound(BlockSounds.WOOD).withHardness(3F).withDisabledNeighborNotifyOnMetadataChange().setStatParent(() -> Items.DOOR_OAK_PAINTED)
-            .setBlockItem((b) -> new PaintedBlockItem(b, true))
+        DOOR_PLANKS_PAINTED_BOTTOM = new BlockDoorPainted("door.planks.oak.painted.bottom", "minecraft:block/door_planks_oak_painted_bottom", 594, Material.wood, false).withSound(BlockSounds.WOOD).withHardness(3F).withDisabledNeighborNotifyOnMetadataChange().setStatParent(() -> Items.DOOR_OAK_PAINTED)
+            .setBlockItem((b) -> new ItemBlockPainted(b, true))
             .withTags(BlockTags.NOT_IN_CREATIVE_MENU, BlockTags.MINEABLE_BY_AXE);
-        DOOR_PLANKS_PAINTED_TOP = new DoorPaintedBlock("door.planks.oak.painted.top", "minecraft:block/door_planks_oak_painted_top", 595, Material.wood, true).withSound(BlockSounds.WOOD).withHardness(3F).withDisabledNeighborNotifyOnMetadataChange().setStatParent(() -> DOOR_PLANKS_PAINTED_BOTTOM)
-            .setBlockItem((b) -> new PaintedBlockItem(b, true))
+        DOOR_PLANKS_PAINTED_TOP = new BlockDoorPainted("door.planks.oak.painted.top", "minecraft:block/door_planks_oak_painted_top", 595, Material.wood, true).withSound(BlockSounds.WOOD).withHardness(3F).withDisabledNeighborNotifyOnMetadataChange().setStatParent(() -> DOOR_PLANKS_PAINTED_BOTTOM)
+            .setBlockItem((b) -> new ItemBlockPainted(b, true))
             .withTags(BlockTags.NOT_IN_CREATIVE_MENU, BlockTags.MINEABLE_BY_AXE);
-        DOOR_GLASS_BOTTOM = new DoorBlock("door.glass.bottom", "minecraft:block/door_glass_bottom", 596, Material.glass, false, false, () -> Items.DOOR_GLASS).withSound(BlockSounds.GLASS).withHardness(0.3F).withDisabledNeighborNotifyOnMetadataChange().setStatParent(() -> Items.DOOR_GLASS)
+        DOOR_GLASS_BOTTOM = new BlockDoor("door.glass.bottom", "minecraft:block/door_glass_bottom", 596, Material.glass, false, false, () -> Items.DOOR_GLASS).withSound(BlockSounds.GLASS).withHardness(0.3F).withDisabledNeighborNotifyOnMetadataChange().setStatParent(() -> Items.DOOR_GLASS)
             .withTags(BlockTags.NOT_IN_CREATIVE_MENU, BlockTags.MINEABLE_BY_PICKAXE);
-        DOOR_GLASS_TOP = new DoorBlock("door.glass.top", "minecraft:block/door_glass_top", 597, Material.glass, true, false, () -> Items.DOOR_GLASS).withSound(BlockSounds.GLASS).withHardness(0.3F).withDisabledNeighborNotifyOnMetadataChange().setStatParent(() -> DOOR_GLASS_BOTTOM)
+        DOOR_GLASS_TOP = new BlockDoor("door.glass.top", "minecraft:block/door_glass_top", 597, Material.glass, true, false, () -> Items.DOOR_GLASS).withSound(BlockSounds.GLASS).withHardness(0.3F).withDisabledNeighborNotifyOnMetadataChange().setStatParent(() -> DOOR_GLASS_BOTTOM)
             .withTags(BlockTags.NOT_IN_CREATIVE_MENU, BlockTags.MINEABLE_BY_PICKAXE);
-        DOOR_STEEL_BOTTOM = new DoorBlock("door.steel.bottom", "minecraft:block/door_steel_bottom", 598, Material.metal, false, true, () -> Items.DOOR_STEEL).withSound(BlockSounds.METAL).withHardness(5F).withOverrideColor(MaterialColor.steel).withBlastResistance(2000F).withDisabledNeighborNotifyOnMetadataChange().withOverrideColor(MaterialColor.steel).setStatParent(() -> Items.DOOR_STEEL)
+        DOOR_STEEL_BOTTOM = new BlockDoor("door.steel.bottom", "minecraft:block/door_steel_bottom", 598, Material.metal, false, true, () -> Items.DOOR_STEEL).withSound(BlockSounds.METAL).withHardness(5F).withOverrideColor(MaterialColor.steel).withBlastResistance(2000F).withDisabledNeighborNotifyOnMetadataChange().withOverrideColor(MaterialColor.steel).setStatParent(() -> Items.DOOR_STEEL)
             .withTags(BlockTags.NOT_IN_CREATIVE_MENU, BlockTags.MINEABLE_BY_PICKAXE);
-        DOOR_STEEL_TOP = new DoorBlock("door.steel.top", "minecraft:block/door_steel_top", 599, Material.metal, true, true, () -> Items.DOOR_STEEL).withSound(BlockSounds.METAL).withHardness(5F).withOverrideColor(MaterialColor.steel).withBlastResistance(2000F).withDisabledNeighborNotifyOnMetadataChange().withOverrideColor(MaterialColor.steel).setStatParent(() -> DOOR_STEEL_BOTTOM)
+        DOOR_STEEL_TOP = new BlockDoor("door.steel.top", "minecraft:block/door_steel_top", 599, Material.metal, true, true, () -> Items.DOOR_STEEL).withSound(BlockSounds.METAL).withHardness(5F).withOverrideColor(MaterialColor.steel).withBlastResistance(2000F).withDisabledNeighborNotifyOnMetadataChange().withOverrideColor(MaterialColor.steel).setStatParent(() -> DOOR_STEEL_BOTTOM)
             .withTags(BlockTags.NOT_IN_CREATIVE_MENU, BlockTags.MINEABLE_BY_PICKAXE);
 
-        MESH = new MeshBlock("mesh", "minecraft:block/mesh", 600).withSound(BlockSounds.METAL).withHardness(1.5F)
+        MESH = new BlockMesh("mesh", "minecraft:block/mesh", 600).withSound(BlockSounds.METAL).withHardness(1.5F)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE, BlockTags.CAN_HANG_OFF);
-        MESH_GOLD = new GoldMeshBlock("mesh.gold", "minecraft:block/mesh_gold", 601).withSound(BlockSounds.METAL).withHardness(1F).withOverrideColor(MaterialColor.gold)
+        MESH_GOLD = new BlockMeshGold("mesh.gold", "minecraft:block/mesh_gold", 601).withSound(BlockSounds.METAL).withHardness(1F).withOverrideColor(MaterialColor.gold)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE, BlockTags.CAN_HANG_OFF);
 
-        BED = new BedBlock("bed", "minecraft:block/bed", 610).withSound(BlockSounds.WOOD).withHardness(0.2F).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true).setStatParent(() -> Items.BED)
+        BED = new BlockBed("bed", "minecraft:block/bed", 610).withSound(BlockSounds.WOOD).withHardness(0.2F).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true).setStatParent(() -> Items.BED)
             .withTags(BlockTags.NOT_IN_CREATIVE_MENU, BlockTags.MINEABLE_BY_AXE);
-        SEAT = new SeatBlock("seat", "minecraft:block/seat", 611).withSound(BlockSounds.WOOD).withHardness(0.2F).withDisabledNeighborNotifyOnMetadataChange().setStatParent(() -> Items.SEAT)
+        SEAT = new BlockSeat("seat", "minecraft:block/seat", 611).withSound(BlockSounds.WOOD).withHardness(0.2F).withDisabledNeighborNotifyOnMetadataChange().setStatParent(() -> Items.SEAT)
             .withTags(BlockTags.NOT_IN_CREATIVE_MENU, BlockTags.MINEABLE_BY_AXE);
 
-        COBWEB = new CobwebBlock("cobweb", "minecraft:block/cobweb", 620, Material.web).withSound(BlockSounds.CLOTH).withLightBlock(1).withHardness(4F)
+        COBWEB = new BlockCobweb("cobweb", "minecraft:block/cobweb", 620, Material.web).withSound(BlockSounds.CLOTH).withLightBlock(1).withHardness(4F)
             .withTags(BlockTags.SHEARS_DO_SILK_TOUCH, BlockTags.MINEABLE_BY_SHEARS, BlockTags.MINEABLE_BY_SWORD);
 
-        FIRE = new FireBlock("fire", "minecraft:block/fire", 630).withSound(BlockSounds.FIRE).withHardness(0.0F).withLightEmission(1.0F).withDisabledStats().withDisabledNeighborNotifyOnMetadataChange()
+        FIRE = new BlockFire("fire", "minecraft:block/fire", 630).withSound(BlockSounds.FIRE).withHardness(0.0F).withLightEmission(1.0F).withDisabledStats().withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.BROKEN_BY_FLUIDS, BlockTags.PLACE_OVERWRITES, BlockTags.NOT_IN_CREATIVE_MENU);
-        BRAZIER_INACTIVE = new BrazierBlock("brazier.inactive", "minecraft:block/brazier_inactive", 631, false).withSound(BlockSounds.METAL).withHardness(1.5F)
+        BRAZIER_INACTIVE = new BlockBrazier("brazier.inactive", "minecraft:block/brazier_inactive", 631, false).withSound(BlockSounds.METAL).withHardness(1.5F)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        BRAZIER_ACTIVE = new BrazierBlock("brazier.active", "minecraft:block/brazier_active", 632, true).withSound(BlockSounds.FIRE).withHardness(1.5F).withLightEmission(1.0F).setStatParent(() -> BRAZIER_INACTIVE)
+        BRAZIER_ACTIVE = new BlockBrazier("brazier.active", "minecraft:block/brazier_active", 632, true).withSound(BlockSounds.FIRE).withHardness(1.5F).withLightEmission(1.0F).setStatParent(() -> BRAZIER_INACTIVE)
             .withTags(BlockTags.NOT_IN_CREATIVE_MENU, BlockTags.MINEABLE_BY_PICKAXE);
 
-        MOBSPAWNER = new MobSpawnerBlock("mobspawner", "minecraft:block/mobspawner", 640).withSound(BlockSounds.METAL).withHardness(5F).withImmovableFlagSet().withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        MOBSPAWNER_DEACTIVATED = new MobSpawnerDeactivatedBlock("mobspawner.deactivated", "minecraft:block/mobspawner_deactivated", 641, Material.stone).withSound(BlockSounds.METAL).withHardness(5F).withTags(BlockTags.MINEABLE_BY_PICKAXE);
+        MOBSPAWNER = new BlockMobSpawner("mobspawner", "minecraft:block/mobspawner", 640).withSound(BlockSounds.METAL).withHardness(5F).withImmovableFlagSet().withTags(BlockTags.MINEABLE_BY_PICKAXE);
+        MOBSPAWNER_DEACTIVATED = new BlockMobSpawnerDeactivated("mobspawner.deactivated", "minecraft:block/mobspawner_deactivated", 641, Material.stone).withSound(BlockSounds.METAL).withHardness(5F).withTags(BlockTags.MINEABLE_BY_PICKAXE);
 
-        WORKBENCH = new WorkbenchBlock("workbench", "minecraft:block/workbench", 650).withSound(BlockSounds.WOOD).withHardness(2.5F)
+        WORKBENCH = new BlockWorkbench("workbench", "minecraft:block/workbench", 650).withSound(BlockSounds.WOOD).withHardness(2.5F)
             .withTags(BlockTags.FENCES_CONNECT, BlockTags.MINEABLE_BY_AXE);
 
-        FURNACE_STONE_IDLE = new FurnaceBlock("furnace.stone.idle", "minecraft:block/furnace_stone_idle", 660, false).withSound(BlockSounds.STONE).withHardness(3.5F).withDisabledNeighborNotifyOnMetadataChange()
+        FURNACE_STONE_IDLE = new BlockFurnace("furnace.stone.idle", "minecraft:block/furnace_stone_idle", 660, false).withSound(BlockSounds.STONE).withHardness(3.5F).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        FURNACE_STONE_ACTIVE = new FurnaceBlock("furnace.stone.active", "minecraft:block/furnace_stone_active", 661, true).withSound(BlockSounds.STONE).withHardness(3.5F).withLightEmission(0.875F).withDisabledNeighborNotifyOnMetadataChange().setStatParent(() -> FURNACE_STONE_IDLE)
+        FURNACE_STONE_ACTIVE = new BlockFurnace("furnace.stone.active", "minecraft:block/furnace_stone_active", 661, true).withSound(BlockSounds.STONE).withHardness(3.5F).withLightEmission(0.875F).withDisabledNeighborNotifyOnMetadataChange().setStatParent(() -> FURNACE_STONE_IDLE)
             .withTags(BlockTags.NOT_IN_CREATIVE_MENU, BlockTags.MINEABLE_BY_PICKAXE);
-        FURNACE_BLAST_IDLE = new BlastFurnaceBlock("furnace.blast.idle", "minecraft:block/furnace_blast_idle", 662, false).withSound(BlockSounds.METAL).withHardness(3.5F).withDisabledNeighborNotifyOnMetadataChange().withOverrideColor(MaterialColor.steel)
+        FURNACE_BLAST_IDLE = new BlockFurnaceBlast("furnace.blast.idle", "minecraft:block/furnace_blast_idle", 662, false).withSound(BlockSounds.METAL).withHardness(3.5F).withDisabledNeighborNotifyOnMetadataChange().withOverrideColor(MaterialColor.steel)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        FURNACE_BLAST_ACTIVE = new BlastFurnaceBlock("furnace.blast.active", "minecraft:block/furnace_blast_active", 663, true).withSound(BlockSounds.METAL).withHardness(3.5F).withLightEmission(0.875F).withDisabledNeighborNotifyOnMetadataChange().withOverrideColor(MaterialColor.steel).setStatParent(() -> FURNACE_BLAST_IDLE)
+        FURNACE_BLAST_ACTIVE = new BlockFurnaceBlast("furnace.blast.active", "minecraft:block/furnace_blast_active", 663, true).withSound(BlockSounds.METAL).withHardness(3.5F).withLightEmission(0.875F).withDisabledNeighborNotifyOnMetadataChange().withOverrideColor(MaterialColor.steel).setStatParent(() -> FURNACE_BLAST_IDLE)
             .withTags(BlockTags.NOT_IN_CREATIVE_MENU, BlockTags.MINEABLE_BY_PICKAXE);
 
-        TROMMEL_IDLE = new TrommelBlock("trommel.idle", "minecraft:block/trommel_idle", 670, Material.stone, false).withSound(BlockSounds.STONE).withHardness(3.5F).withDisabledNeighborNotifyOnMetadataChange()
+        TROMMEL_IDLE = new BlockTrommel("trommel.idle", "minecraft:block/trommel_idle", 670, Material.stone, false).withSound(BlockSounds.STONE).withHardness(3.5F).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        TROMMEL_ACTIVE = new TrommelBlock("trommel.active", "minecraft:block/trommel_active", 671, Material.stone, true).withSound(BlockSounds.STONE).withHardness(3.5F).withLightEmission(0.875F).withDisabledNeighborNotifyOnMetadataChange().setStatParent(() -> TROMMEL_IDLE)
+        TROMMEL_ACTIVE = new BlockTrommel("trommel.active", "minecraft:block/trommel_active", 671, Material.stone, true).withSound(BlockSounds.STONE).withHardness(3.5F).withLightEmission(0.875F).withDisabledNeighborNotifyOnMetadataChange().setStatParent(() -> TROMMEL_IDLE)
             .withTags(BlockTags.NOT_IN_CREATIVE_MENU, BlockTags.MINEABLE_BY_PICKAXE);
 
-        CHEST_LEGACY = new LegacyChestBlock("chest.legacy", "minecraft:block/chest_legacy", 680).withSound(BlockSounds.WOOD).withHardness(2.5f).withBlastResistance(5.0f).setStatParent(() -> CHEST_PLANKS_OAK)
+        CHEST_LEGACY = new BlockChestLegacy("chest.legacy", "minecraft:block/chest_legacy", 680).withSound(BlockSounds.WOOD).withHardness(2.5f).withBlastResistance(5.0f).setStatParent(() -> CHEST_PLANKS_OAK)
             .withTags(BlockTags.NOT_IN_CREATIVE_MENU, BlockTags.MINEABLE_BY_AXE);
-        CHEST_LEGACY_PAINTED = new LegacyChestBlock("chest.legacy.painted", "minecraft:block/chest_legacy_painted", 681).withSound(BlockSounds.WOOD).withHardness(2.5f).withBlastResistance(5.0f).setStatParent(() -> CHEST_PLANKS_OAK_PAINTED)
+        CHEST_LEGACY_PAINTED = new BlockChestLegacy("chest.legacy.painted", "minecraft:block/chest_legacy_painted", 681).withSound(BlockSounds.WOOD).withHardness(2.5f).withBlastResistance(5.0f).setStatParent(() -> CHEST_PLANKS_OAK_PAINTED)
             .withTags(BlockTags.NOT_IN_CREATIVE_MENU, BlockTags.MINEABLE_BY_AXE);
-        CHEST_PLANKS_OAK = new ChestBlock("chest.planks.oak", "minecraft:block/chest_planks_oak", 682, Material.wood).withSound(BlockSounds.WOOD).withHardness(2.5F).withBlastResistance(5.0f).withDisabledNeighborNotifyOnMetadataChange()
+        CHEST_PLANKS_OAK = new BlockChest("chest.planks.oak", "minecraft:block/chest_planks_oak", 682, Material.wood).withSound(BlockSounds.WOOD).withHardness(2.5F).withBlastResistance(5.0f).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.FENCES_CONNECT, BlockTags.MINEABLE_BY_AXE);
-        CHEST_PLANKS_OAK_PAINTED = new ChestBlockPainted("chest.planks.oak.painted", "minecraft:block/chest_planks_oak_painted", 683, Material.wood).withSound(BlockSounds.WOOD).withHardness(2.5F).withBlastResistance(5.0f).withDisabledNeighborNotifyOnMetadataChange()
-            .setBlockItem((b) -> new PaintedBlockItem(b, true))
+        CHEST_PLANKS_OAK_PAINTED = new BlockChestPainted("chest.planks.oak.painted", "minecraft:block/chest_planks_oak_painted", 683, Material.wood).withSound(BlockSounds.WOOD).withHardness(2.5F).withBlastResistance(5.0f).withDisabledNeighborNotifyOnMetadataChange()
+            .setBlockItem((b) -> new ItemBlockPainted(b, true))
             .withTags(BlockTags.FENCES_CONNECT, BlockTags.MINEABLE_BY_AXE);
 
-        CROPS_WHEAT = new CropsWheatBlock("crops.wheat", "minecraft:block/crops_wheat", 690).withSound(BlockSounds.GRASS).withHardness(0.0F).withDisabledNeighborNotifyOnMetadataChange().setStatParent(() -> Items.SEEDS_WHEAT)
+        CROPS_WHEAT = new BlockCropsWheat("crops.wheat", "minecraft:block/crops_wheat", 690).withSound(BlockSounds.GRASS).withHardness(0.0F).withDisabledNeighborNotifyOnMetadataChange().setStatParent(() -> Items.SEEDS_WHEAT)
             .withTags(BlockTags.BROKEN_BY_FLUIDS, BlockTags.NOT_IN_CREATIVE_MENU);
-        CROPS_PUMPKIN = new CropsPumpkinBlock("crops.pumpkin", "minecraft:block/crops_pumpkin", 691).withSound(BlockSounds.WOOD).withHardness(0.0f).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true).setStatParent(() -> Items.SEEDS_PUMPKIN)
+        CROPS_PUMPKIN = new BlockCropsPumpkin("crops.pumpkin", "minecraft:block/crops_pumpkin", 691).withSound(BlockSounds.WOOD).withHardness(0.0f).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true).setStatParent(() -> Items.SEEDS_PUMPKIN)
             .withTags(BlockTags.BROKEN_BY_FLUIDS, BlockTags.NOT_IN_CREATIVE_MENU, BlockTags.OVERRIDE_STEPSOUND);
 
-        FARMLAND_DIRT = new FarmlandBlock("farmland.dirt", "minecraft:block/farmland_dirt", 700).withSound(BlockSounds.GRAVEL).withHardness(0.6F).withLitInteriorSurface(true).withDisabledNeighborNotifyOnMetadataChange()
+        FARMLAND_DIRT = new BlockFarmland("farmland.dirt", "minecraft:block/farmland_dirt", 700).withSound(BlockSounds.GRAVEL).withHardness(0.6F).withLitInteriorSurface(true).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.MINEABLE_BY_SHOVEL);
 
-        SIGN_POST_PLANKS_OAK = new SignBlock("sign.post.planks.oak", "minecraft:block/sign_post_planks_oak", 710, true).withSound(BlockSounds.WOOD).withHardness(1.0F).withDisabledNeighborNotifyOnMetadataChange().setStatParent(() -> Items.SIGN)
+        SIGN_POST_PLANKS_OAK = new BlockSign("sign.post.planks.oak", "minecraft:block/sign_post_planks_oak", 710, true).withSound(BlockSounds.WOOD).withHardness(1.0F).withDisabledNeighborNotifyOnMetadataChange().setStatParent(() -> Items.SIGN)
             .withTags(BlockTags.NOT_IN_CREATIVE_MENU, BlockTags.MINEABLE_BY_AXE);
-        SIGN_WALL_PLANKS_OAK = new SignBlock("sign.wall.planks.oak", "minecraft:block/sign_wall_planks_oak", 711, false).withSound(BlockSounds.WOOD).withHardness(1.0F).withDisabledNeighborNotifyOnMetadataChange().setStatParent(() -> SIGN_POST_PLANKS_OAK)
+        SIGN_WALL_PLANKS_OAK = new BlockSign("sign.wall.planks.oak", "minecraft:block/sign_wall_planks_oak", 711, false).withSound(BlockSounds.WOOD).withHardness(1.0F).withDisabledNeighborNotifyOnMetadataChange().setStatParent(() -> SIGN_POST_PLANKS_OAK)
             .withTags(BlockTags.NOT_IN_CREATIVE_MENU, BlockTags.MINEABLE_BY_AXE);
 
-        FLAG = new FlagBlock("flag", "minecraft:block/flag", 712, Material.wood).withSound(BlockSounds.WOOD).withHardness(1.0F).setStatParent(() -> Items.FLAG)
+        FLAG = new BlockFlag("flag", "minecraft:block/flag", 712, Material.wood).withSound(BlockSounds.WOOD).withHardness(1.0F).setStatParent(() -> Items.FLAG)
             .withTags(BlockTags.NOT_IN_CREATIVE_MENU, BlockTags.MINEABLE_BY_AXE);
 
-        LAYER_SNOW = new SnowLayerBlock("layer.snow", "minecraft:block/layer_snow", 720, Material.topSnow).setFullBlockID(() -> Blocks.BLOCK_SNOW.id).withSound(BlockSounds.CLOTH).withHardness(0.1F).withLitInteriorSurface(true)
+        LAYER_SNOW = new BlockLayerSnow("layer.snow", "minecraft:block/layer_snow", 720, Material.topSnow).setFullBlockID(() -> Blocks.BLOCK_SNOW.id).withSound(BlockSounds.CLOTH).withHardness(0.1F).withLitInteriorSurface(true)
             .withTags(BlockTags.BROKEN_BY_FLUIDS, BlockTags.PLACE_OVERWRITES, BlockTags.MINEABLE_BY_SHOVEL, BlockTags.OVERRIDE_STEPSOUND);
-        LAYER_LEAVES_OAK = new LeavesLayerBlock("layer.leaves.oak", "minecraft:block/layer_leaves_oak", 721, Material.leaves).setFullBlockID(() -> LEAVES_OAK.id).withSound(BlockSounds.GRASS).withLitInteriorSurface(true)
-            .setBlockItem(LeavesLayerBlockItem::new)
+        LAYER_LEAVES_OAK = new BlockLayerLeaves("layer.leaves.oak", "minecraft:block/layer_leaves_oak", 721, Material.leaves).setFullBlockID(() -> LEAVES_OAK.id).withSound(BlockSounds.GRASS).withLitInteriorSurface(true)
+            .setBlockItem(ItemBlockLayerLeaves::new)
             .withTags(BlockTags.BROKEN_BY_FLUIDS, BlockTags.PLACE_OVERWRITES, BlockTags.SHEARS_DO_SILK_TOUCH, BlockTags.MINEABLE_BY_SHEARS, BlockTags.MINEABLE_BY_SWORD, BlockTags.MINEABLE_BY_AXE, BlockTags.MINEABLE_BY_HOE);
-        LAYER_SLATE = new SlateLayerBlock("layer.slate", "minecraft:block/layer_slate", 722, Material.slate).setFullBlockID(() -> SLATE.id).withSound(BlockSounds.STONE).withHardness(1.5F).withBlastResistance(10F).withLitInteriorSurface(true)
+        LAYER_SLATE = new BlockLayerSlate("layer.slate", "minecraft:block/layer_slate", 722, Material.slate).setFullBlockID(() -> SLATE.id).withSound(BlockSounds.STONE).withHardness(1.5F).withBlastResistance(10F).withLitInteriorSurface(true)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
 
-        ICE = new IceBlock("ice", "minecraft:block/ice", 730).withSound(BlockSounds.GLASS).withHardness(0.5F).withLightBlock(3)
+        ICE = new BlockIce("ice", "minecraft:block/ice", 730).withSound(BlockSounds.GLASS).withHardness(0.5F).withLightBlock(3)
             .withTags(BlockTags.SKATEABLE, BlockTags.MINEABLE_BY_PICKAXE);
-        PERMAICE = new SlipperyBlock("ice.perma", "minecraft:block/permaice", 731, Material.ice).withSound(BlockSounds.GLASS).withHardness(1.5F).withBlastResistance(10F)
+        PERMAICE = new BlockSlippery("ice.perma", "minecraft:block/permaice", 731, Material.ice).withSound(BlockSounds.GLASS).withHardness(1.5F).withBlastResistance(10F)
             .withTags(BlockTags.SKATEABLE, BlockTags.MINEABLE_BY_PICKAXE);
 
-        BLOCK_SNOW = new SnowBlock("block.snow", "minecraft:block/block_snow", 740).withSound(BlockSounds.CLOTH).withHardness(0.2F)
+        BLOCK_SNOW = new BlockSnow("block.snow", "minecraft:block/block_snow", 740).withSound(BlockSounds.CLOTH).withHardness(0.2F)
             .withTags(BlockTags.CAVES_CUT_THROUGH, BlockTags.MINEABLE_BY_SHOVEL, BlockTags.FIREFLIES_CAN_SPAWN);
 
-        CACTUS = new CactusBlock("cactus", "minecraft:block/cactus", 750).withSound(BlockSounds.GRASS).withHardness(0.4F)
+        CACTUS = new BlockCactus("cactus", "minecraft:block/cactus", 750).withSound(BlockSounds.GRASS).withHardness(0.4F)
             .withTags(BlockTags.GROWS_CACTI, BlockTags.BROKEN_BY_FLUIDS, BlockTags.MINEABLE_BY_SHEARS, BlockTags.MINEABLE_BY_HOE);
 
-        BLOCK_CLAY = new ClayBlock("block.clay", "minecraft:block/block_clay", 760).withSound(BlockSounds.GRAVEL).withHardness(0.6F)
+        BLOCK_CLAY = new BlockClay("block.clay", "minecraft:block/block_clay", 760).withSound(BlockSounds.GRAVEL).withHardness(0.6F)
             .withTags(BlockTags.MINEABLE_BY_SHOVEL);
 
-        SUGARCANE = new SugarcaneBlock("sugarcane", "minecraft:block/sugarcane", 770).withSound(BlockSounds.GRASS).withHardness(0.0F).withOverrideColor(MaterialColor.paintedLime).setStatParent(() -> Items.SUGARCANE)
+        SUGARCANE = new BlockSugarcane("sugarcane", "minecraft:block/sugarcane", 770).withSound(BlockSounds.GRASS).withHardness(0.0F).withOverrideColor(MaterialColor.paintedLime).setStatParent(() -> Items.SUGARCANE)
             .withTags(BlockTags.BROKEN_BY_FLUIDS, BlockTags.BROKEN_BY_FLUIDS, BlockTags.NOT_IN_CREATIVE_MENU);
-        BLOCK_SUGARCANE = new AxisAlignedBlock("block.sugarcane", "minecraft:block/block_sugarcane", 771, Material.moss).withSound(BlockSounds.GRASS).withHardness(0.6F).withOverrideColor(MaterialColor.paintedLime)
+        BLOCK_SUGARCANE = new BlockAxisAligned("block.sugarcane", "minecraft:block/block_sugarcane", 771, Material.moss).withSound(BlockSounds.GRASS).withHardness(0.6F).withOverrideColor(MaterialColor.paintedLime)
             .withTags(BlockTags.MINEABLE_BY_AXE, BlockTags.FENCES_CONNECT);
-        BLOCK_SUGARCANE_BAKED = new AxisAlignedBlock("block.sugarcane.baked", "minecraft:block/block_sugarcane_baked", 772, Material.moss).withSound(BlockSounds.GRASS).withHardness(0.6F).withOverrideColor(MaterialColor.wood)
+        BLOCK_SUGARCANE_BAKED = new BlockAxisAligned("block.sugarcane.baked", "minecraft:block/block_sugarcane_baked", 772, Material.moss).withSound(BlockSounds.GRASS).withHardness(0.6F).withOverrideColor(MaterialColor.wood)
             .withTags(BlockTags.MINEABLE_BY_AXE, BlockTags.FENCES_CONNECT);
 
-        JUKEBOX = new JukeboxBlock("jukebox", "minecraft:block/jukebox", 780).withSound(BlockSounds.WOOD).withHardness(2.0F).withBlastResistance(10F).withDisabledNeighborNotifyOnMetadataChange()
+        JUKEBOX = new BlockJukebox("jukebox", "minecraft:block/jukebox", 780).withSound(BlockSounds.WOOD).withHardness(2.0F).withBlastResistance(10F).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.MINEABLE_BY_AXE);
 
-        PUMPKIN = new PumpkinBlock("pumpkin", "minecraft:block/pumpkin", 790, true).withSound(BlockSounds.WOOD).withHardness(1.0F).withDisabledNeighborNotifyOnMetadataChange()
+        PUMPKIN = new BlockPumpkin("pumpkin", "minecraft:block/pumpkin", 790, true).withSound(BlockSounds.WOOD).withHardness(1.0F).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.MINEABLE_BY_AXE);
-        PUMPKIN_CARVED_IDLE = new PumpkinBlock("pumpkin.carved.idle", "minecraft:block/pumpkin_carved_idle", 791, false).withSound(BlockSounds.WOOD).withHardness(1.0F).withDisabledNeighborNotifyOnMetadataChange()
+        PUMPKIN_CARVED_IDLE = new BlockPumpkin("pumpkin.carved.idle", "minecraft:block/pumpkin_carved_idle", 791, false).withSound(BlockSounds.WOOD).withHardness(1.0F).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.MINEABLE_BY_AXE);
-        PUMPKIN_CARVED_ACTIVE = new PumpkinBlock("pumpkin.carved.active", "minecraft:block/pumpkin_carved_active", 792, false).withSound(BlockSounds.WOOD).withHardness(1.0F).withLightEmission(1.0F).withDisabledNeighborNotifyOnMetadataChange()
+        PUMPKIN_CARVED_ACTIVE = new BlockPumpkin("pumpkin.carved.active", "minecraft:block/pumpkin_carved_active", 792, false).withSound(BlockSounds.WOOD).withHardness(1.0F).withLightEmission(1.0F).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.MINEABLE_BY_AXE);
-        PUMPKIN_REDSTONE = new RedstonePumpkinBlock("pumpkin.redstone", "minecraft:block/pumpkin_redstone", 793).withSound(BlockSounds.WOOD).withHardness(1.0F).withDisabledNeighborNotifyOnMetadataChange();
+        PUMPKIN_REDSTONE = new BlockPumpkinRedstone("pumpkin.redstone", "minecraft:block/pumpkin_redstone", 793).withSound(BlockSounds.WOOD).withHardness(1.0F).withDisabledNeighborNotifyOnMetadataChange();
 
 
-        COBBLE_NETHERRACK = new CobbleBlock("cobble.netherrack", "minecraft:block/cobble_netherrack", 800, Material.netherrack, null).withSound(BlockSounds.STONE).withHardness(0.4F)
+        COBBLE_NETHERRACK = new BlockCobble("cobble.netherrack", "minecraft:block/cobble_netherrack", 800, Material.netherrack, null).withSound(BlockSounds.STONE).withHardness(0.4F)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE, BlockTags.INFINITE_BURN, BlockTags.CAVES_CUT_THROUGH, BlockTags.NETHER_MOBS_SPAWN);
-        COBBLE_NETHERRACK_IGNEOUS = new IgneousNetherrackBlock("cobble.netherrack.igneous", "minecraft:block/cobble_netherrack_igneous", 801).withSound(BlockSounds.STONE).withHardness(1.25F).withBlastResistance(7F).withLightEmission(10)
+        COBBLE_NETHERRACK_IGNEOUS = new BlockNetherrackIgneous("cobble.netherrack.igneous", "minecraft:block/cobble_netherrack_igneous", 801).withSound(BlockSounds.STONE).withHardness(1.25F).withBlastResistance(7F).withLightEmission(10)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        COBBLE_NETHERRACK_MOSSY = new CobbleBlock("cobble.netherrack.mossy", "minecraft:block/cobble_netherrack_mossy", 802, Material.netherrack, null).withSound(BlockSounds.STONE).withHardness(0.4F)
+        COBBLE_NETHERRACK_MOSSY = new BlockCobble("cobble.netherrack.mossy", "minecraft:block/cobble_netherrack_mossy", 802, Material.netherrack, null).withSound(BlockSounds.STONE).withHardness(0.4F)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE, BlockTags.INFINITE_BURN);
-        NETHERRACK = new StoneBlock("netherrack", "minecraft:block/netherrack", 803, () -> Blocks.COBBLE_NETHERRACK, Material.netherrack).withSound(BlockSounds.STONE).withHardness(0.32F)
+        NETHERRACK = new BlockStone("netherrack", "minecraft:block/netherrack", 803, () -> Blocks.COBBLE_NETHERRACK, Material.netherrack).withSound(BlockSounds.STONE).withHardness(0.32F)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE, BlockTags.INFINITE_BURN, BlockTags.CAVES_CUT_THROUGH, BlockTags.NETHER_MOBS_SPAWN);
         BRICK_NETHERRACK = new Block("brick.netherrack", "minecraft:block/brick_netherrack", 804, Material.netherrack).withSound(BlockSounds.STONE).withHardness(0.4F)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        SLAB_NETHERRACK_POLISHED = new SlabBlock(NETHERRACK_CARVED, "minecraft:block/slab_netherrack_polished", 805).withSound(BlockSounds.STONE).withHardness(0.4F)
+        SLAB_NETHERRACK_POLISHED = new BlockSlab(NETHERRACK_CARVED, "minecraft:block/slab_netherrack_polished", 805).withSound(BlockSounds.STONE).withHardness(0.4F)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        SLAB_COBBLE_NETHERRACK = new SlabBlock(COBBLE_NETHERRACK, "minecraft:block/slab_cobble_netherrack", 806).withSound(BlockSounds.STONE).withHardness(0.4F)
+        SLAB_COBBLE_NETHERRACK = new BlockSlab(COBBLE_NETHERRACK, "minecraft:block/slab_cobble_netherrack", 806).withSound(BlockSounds.STONE).withHardness(0.4F)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        SLAB_BRICK_NETHERRACK = new SlabBlock(BRICK_NETHERRACK, "minecraft:block/slab_brick_netherrack", 807).withSound(BlockSounds.STONE).withHardness(0.4F)
+        SLAB_BRICK_NETHERRACK = new BlockSlab(BRICK_NETHERRACK, "minecraft:block/slab_brick_netherrack", 807).withSound(BlockSounds.STONE).withHardness(0.4F)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        STAIRS_COBBLE_NETHERRACK = new StairsBlock(COBBLE_NETHERRACK, "minecraft:block/stairs_cobble_netherrack", 808).withSound(BlockSounds.STONE).withHardness(0.4F).withLitInteriorSurface(true)
+        STAIRS_COBBLE_NETHERRACK = new BlockStairs(COBBLE_NETHERRACK, "minecraft:block/stairs_cobble_netherrack", 808).withSound(BlockSounds.STONE).withHardness(0.4F).withLitInteriorSurface(true)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        STAIRS_BRICK_NETHERRACK = new StairsBlock(BRICK_NETHERRACK, "minecraft:block/stairs_brick_netherrack", 809).withSound(BlockSounds.STONE).withHardness(0.4F).withLitInteriorSurface(true)
+        STAIRS_BRICK_NETHERRACK = new BlockStairs(BRICK_NETHERRACK, "minecraft:block/stairs_brick_netherrack", 809).withSound(BlockSounds.STONE).withHardness(0.4F).withLitInteriorSurface(true)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
 
-        SOULSAND = new SoulSandBlock("soulsand", "minecraft:block/soulsand", 810).withSound(BlockSounds.SAND).withHardness(0.5F).withOverrideColor(MaterialColor.paintedBrown)
+        SOULSAND = new BlockSoulSand("soulsand", "minecraft:block/soulsand", 810).withSound(BlockSounds.SAND).withHardness(0.5F).withOverrideColor(MaterialColor.paintedBrown)
             .withTags(BlockTags.MINEABLE_BY_SHOVEL, BlockTags.CAVES_CUT_THROUGH, BlockTags.NETHER_MOBS_SPAWN);
-        SOULSCHIST = new CobbleBlock("soulschist", "minecraft:block/soulschist", 811, Material.stone, () -> Blocks.SOULSAND).withSound(BlockSounds.STONE).withHardness(2.0F).withBlastResistance(10F).withOverrideColor(MaterialColor.paintedBrown)
+        SOULSCHIST = new BlockCobble("soulschist", "minecraft:block/soulschist", 811, Material.stone, () -> Blocks.SOULSAND).withSound(BlockSounds.STONE).withHardness(2.0F).withBlastResistance(10F).withOverrideColor(MaterialColor.paintedBrown)
 
             .withTags(BlockTags.MINEABLE_BY_PICKAXE, BlockTags.NETHER_MOBS_SPAWN);
 
-        GLOWSTONE = new GlowStoneBlock("glowstone", "minecraft:block/glowstone", 820, Material.stone).withSound(BlockSounds.GLASS).withHardness(0.3F).withLightEmission(1.0F).withOverrideColor(MaterialColor.paintedYellow)
+        GLOWSTONE = new BlockGlowStone("glowstone", "minecraft:block/glowstone", 820, Material.stone).withSound(BlockSounds.GLASS).withHardness(0.3F).withLightEmission(1.0F).withOverrideColor(MaterialColor.paintedYellow)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
 
-        PORTAL_NETHER = new PortalBlock("portal.nether", "minecraft:block/portal_nether", 830,1, OBSIDIAN.id, FIRE.id).withSound(BlockSounds.GLASS).withHardness(-1F).withLightEmission(0.75F).withOverrideColor(MaterialColor.paintedPurple).withDisabledStats()
+        PORTAL_NETHER = new BlockPortal("portal.nether", "minecraft:block/portal_nether", 830,1, OBSIDIAN.id, FIRE.id).withSound(BlockSounds.GLASS).withHardness(-1F).withLightEmission(0.75F).withOverrideColor(MaterialColor.paintedPurple).withDisabledStats()
             .withTags(BlockTags.BROKEN_BY_FLUIDS, BlockTags.NOT_IN_CREATIVE_MENU);
-        PORTAL_PARADISE = new PortalBlock("portal.paradise", "minecraft:block/portal_paradise", 831, 2, GLOWSTONE.id, BEDROCK.id).withSound(BlockSounds.GLASS).withHardness(-1F).withLightEmission(0.75f).withOverrideColor(MaterialColor.paintedPurple).withDisabledStats()
+        PORTAL_PARADISE = new BlockPortal("portal.paradise", "minecraft:block/portal_paradise", 831, 2, GLOWSTONE.id, BEDROCK.id).withSound(BlockSounds.GLASS).withHardness(-1F).withLightEmission(0.75f).withOverrideColor(MaterialColor.paintedPurple).withDisabledStats()
             .withTags(BlockTags.BROKEN_BY_FLUIDS, BlockTags.NOT_IN_CREATIVE_MENU);
 
-        CAKE = new CakeBlock("cake", "minecraft:block/cake", 840).withHardness(0.5F).withSound(BlockSounds.CLOTH).withDisabledNeighborNotifyOnMetadataChange().setStatParent(() -> Items.FOOD_CAKE)
+        CAKE = new BlockCake("cake", "minecraft:block/cake", 840).withHardness(0.5F).withSound(BlockSounds.CLOTH).withDisabledNeighborNotifyOnMetadataChange().setStatParent(() -> Items.FOOD_CAKE)
             .withTags(BlockTags.BROKEN_BY_FLUIDS, BlockTags.NOT_IN_CREATIVE_MENU);
-        PUMPKIN_PIE = new PumpkinPieBlock("pumpkin_pie", "minecraft:block/pumpkin_pie", 841).withSound(BlockSounds.CLOTH).withHardness(0.5F).withDisabledNeighborNotifyOnMetadataChange().withOverrideColor(MaterialColor.paintedOrange).setStatParent(() -> Items.FOOD_PUMPKIN_PIE)
+        PUMPKIN_PIE = new BlockPiePumpkin("pumpkin_pie", "minecraft:block/pumpkin_pie", 841).withSound(BlockSounds.CLOTH).withHardness(0.5F).withDisabledNeighborNotifyOnMetadataChange().withOverrideColor(MaterialColor.paintedOrange).setStatParent(() -> Items.FOOD_PUMPKIN_PIE)
             .withTags(BlockTags.BROKEN_BY_FLUIDS, BlockTags.NOT_IN_CREATIVE_MENU);
 
-        LAMP_IDLE = new LampBlock("lamp.idle", "minecraft:block/lamp_idle", 850, false).withSound(BlockSounds.GLASS).withHardness(0.5F).withDisabledNeighborNotifyOnMetadataChange()
-            .setBlockItem((b) -> new LampBlockItem(b))
+        LAMP_IDLE = new BlockLamp("lamp.idle", "minecraft:block/lamp_idle", 850, false).withSound(BlockSounds.GLASS).withHardness(0.5F).withDisabledNeighborNotifyOnMetadataChange()
+            .setBlockItem((b) -> new ItemBlockLamp(b))
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        LAMP_ACTIVE = new LampBlock("lamp.active", "minecraft:block/lamp_active", 851, true).withSound(BlockSounds.GLASS).withLightEmission(0.9375F).withHardness(0.5F).withDisabledNeighborNotifyOnMetadataChange().setStatParent(() -> LAMP_IDLE)
+        LAMP_ACTIVE = new BlockLamp("lamp.active", "minecraft:block/lamp_active", 851, true).withSound(BlockSounds.GLASS).withLightEmission(0.9375F).withHardness(0.5F).withDisabledNeighborNotifyOnMetadataChange().setStatParent(() -> LAMP_IDLE)
             .withTags(BlockTags.NOT_IN_CREATIVE_MENU, BlockTags.MINEABLE_BY_PICKAXE);
 
-        LANTERN_FIREFLY_GREEN = new FireflyLanternBlock("lantern.firefly.green", "minecraft:block/lantern_firefly_green", 870, FireflyClusterMob.FireflyColor.GREEN, () -> Items.LANTERN_FIREFLY_GREEN).withSound(BlockSounds.GLASS).withHardness(0.1F).withLightEmission(0.9375F).withDisabledNeighborNotifyOnMetadataChange().setStatParent(() -> Items.LANTERN_FIREFLY_GREEN)
+        LANTERN_FIREFLY_GREEN = new BlockLanternFirefly("lantern.firefly.green", "minecraft:block/lantern_firefly_green", 870, MobFireflyCluster.FireflyColor.GREEN, () -> Items.LANTERN_FIREFLY_GREEN).withSound(BlockSounds.GLASS).withHardness(0.1F).withLightEmission(0.9375F).withDisabledNeighborNotifyOnMetadataChange().setStatParent(() -> Items.LANTERN_FIREFLY_GREEN)
             .withTags(BlockTags.BROKEN_BY_FLUIDS, BlockTags.MINEABLE_BY_PICKAXE, BlockTags.NOT_IN_CREATIVE_MENU);
-        LANTERN_FIREFLY_BLUE = new FireflyLanternBlock("lantern.firefly.blue", "minecraft:block/lantern_firefly_blue", 871, FireflyClusterMob.FireflyColor.BLUE, () -> Items.LANTERN_FIREFLY_BLUE).withSound(BlockSounds.GLASS).withHardness(0.1F).withLightEmission(0.9375F).withDisabledNeighborNotifyOnMetadataChange().setStatParent(() -> Items.LANTERN_FIREFLY_BLUE)
+        LANTERN_FIREFLY_BLUE = new BlockLanternFirefly("lantern.firefly.blue", "minecraft:block/lantern_firefly_blue", 871, MobFireflyCluster.FireflyColor.BLUE, () -> Items.LANTERN_FIREFLY_BLUE).withSound(BlockSounds.GLASS).withHardness(0.1F).withLightEmission(0.9375F).withDisabledNeighborNotifyOnMetadataChange().setStatParent(() -> Items.LANTERN_FIREFLY_BLUE)
             .withTags(BlockTags.BROKEN_BY_FLUIDS, BlockTags.MINEABLE_BY_PICKAXE, BlockTags.NOT_IN_CREATIVE_MENU);
-        LANTERN_FIREFLY_ORANGE = new FireflyLanternBlock("lantern.firefly.orange", "minecraft:block/lantern_firefly_orange", 872, FireflyClusterMob.FireflyColor.ORANGE, () -> Items.LANTERN_FIREFLY_ORANGE).withSound(BlockSounds.GLASS).withHardness(0.1F).withLightEmission(0.9375F).withDisabledNeighborNotifyOnMetadataChange().setStatParent(() -> Items.LANTERN_FIREFLY_ORANGE)
+        LANTERN_FIREFLY_ORANGE = new BlockLanternFirefly("lantern.firefly.orange", "minecraft:block/lantern_firefly_orange", 872, MobFireflyCluster.FireflyColor.ORANGE, () -> Items.LANTERN_FIREFLY_ORANGE).withSound(BlockSounds.GLASS).withHardness(0.1F).withLightEmission(0.9375F).withDisabledNeighborNotifyOnMetadataChange().setStatParent(() -> Items.LANTERN_FIREFLY_ORANGE)
             .withTags(BlockTags.BROKEN_BY_FLUIDS, BlockTags.MINEABLE_BY_PICKAXE, BlockTags.NOT_IN_CREATIVE_MENU);
-        LANTERN_FIREFLY_RED = new FireflyLanternBlock("lantern.firefly.red", "minecraft:block/lantern_firefly_red", 873, FireflyClusterMob.FireflyColor.RED, () -> Items.LANTERN_FIREFLY_RED).withSound(BlockSounds.GLASS).withHardness(0.1F).withLightEmission(0.9375F).withDisabledNeighborNotifyOnMetadataChange().setStatParent(() -> Items.LANTERN_FIREFLY_RED)
+        LANTERN_FIREFLY_RED = new BlockLanternFirefly("lantern.firefly.red", "minecraft:block/lantern_firefly_red", 873, MobFireflyCluster.FireflyColor.RED, () -> Items.LANTERN_FIREFLY_RED).withSound(BlockSounds.GLASS).withHardness(0.1F).withLightEmission(0.9375F).withDisabledNeighborNotifyOnMetadataChange().setStatParent(() -> Items.LANTERN_FIREFLY_RED)
             .withTags(BlockTags.BROKEN_BY_FLUIDS, BlockTags.MINEABLE_BY_PICKAXE, BlockTags.NOT_IN_CREATIVE_MENU);
-        JAR_GLASS = new JarBlock("jar.glass", "minecraft:block/jar_glass", 874, () -> Items.JAR).withSound(BlockSounds.GLASS).withHardness(0.1F).withDisabledNeighborNotifyOnMetadataChange().setStatParent(() -> Items.JAR)
+        JAR_GLASS = new BlockJar("jar.glass", "minecraft:block/jar_glass", 874, () -> Items.JAR).withSound(BlockSounds.GLASS).withHardness(0.1F).withDisabledNeighborNotifyOnMetadataChange().setStatParent(() -> Items.JAR)
             .withTags(BlockTags.BROKEN_BY_FLUIDS, BlockTags.MINEABLE_BY_PICKAXE, BlockTags.NOT_IN_CREATIVE_MENU);
 
-        OVERLAY_PEBBLES = new OverlayPebblesBlock("overlay.pebbles", "minecraft:block/overlay_pebbles", 880, Material.decoration).withSound(BlockSounds.STONE).withHardness(0.0F).withDisabledNeighborNotifyOnMetadataChange().setStatParent(() -> Items.AMMO_PEBBLE)
+        OVERLAY_PEBBLES = new BlockOverlayPebbles("overlay.pebbles", "minecraft:block/overlay_pebbles", 880, Material.decoration).withSound(BlockSounds.STONE).withHardness(0.0F).withDisabledNeighborNotifyOnMetadataChange().setStatParent(() -> Items.AMMO_PEBBLE)
             .withTags(BlockTags.BROKEN_BY_FLUIDS, BlockTags.NOT_IN_CREATIVE_MENU);
 
-        FENCE_CHAINLINK = new ChainlinkFenceBlock("fence.chainlink", "minecraft:block/fence_chainlink", 890, Material.metal).withSound(BlockSounds.METAL).withHardness(5F)
+        FENCE_CHAINLINK = new BlockFenceChainlink("fence.chainlink", "minecraft:block/fence_chainlink", 890, Material.metal).withSound(BlockSounds.METAL).withHardness(5F)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE, BlockTags.CHAINLINK_FENCES_CONNECT, BlockTags.CAN_HANG_OFF);
-        FENCE_PAPER_WALL = new PaperWallFenceBlock("fence.paper_wall", "minecraft:block/fence_paper_wall", 891, Material.cloth).withSound(BlockSounds.CLOTH).withHardness(0.5F)
+        FENCE_PAPER_WALL = new BlockFenceWallPaper("fence.paper_wall", "minecraft:block/fence_paper_wall", 891, Material.cloth).withSound(BlockSounds.CLOTH).withHardness(0.5F)
             .withTags(BlockTags.MINEABLE_BY_SHEARS, BlockTags.FENCES_CONNECT, BlockTags.CAN_HANG_OFF, BlockTags.MINEABLE_BY_AXE);
-        FENCE_STEEL = new SteelFenceBlock("fence.steel", "minecraft:block/fence_steel", 892, Material.metal).withSound(BlockSounds.METAL).withHardness(8F).withOverrideColor(MaterialColor.steel).withBlastResistance(2000F)
+        FENCE_STEEL = new BlockFenceSteel("fence.steel", "minecraft:block/fence_steel", 892, Material.metal).withSound(BlockSounds.METAL).withHardness(8F).withOverrideColor(MaterialColor.steel).withBlastResistance(2000F)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE, BlockTags.CHAINLINK_FENCES_CONNECT, BlockTags.CAN_HANG_OFF);
 
-        BASKET = new BasketBlock("basket", "minecraft:block/basket", 900, Material.cloth).withSound(BlockSounds.CLOTH).withHardness(0.5F).withOverrideColor(MaterialColor.wood).setStatParent(() -> Items.BASKET)
+        BASKET = new BlockBasket("basket", "minecraft:block/basket", 900, Material.cloth).withSound(BlockSounds.CLOTH).withHardness(0.5F).withOverrideColor(MaterialColor.wood).setStatParent(() -> Items.BASKET)
             .withTags(BlockTags.NOT_IN_CREATIVE_MENU);
 
         PAPER_WALL = new Block("paper_wall", "minecraft:block/paper_wall", 910, Material.cloth).withSound(BlockSounds.CLOTH).withHardness(0.7F)
             .withTags(BlockTags.MINEABLE_BY_SHEARS, BlockTags.FENCES_CONNECT, BlockTags.CAN_HANG_OFF, BlockTags.MINEABLE_BY_AXE);
 
-        SLAB_BRICK_SANDSTONE = new SlabBlock(BRICK_SANDSTONE, "minecraft:block/slab_brick_sandstone", 1000).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
+        SLAB_BRICK_SANDSTONE = new BlockSlab(BRICK_SANDSTONE, "minecraft:block/slab_brick_sandstone", 1000).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        SLAB_COBBLE_PERMAFROST = new SlabBlock(COBBLE_PERMAFROST, "minecraft:block/slab_cobble_permafrost", 1001).withSound(BlockSounds.PERMAFROST).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
+        SLAB_COBBLE_PERMAFROST = new BlockSlab(COBBLE_PERMAFROST, "minecraft:block/slab_cobble_permafrost", 1001).withSound(BlockSounds.PERMAFROST).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        SLAB_BRICK_PERMAFROST = new SlabBlock(BRICK_PERMAFROST, "minecraft:block/slab_brick_permafrost", 1002).withSound(BlockSounds.PERMAFROST).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
+        SLAB_BRICK_PERMAFROST = new BlockSlab(BRICK_PERMAFROST, "minecraft:block/slab_brick_permafrost", 1002).withSound(BlockSounds.PERMAFROST).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        SLAB_PERMAFROST_POLISHED = new SlabBlock(PERMAFROST_CARVED, "minecraft:block/slab_permafrost_polished", 1003).withSound(BlockSounds.PERMAFROST).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
+        SLAB_PERMAFROST_POLISHED = new BlockSlab(PERMAFROST_CARVED, "minecraft:block/slab_permafrost_polished", 1003).withSound(BlockSounds.PERMAFROST).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
     }
 }
diff --git a/src/main/java/net/minecraft/core/block/entity/BlockEntityDispatcher.java b/src/main/java/net/minecraft/core/block/entity/BlockEntityDispatcher.java
deleted file mode 100644
index 69971c553..000000000
--- a/src/main/java/net/minecraft/core/block/entity/BlockEntityDispatcher.java
+++ /dev/null
@@ -1,85 +0,0 @@
-package net.minecraft.core.block.entity;
-
-import com.mojang.logging.LogUtils;
-import com.mojang.nbt.CompoundTag;
-import net.minecraft.core.block.piston.MovingPistonBlockEntity;
-import org.slf4j.Logger;
-
-import java.util.HashMap;
-import java.util.Map;
-
-public class BlockEntityDispatcher {
-    private static final Logger LOGGER = LogUtils.getLogger();
-
-    private static final Map<String, Class<? extends BlockEntity>> nameToClassMap = new HashMap<>();
-    private static final Map<Class<? extends BlockEntity>, String> classToNameMap = new HashMap<>();
-
-    public static void addMapping(Class<? extends BlockEntity> entityClass, String name)
-    {
-        if(nameToClassMap.containsKey(name))
-        {
-            throw new IllegalArgumentException("Duplicate id: " + name);
-        } else
-        {
-            nameToClassMap.put(name, entityClass);
-            classToNameMap.put(entityClass, name);
-        }
-    }
-
-    public static BlockEntity createAndLoadEntity(CompoundTag nbttagcompound)
-    {
-        BlockEntity blockEntity = null;
-        Class<? extends BlockEntity> entityClass = nameToClassMap.get(nbttagcompound.getString("id"));
-        try
-        {
-            if(entityClass != null)
-            {
-                blockEntity = entityClass.newInstance();
-            }
-        }
-        catch(Exception exception)
-        {
-            LOGGER.error("Exception when instancing class '{}'!", entityClass.getSimpleName(), exception);
-        }
-        if(blockEntity != null)
-        {
-            blockEntity.readFromNBT(nbttagcompound);
-        } else
-        {
-            LOGGER.warn("Skipping BlockEntity with id {}", nbttagcompound.getString("id"));
-        }
-        return blockEntity;
-    }
-
-    public static Class<? extends BlockEntity> getClassFromID(String id)
-    {
-        return nameToClassMap.get(id);
-    }
-
-    public static String getIDFromClass(Class<? extends BlockEntity> clazz)
-    {
-        return classToNameMap.get(clazz);
-    }
-
-    static
-    {
-        // TODO make these ids namespaced
-        addMapping(FurnaceBlockEntity.class, "Furnace");
-        addMapping(ChestBlockEntity.class, "Chest");
-        addMapping(JukeboxBlockEntity.class, "RecordPlayer");
-        addMapping(DispenserBlockEntity.class, "Trap");
-        addMapping(ActivatorBlockEntity.class, "Activator");
-        addMapping(SignBlockEntity.class, "Sign");
-        addMapping(MobSpawnerBlockEntity.class, "MobSpawner");
-        addMapping(NoteBlockEntity.class, "Music");
-        addMapping(MovingPistonBlockEntity.class, "Piston");
-        addMapping(BlastFurnaceBlockEntity.class, "BlastFurnace");
-        addMapping(SensorBlockEntity.class, "Sensor");
-        addMapping(TrommelBlockEntity.class, "Trommel");
-        addMapping(BasketBlockEntity.class, "Basket");
-        addMapping(FlagBlockEntity.class, "Flag");
-        addMapping(SeatBlockEntity.class, "Seat");
-        addMapping(FlowerJarBlockEntity.class, "FlowerJar");
-        addMapping(GoldMeshBlockEntity.class, "MeshGold");
-    }
-}
diff --git a/src/main/java/net/minecraft/core/block/entity/BlockEntity.java b/src/main/java/net/minecraft/core/block/entity/TileEntity.java
similarity index 96%
rename from src/main/java/net/minecraft/core/block/entity/BlockEntity.java
rename to src/main/java/net/minecraft/core/block/entity/TileEntity.java
index ee82ac748..85f29fc2e 100644
--- a/src/main/java/net/minecraft/core/block/entity/BlockEntity.java
+++ b/src/main/java/net/minecraft/core/block/entity/TileEntity.java
@@ -12,10 +12,9 @@ import net.minecraft.core.util.helper.MathHelper;
 import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.world.ICarriable;
 import net.minecraft.core.world.World;
-import net.minecraft.core.world.chunk.Chunk;
 import org.jetbrains.annotations.Nullable;
 
-public class BlockEntity implements ICarriable
+public class TileEntity implements ICarriable
 {
     public @Nullable World worldObj; // Null when loading data from nbt and null when held by entity
     public @Nullable CarriedBlock carriedBlock;
@@ -24,7 +23,7 @@ public class BlockEntity implements ICarriable
     public int z;
     protected boolean tileEntityInvalid;
 
-    public BlockEntity()
+    public TileEntity()
     {
     }
 
@@ -103,7 +102,7 @@ public class BlockEntity implements ICarriable
 
     public void writeToNBT(CompoundTag nbttagcompound)
     {
-        String name = BlockEntityDispatcher.getIDFromClass(getClass());
+        String name = TileEntityDispatcher.getIDFromClass(getClass());
         if(name == null)
         {
             throw new RuntimeException(getClass() + " is missing a mapping! This is a bug!");
diff --git a/src/main/java/net/minecraft/core/block/entity/ActivatorBlockEntity.java b/src/main/java/net/minecraft/core/block/entity/TileEntityActivator.java
similarity index 95%
rename from src/main/java/net/minecraft/core/block/entity/ActivatorBlockEntity.java
rename to src/main/java/net/minecraft/core/block/entity/TileEntityActivator.java
index f7f773848..dd6b623f9 100644
--- a/src/main/java/net/minecraft/core/block/entity/ActivatorBlockEntity.java
+++ b/src/main/java/net/minecraft/core/block/entity/TileEntityActivator.java
@@ -3,10 +3,10 @@ package net.minecraft.core.block.entity;
 import com.mojang.nbt.CompoundTag;
 import com.mojang.nbt.ListTag;
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.RotatableBlock;
+import net.minecraft.core.block.BlockRotatable;
 import net.minecraft.core.block.motion.CarriedBlock;
 import net.minecraft.core.entity.Entity;
-import net.minecraft.core.entity.ItemEntity;
+import net.minecraft.core.entity.EntityItem;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.player.inventory.container.Container;
@@ -15,14 +15,14 @@ import net.minecraft.core.world.World;
 
 import java.util.Random;
 
-public class ActivatorBlockEntity extends BlockEntity implements Container {
+public class TileEntityActivator extends TileEntity implements Container {
     public static final int CONTAINER_SIZE = 9;
     private ItemStack[] dispenserContents;
     private final Random random;
     public short lockedSlotBitSet;
     public int stackSelector = 0;
 
-    public ActivatorBlockEntity()
+    public TileEntityActivator()
     {
         dispenserContents = new ItemStack[CONTAINER_SIZE];
         random = new Random();
@@ -217,7 +217,7 @@ public class ActivatorBlockEntity extends BlockEntity implements Container {
                     i1 = itemstack.stackSize;
                 }
                 itemstack.stackSize -= i1;
-                ItemEntity item = new ItemEntity(world, (float) x + f, (float) y + f1, (float) z + f2, new ItemStack(itemstack.itemID, i1, itemstack.getMetadata()));
+                EntityItem item = new EntityItem(world, (float) x + f, (float) y + f1, (float) z + f2, new ItemStack(itemstack.itemID, i1, itemstack.getMetadata()));
                 float f3 = 0.05F;
                 item.xd = (float) random.nextGaussian() * f3;
                 item.yd = (float) random.nextGaussian() * f3 + 0.2F;
@@ -234,6 +234,6 @@ public class ActivatorBlockEntity extends BlockEntity implements Container {
 
     @Override
     public CarriedBlock getCarriedEntry(World world, Entity holder, Block currentBlock, int currentMeta) {
-        return super.getCarriedEntry(world, holder, currentBlock, RotatableBlock.setDirection(currentMeta, Direction.NORTH) /*Reset rotation, primarily to make it render in hand properly*/);
+        return super.getCarriedEntry(world, holder, currentBlock, BlockRotatable.setDirection(currentMeta, Direction.NORTH) /*Reset rotation, primarily to make it render in hand properly*/);
     }
 }
diff --git a/src/main/java/net/minecraft/core/block/entity/BasketBlockEntity.java b/src/main/java/net/minecraft/core/block/entity/TileEntityBasket.java
similarity index 97%
rename from src/main/java/net/minecraft/core/block/entity/BasketBlockEntity.java
rename to src/main/java/net/minecraft/core/block/entity/TileEntityBasket.java
index 5d0c24185..46d19805d 100644
--- a/src/main/java/net/minecraft/core/block/entity/BasketBlockEntity.java
+++ b/src/main/java/net/minecraft/core/block/entity/TileEntityBasket.java
@@ -4,7 +4,7 @@ import java.util.*;
 
 import net.minecraft.core.block.Blocks;
 import net.minecraft.core.entity.Entity;
-import net.minecraft.core.entity.ItemEntity;
+import net.minecraft.core.entity.EntityItem;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.item.Item;
 import net.minecraft.core.item.ItemStack;
@@ -15,7 +15,7 @@ import net.minecraft.core.net.packet.BlockEntityDataPacket;
 import net.minecraft.core.util.phys.AABB;
 import net.minecraft.core.world.World;
 
-public class BasketBlockEntity extends BlockEntity
+public class TileEntityBasket extends TileEntity
 {
     private int numUnitsInside = 0;
     private final Map<BasketEntry, Integer> contents = new HashMap<>();
@@ -60,7 +60,7 @@ public class BasketBlockEntity extends BlockEntity
             return;
         }
 
-        final ItemEntity item = new ItemEntity(workingWorld, x + f, y + f1, z + f2, itemstack);
+        final EntityItem item = new EntityItem(workingWorld, x + f, y + f1, z + f2, itemstack);
         final float f3 = 0.05F;
         item.xd = (float) rand.nextGaussian() * f3;
         item.yd = (float) rand.nextGaussian() * f3 + 0.25F;
@@ -142,7 +142,7 @@ public class BasketBlockEntity extends BlockEntity
 
         final AABB aabb = AABB.getTemporaryBB(posX, posY, posZ, posX + 1, posY + 2, posZ + 1);
 
-        final List<Entity> entities = workingWorld.getEntitiesWithinAABB(ItemEntity.class, aabb);
+        final List<Entity> entities = workingWorld.getEntitiesWithinAABB(EntityItem.class, aabb);
 
         boolean shouldUpdate = false;
 
@@ -150,7 +150,7 @@ public class BasketBlockEntity extends BlockEntity
         {
             for (final Entity e : entities)
             {
-                final ItemEntity entity = (ItemEntity) e;
+                final EntityItem entity = (EntityItem) e;
                 if (entity.item != null && entity.item.stackSize > 0 && entity.basketPickupDelay == 0)
                 {
                     shouldUpdate = importItemStack(entity.item);
diff --git a/src/main/java/net/minecraft/core/block/entity/ChestBlockEntity.java b/src/main/java/net/minecraft/core/block/entity/TileEntityChest.java
similarity index 91%
rename from src/main/java/net/minecraft/core/block/entity/ChestBlockEntity.java
rename to src/main/java/net/minecraft/core/block/entity/TileEntityChest.java
index 2d34a4b72..3b7846a7b 100644
--- a/src/main/java/net/minecraft/core/block/entity/ChestBlockEntity.java
+++ b/src/main/java/net/minecraft/core/block/entity/TileEntityChest.java
@@ -2,15 +2,15 @@ package net.minecraft.core.block.entity;
 
 
 // Referenced classes of package net.minecraft.src:
-//            BlockEntity, IInventory, ItemStack, NBTTagCompound,
+//            TileEntity, IInventory, ItemStack, NBTTagCompound,
 //            NBTTagList, World, Player
 
 import com.mojang.logging.LogUtils;
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.ChestBlock;
+import net.minecraft.core.block.BlockChest;
 import net.minecraft.core.block.motion.CarriedBlock;
 import net.minecraft.core.entity.Entity;
-import net.minecraft.core.entity.ItemEntity;
+import net.minecraft.core.entity.EntityItem;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.player.inventory.container.Container;
@@ -21,12 +21,12 @@ import net.minecraft.core.util.helper.Direction;
 import net.minecraft.core.world.World;
 import org.slf4j.Logger;
 
-public class ChestBlockEntity extends BlockEntity
+public class TileEntityChest extends TileEntity
     implements Container
 {
     private static final Logger LOGGER = LogUtils.getLogger();
 
-    public ChestBlockEntity()
+    public TileEntityChest()
     {
         chestContents = new ItemStack[36];
     }
@@ -148,7 +148,7 @@ public class ChestBlockEntity extends BlockEntity
         for(int i = 0; i < this.getContainerSize(); i++) {
             ItemStack itemStack = this.getItem(i);
             if(itemStack == null) continue;
-            ItemEntity item = world.dropItem(x, y, z, itemStack);
+            EntityItem item = world.dropItem(x, y, z, itemStack);
             item.xd *= 0.5;
             item.yd *= 0.5;
             item.zd *= 0.5;
@@ -163,7 +163,7 @@ public class ChestBlockEntity extends BlockEntity
 
     @Override
     public CarriedBlock getCarriedEntry(World world, Entity holder, Block currentBlock, int currentMeta) {
-        return super.getCarriedEntry(world, holder, currentBlock, ChestBlock.getMetaWithDirection(ChestBlock.getMetaWithType(currentMeta, ChestBlock.Type.SINGLE), Direction.NORTH));
+        return super.getCarriedEntry(world, holder, currentBlock, BlockChest.getMetaWithDirection(BlockChest.getMetaWithType(currentMeta, BlockChest.Type.SINGLE), Direction.NORTH));
     }
 
     private ItemStack[] chestContents;
diff --git a/src/main/java/net/minecraft/core/block/entity/TileEntityDispatcher.java b/src/main/java/net/minecraft/core/block/entity/TileEntityDispatcher.java
new file mode 100644
index 000000000..d28ff8a4b
--- /dev/null
+++ b/src/main/java/net/minecraft/core/block/entity/TileEntityDispatcher.java
@@ -0,0 +1,85 @@
+package net.minecraft.core.block.entity;
+
+import com.mojang.logging.LogUtils;
+import com.mojang.nbt.CompoundTag;
+import net.minecraft.core.block.piston.TileEntityMovingPistonBlock;
+import org.slf4j.Logger;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class TileEntityDispatcher {
+    private static final Logger LOGGER = LogUtils.getLogger();
+
+    private static final Map<String, Class<? extends TileEntity>> nameToClassMap = new HashMap<>();
+    private static final Map<Class<? extends TileEntity>, String> classToNameMap = new HashMap<>();
+
+    public static void addMapping(Class<? extends TileEntity> entityClass, String name)
+    {
+        if(nameToClassMap.containsKey(name))
+        {
+            throw new IllegalArgumentException("Duplicate id: " + name);
+        } else
+        {
+            nameToClassMap.put(name, entityClass);
+            classToNameMap.put(entityClass, name);
+        }
+    }
+
+    public static TileEntity createAndLoadEntity(CompoundTag nbttagcompound)
+    {
+        TileEntity tileEntity = null;
+        Class<? extends TileEntity> entityClass = nameToClassMap.get(nbttagcompound.getString("id"));
+        try
+        {
+            if(entityClass != null)
+            {
+                tileEntity = entityClass.newInstance();
+            }
+        }
+        catch(Exception exception)
+        {
+            LOGGER.error("Exception when instancing class '{}'!", entityClass.getSimpleName(), exception);
+        }
+        if(tileEntity != null)
+        {
+            tileEntity.readFromNBT(nbttagcompound);
+        } else
+        {
+            LOGGER.warn("Skipping TileEntity with id {}", nbttagcompound.getString("id"));
+        }
+        return tileEntity;
+    }
+
+    public static Class<? extends TileEntity> getClassFromID(String id)
+    {
+        return nameToClassMap.get(id);
+    }
+
+    public static String getIDFromClass(Class<? extends TileEntity> clazz)
+    {
+        return classToNameMap.get(clazz);
+    }
+
+    static
+    {
+        // TODO make these ids namespaced
+        addMapping(TileEntityFurnace.class, "Furnace");
+        addMapping(TileEntityChest.class, "Chest");
+        addMapping(TileEntityJukebox.class, "RecordPlayer");
+        addMapping(TileEntityDispenser.class, "Trap");
+        addMapping(TileEntityActivator.class, "Activator");
+        addMapping(TileEntitySign.class, "Sign");
+        addMapping(TileEntityMobSpawner.class, "MobSpawner");
+        addMapping(TileEntityNoteblock.class, "Music");
+        addMapping(TileEntityMovingPistonBlock.class, "Piston");
+        addMapping(TileEntityFurnaceBlastFurnace.class, "BlastFurnace");
+        addMapping(TileEntitySensor.class, "Sensor");
+        addMapping(TileEntityTrommel.class, "Trommel");
+        addMapping(TileEntityBasket.class, "Basket");
+        addMapping(TileEntityFlag.class, "Flag");
+        addMapping(TileEntitySeat.class, "Seat");
+        addMapping(TileEntityFlowerJar.class, "FlowerJar");
+        addMapping(TileEntityMeshGold.class, "MeshGold");
+    }
+}
diff --git a/src/main/java/net/minecraft/core/block/entity/DispenserBlockEntity.java b/src/main/java/net/minecraft/core/block/entity/TileEntityDispenser.java
similarity index 95%
rename from src/main/java/net/minecraft/core/block/entity/DispenserBlockEntity.java
rename to src/main/java/net/minecraft/core/block/entity/TileEntityDispenser.java
index 5e02514dc..aaf5ebfb1 100644
--- a/src/main/java/net/minecraft/core/block/entity/DispenserBlockEntity.java
+++ b/src/main/java/net/minecraft/core/block/entity/TileEntityDispenser.java
@@ -1,10 +1,10 @@
 package net.minecraft.core.block.entity;
 
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.RotatableBlock;
+import net.minecraft.core.block.BlockRotatable;
 import net.minecraft.core.block.motion.CarriedBlock;
 import net.minecraft.core.entity.Entity;
-import net.minecraft.core.entity.ItemEntity;
+import net.minecraft.core.entity.EntityItem;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.item.IDispensable;
 import net.minecraft.core.item.ItemStack;
@@ -16,11 +16,11 @@ import net.minecraft.core.world.World;
 
 import java.util.Random;
 
-public class DispenserBlockEntity extends BlockEntity
+public class TileEntityDispenser extends TileEntity
     implements Container
 {
 
-    public DispenserBlockEntity()
+    public TileEntityDispenser()
     {
         dispenserContents = new ItemStack[9];
         random = new Random();
@@ -190,7 +190,7 @@ public class DispenserBlockEntity extends BlockEntity
                     i1 = itemstack.stackSize;
                 }
                 itemstack.stackSize -= i1;
-                ItemEntity entityitem = new ItemEntity(world, (float) x + f, (float) y + f1, (float) z + f2, new ItemStack(itemstack.itemID, i1, itemstack.getMetadata()));
+                EntityItem entityitem = new EntityItem(world, (float) x + f, (float) y + f1, (float) z + f2, new ItemStack(itemstack.itemID, i1, itemstack.getMetadata()));
                 float f3 = 0.05F;
                 entityitem.xd = (float) random.nextGaussian() * f3;
                 entityitem.yd = (float) random.nextGaussian() * f3 + 0.2F;
@@ -207,7 +207,7 @@ public class DispenserBlockEntity extends BlockEntity
 
     @Override
     public CarriedBlock getCarriedEntry(World world, Entity holder, Block currentBlock, int currentMeta) {
-        return super.getCarriedEntry(world, holder, currentBlock, RotatableBlock.setDirection(currentMeta, Direction.NORTH) /*Reset rotation, primarily to make it render in hand properly*/);
+        return super.getCarriedEntry(world, holder, currentBlock, BlockRotatable.setDirection(currentMeta, Direction.NORTH) /*Reset rotation, primarily to make it render in hand properly*/);
     }
 
     private ItemStack dispenserContents[];
diff --git a/src/main/java/net/minecraft/core/block/entity/FlagBlockEntity.java b/src/main/java/net/minecraft/core/block/entity/TileEntityFlag.java
similarity index 98%
rename from src/main/java/net/minecraft/core/block/entity/FlagBlockEntity.java
rename to src/main/java/net/minecraft/core/block/entity/TileEntityFlag.java
index 9dbd9fd2c..c5171fa06 100644
--- a/src/main/java/net/minecraft/core/block/entity/FlagBlockEntity.java
+++ b/src/main/java/net/minecraft/core/block/entity/TileEntityFlag.java
@@ -6,7 +6,6 @@ import java.util.UUID;
 import com.mojang.nbt.CompoundTag;
 import com.mojang.nbt.ListTag;
 
-import net.minecraft.core.entity.Entity;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.item.Items;
 import net.minecraft.core.item.ItemStack;
@@ -14,10 +13,9 @@ import net.minecraft.core.net.packet.Packet;
 import net.minecraft.core.net.packet.BlockEntityDataPacket;
 import net.minecraft.core.player.inventory.container.Container;
 import net.minecraft.core.util.helper.UUIDHelper;
-import net.minecraft.core.world.World;
 import org.jetbrains.annotations.Nullable;
 
-public class FlagBlockEntity extends BlockEntity
+public class TileEntityFlag extends TileEntity
     implements Container
 {
     public final int CANVAS_WIDTH = 24;
@@ -33,7 +31,7 @@ public class FlagBlockEntity extends BlockEntity
     
     public int sway = new Random().nextInt(100); // Random start value
     
-    public FlagBlockEntity()
+    public TileEntityFlag()
     {
     }
     
diff --git a/src/main/java/net/minecraft/core/block/entity/FlowerJarBlockEntity.java b/src/main/java/net/minecraft/core/block/entity/TileEntityFlowerJar.java
similarity index 83%
rename from src/main/java/net/minecraft/core/block/entity/FlowerJarBlockEntity.java
rename to src/main/java/net/minecraft/core/block/entity/TileEntityFlowerJar.java
index ed04eedf6..d5064de3d 100644
--- a/src/main/java/net/minecraft/core/block/entity/FlowerJarBlockEntity.java
+++ b/src/main/java/net/minecraft/core/block/entity/TileEntityFlowerJar.java
@@ -2,15 +2,14 @@ package net.minecraft.core.block.entity;
 
 import com.mojang.nbt.CompoundTag;
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.StackedFlowerBlock;
+import net.minecraft.core.block.BlockFlowerStackable;
 import net.minecraft.core.block.tag.BlockTags;
-import net.minecraft.core.entity.Entity;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.net.packet.Packet;
 import net.minecraft.core.net.packet.BlockEntityDataPacket;
 import net.minecraft.core.world.World;
 
-public class FlowerJarBlockEntity extends BlockEntity {
+public class TileEntityFlowerJar extends TileEntity {
 
     public int flowerInPot;
     public int flowerData;
@@ -36,8 +35,8 @@ public class FlowerJarBlockEntity extends BlockEntity {
         super.dropContents(world, x, y, z);
         if (flowerInPot > 0 && Block.hasTag(flowerInPot, BlockTags.PLANTABLE_IN_JAR)) {
             if (!world.isClientSide) {
-                if (Block.getBlock(flowerInPot) instanceof StackedFlowerBlock) {
-                    world.dropItem(x, y, z, new ItemStack(flowerInPot, StackedFlowerBlock.getStackCount(flowerData) + 1, 0));
+                if (Block.getBlock(flowerInPot) instanceof BlockFlowerStackable) {
+                    world.dropItem(x, y, z, new ItemStack(flowerInPot, BlockFlowerStackable.getStackCount(flowerData) + 1, 0));
                 } else {
                     world.dropItem(x, y, z, new ItemStack(flowerInPot, 1, flowerData));
                 }
diff --git a/src/main/java/net/minecraft/core/block/entity/FurnaceBlockEntity.java b/src/main/java/net/minecraft/core/block/entity/TileEntityFurnace.java
similarity index 94%
rename from src/main/java/net/minecraft/core/block/entity/FurnaceBlockEntity.java
rename to src/main/java/net/minecraft/core/block/entity/TileEntityFurnace.java
index 0ad75e482..931c4e392 100644
--- a/src/main/java/net/minecraft/core/block/entity/FurnaceBlockEntity.java
+++ b/src/main/java/net/minecraft/core/block/entity/TileEntityFurnace.java
@@ -2,21 +2,21 @@ package net.minecraft.core.block.entity;
 
 
 // Referenced classes of package net.minecraft.src:
-//            BlockEntity, IInventory, ItemStack, NBTTagCompound,
-//            NBTTagList, World, FurnaceBlock, FurnaceRecipes,
+//            TileEntity, IInventory, ItemStack, NBTTagCompound,
+//            NBTTagList, World, BlockFurnace, FurnaceRecipes,
 //            Item, Block, Material, Player
 
 import com.mojang.nbt.CompoundTag;
 import com.mojang.nbt.ListTag;
 import net.minecraft.core.block.Block;
+import net.minecraft.core.block.BlockFurnace;
 import net.minecraft.core.block.Blocks;
-import net.minecraft.core.block.FurnaceBlock;
 import net.minecraft.core.block.motion.CarriedBlock;
 import net.minecraft.core.crafting.LookupFuelFurnace;
 import net.minecraft.core.data.registry.Registries;
 import net.minecraft.core.data.registry.recipe.entry.RecipeEntryFurnace;
 import net.minecraft.core.entity.Entity;
-import net.minecraft.core.entity.ItemEntity;
+import net.minecraft.core.entity.EntityItem;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.item.Items;
 import net.minecraft.core.item.ItemStack;
@@ -29,12 +29,12 @@ import net.minecraft.core.world.World;
 import java.util.List;
 import java.util.Random;
 
-public class FurnaceBlockEntity extends BlockEntity
+public class TileEntityFurnace extends TileEntity
         implements Container
 {
     private final Random random;
 
-    public FurnaceBlockEntity()
+    public TileEntityFurnace()
     {
         random = new Random();
         furnaceItemStacks = new ItemStack[3];
@@ -312,7 +312,7 @@ public class FurnaceBlockEntity extends BlockEntity
 
     protected void updateFurnace(boolean forceLit){
         if (worldObj != null) {
-            FurnaceBlock.updateFurnaceBlockState( forceLit | (currentBurnTime > 0), worldObj, x, y, z);
+            BlockFurnace.updateFurnaceBlockState( forceLit | (currentBurnTime > 0), worldObj, x, y, z);
         } else if (carriedBlock != null) {
             carriedBlock.blockId = (forceLit | (currentBurnTime > 0)) ? Blocks.FURNACE_STONE_ACTIVE.id : Blocks.FURNACE_STONE_IDLE.id;
         }
@@ -338,7 +338,7 @@ public class FurnaceBlockEntity extends BlockEntity
     @Override
     public void dropContents(World world, int x, int y, int z) {
         super.dropContents(world, x, y, z);
-        if(!FurnaceBlock.keepFurnaceInventory)
+        if(!BlockFurnace.keepFurnaceInventory)
         {
             label0:
             for(int l = 0; l < this.getContainerSize(); l++)
@@ -363,12 +363,12 @@ public class FurnaceBlockEntity extends BlockEntity
                         i1 = itemstack.stackSize;
                     }
                     itemstack.stackSize -= i1;
-                    ItemEntity itemEntity = new ItemEntity(world, (float) x + f, (float) y + f1, (float) z + f2, new ItemStack(itemstack.itemID, i1, itemstack.getMetadata()));
+                    EntityItem entityItem = new EntityItem(world, (float) x + f, (float) y + f1, (float) z + f2, new ItemStack(itemstack.itemID, i1, itemstack.getMetadata()));
                     float f3 = 0.05F;
-                    itemEntity.xd = (float)random.nextGaussian() * f3;
-                    itemEntity.yd = (float)random.nextGaussian() * f3 + 0.2F;
-                    itemEntity.zd = (float)random.nextGaussian() * f3;
-                    world.entityJoinedWorld(itemEntity);
+                    entityItem.xd = (float)random.nextGaussian() * f3;
+                    entityItem.yd = (float)random.nextGaussian() * f3 + 0.2F;
+                    entityItem.zd = (float)random.nextGaussian() * f3;
+                    world.entityJoinedWorld(entityItem);
                 } while(true);
             }
 
diff --git a/src/main/java/net/minecraft/core/block/entity/BlastFurnaceBlockEntity.java b/src/main/java/net/minecraft/core/block/entity/TileEntityFurnaceBlastFurnace.java
similarity index 95%
rename from src/main/java/net/minecraft/core/block/entity/BlastFurnaceBlockEntity.java
rename to src/main/java/net/minecraft/core/block/entity/TileEntityFurnaceBlastFurnace.java
index f19d28083..5d29ca1ba 100644
--- a/src/main/java/net/minecraft/core/block/entity/BlastFurnaceBlockEntity.java
+++ b/src/main/java/net/minecraft/core/block/entity/TileEntityFurnaceBlastFurnace.java
@@ -2,13 +2,13 @@ package net.minecraft.core.block.entity;
 
 
 // Referenced classes of package net.minecraft.src:
-//            BlockEntity, IInventory, ItemStack, NBTTagCompound,
-//            NBTTagList, World, FurnaceBlock, FurnaceRecipes,
+//            TileEntity, IInventory, ItemStack, NBTTagCompound,
+//            NBTTagList, World, BlockFurnace, FurnaceRecipes,
 //            Item, Block, Material, Player
 
 import com.mojang.nbt.CompoundTag;
 import com.mojang.nbt.ListTag;
-import net.minecraft.core.block.BlastFurnaceBlock;
+import net.minecraft.core.block.BlockFurnaceBlast;
 import net.minecraft.core.block.Blocks;
 import net.minecraft.core.crafting.LookupFuelFurnaceBlast;
 import net.minecraft.core.data.registry.Registries;
@@ -18,12 +18,12 @@ import net.minecraft.core.player.inventory.container.Container;
 
 import java.util.List;
 
-public class BlastFurnaceBlockEntity extends FurnaceBlockEntity
+public class TileEntityFurnaceBlastFurnace extends TileEntityFurnace
         implements Container
 {
 
 
-    public BlastFurnaceBlockEntity()
+    public TileEntityFurnaceBlastFurnace()
     {
         super();
         maxCookTime = 100;
@@ -144,7 +144,7 @@ public class BlastFurnaceBlockEntity extends FurnaceBlockEntity
     @Override
     protected void updateFurnace(boolean forceLit){
         if (worldObj != null) {
-            BlastFurnaceBlock.updateFurnaceBlockState(forceLit | (currentBurnTime > 0), worldObj, x, y, z);
+            BlockFurnaceBlast.updateFurnaceBlockState(forceLit | (currentBurnTime > 0), worldObj, x, y, z);
         } else if (carriedBlock != null) {
             carriedBlock.blockId = (forceLit | (currentBurnTime > 0)) ? Blocks.FURNACE_BLAST_ACTIVE.id : Blocks.FURNACE_BLAST_IDLE.id;
         }
diff --git a/src/main/java/net/minecraft/core/block/entity/JukeboxBlockEntity.java b/src/main/java/net/minecraft/core/block/entity/TileEntityJukebox.java
similarity index 89%
rename from src/main/java/net/minecraft/core/block/entity/JukeboxBlockEntity.java
rename to src/main/java/net/minecraft/core/block/entity/TileEntityJukebox.java
index 0c6fc6ebe..6fade50a7 100644
--- a/src/main/java/net/minecraft/core/block/entity/JukeboxBlockEntity.java
+++ b/src/main/java/net/minecraft/core/block/entity/TileEntityJukebox.java
@@ -2,19 +2,19 @@ package net.minecraft.core.block.entity;
 
 
 // Referenced classes of package net.minecraft.src:
-//            BlockEntity, NBTTagCompound
+//            TileEntity, NBTTagCompound
 
 import net.minecraft.core.block.Block;
-import net.minecraft.core.entity.ItemEntity;
+import net.minecraft.core.entity.EntityItem;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.world.LevelListener;
 import net.minecraft.core.world.World;
 import net.minecraft.core.world.save.conversion.ChunkConverter;
 import com.mojang.nbt.CompoundTag;
 
-public class JukeboxBlockEntity extends BlockEntity {
+public class TileEntityJukebox extends TileEntity {
     public int record;
-    public JukeboxBlockEntity() {
+    public TileEntityJukebox() {
     }
 
     @Override
@@ -49,7 +49,7 @@ public class JukeboxBlockEntity extends BlockEntity {
             double d = (double) (world.rand.nextFloat() * f) + (double) (1.0F - f) * 0.5D;
             double d1 = (double) (world.rand.nextFloat() * f) + (double) (1.0F - f) * 0.2D + 0.6D;
             double d2 = (double) (world.rand.nextFloat() * f) + (double) (1.0F - f) * 0.5D;
-            ItemEntity item = new ItemEntity(world, (double) x + d, (double) y + d1, (double) z + d2, new ItemStack(record, 1, 0));
+            EntityItem item = new EntityItem(world, (double) x + d, (double) y + d1, (double) z + d2, new ItemStack(record, 1, 0));
             item.pickupDelay = 10;
             world.entityJoinedWorld(item);
 
diff --git a/src/main/java/net/minecraft/core/block/entity/GoldMeshBlockEntity.java b/src/main/java/net/minecraft/core/block/entity/TileEntityMeshGold.java
similarity index 92%
rename from src/main/java/net/minecraft/core/block/entity/GoldMeshBlockEntity.java
rename to src/main/java/net/minecraft/core/block/entity/TileEntityMeshGold.java
index 144e26cab..4a072ba6d 100644
--- a/src/main/java/net/minecraft/core/block/entity/GoldMeshBlockEntity.java
+++ b/src/main/java/net/minecraft/core/block/entity/TileEntityMeshGold.java
@@ -1,7 +1,7 @@
 package net.minecraft.core.block.entity;
 
 import com.mojang.nbt.CompoundTag;
-import net.minecraft.core.entity.ItemEntity;
+import net.minecraft.core.entity.EntityItem;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.net.packet.Packet;
@@ -9,11 +9,11 @@ import net.minecraft.core.net.packet.BlockEntityDataPacket;
 import net.minecraft.core.world.World;
 import org.jetbrains.annotations.Nullable;
 
-public class GoldMeshBlockEntity extends BlockEntity {
+public class TileEntityMeshGold extends TileEntity {
     @Nullable
     public ItemStack filterItem;
     public int ticksRan = 0;
-    public GoldMeshBlockEntity() {
+    public TileEntityMeshGold() {
     }
 
     public void tick()
@@ -69,7 +69,7 @@ public class GoldMeshBlockEntity extends BlockEntity {
     public void dropContents(World world, int x, int y, int z) {
         super.dropContents(world, x, y, z);
         if (filterItem != null){
-            ItemEntity item = world.dropItem(x, y, z, filterItem);
+            EntityItem item = world.dropItem(x, y, z, filterItem);
             item.xd *= 0.5;
             item.yd *= 0.5;
             item.zd *= 0.5;
diff --git a/src/main/java/net/minecraft/core/block/entity/MobSpawnerBlockEntity.java b/src/main/java/net/minecraft/core/block/entity/TileEntityMobSpawner.java
similarity index 97%
rename from src/main/java/net/minecraft/core/block/entity/MobSpawnerBlockEntity.java
rename to src/main/java/net/minecraft/core/block/entity/TileEntityMobSpawner.java
index 26be181a2..d24f2fdea 100644
--- a/src/main/java/net/minecraft/core/block/entity/MobSpawnerBlockEntity.java
+++ b/src/main/java/net/minecraft/core/block/entity/TileEntityMobSpawner.java
@@ -1,7 +1,6 @@
 package net.minecraft.core.block.entity;
 
 import com.mojang.logging.LogUtils;
-import net.minecraft.core.entity.Entity;
 import net.minecraft.core.entity.EntityDispatcher;
 import net.minecraft.core.entity.Mob;
 import net.minecraft.core.enums.MobCategory;
@@ -11,12 +10,11 @@ import com.mojang.nbt.CompoundTag;
 import net.minecraft.core.net.packet.Packet;
 import net.minecraft.core.net.packet.SetMobSpawnerPacket;
 import net.minecraft.core.entity.SpawnListEntry;
-import net.minecraft.core.world.World;
 import org.slf4j.Logger;
 
 import java.util.List;
 
-public class MobSpawnerBlockEntity extends BlockEntity
+public class TileEntityMobSpawner extends TileEntity
 {
     private static final Logger LOGGER = LogUtils.getLogger();
     public int delay;
@@ -25,7 +23,7 @@ public class MobSpawnerBlockEntity extends BlockEntity
     public double yaw2;
     private int nearby;
 
-    public MobSpawnerBlockEntity()
+    public TileEntityMobSpawner()
     {
         delay = -1;
         yaw2 = 0.0D;
diff --git a/src/main/java/net/minecraft/core/block/entity/NoteBlockEntity.java b/src/main/java/net/minecraft/core/block/entity/TileEntityNoteblock.java
similarity index 70%
rename from src/main/java/net/minecraft/core/block/entity/NoteBlockEntity.java
rename to src/main/java/net/minecraft/core/block/entity/TileEntityNoteblock.java
index 38dfb7b99..7e00eb25b 100644
--- a/src/main/java/net/minecraft/core/block/entity/NoteBlockEntity.java
+++ b/src/main/java/net/minecraft/core/block/entity/TileEntityNoteblock.java
@@ -1,25 +1,25 @@
 package net.minecraft.core.block.entity;
 
 import net.minecraft.core.block.Blocks;
-import net.minecraft.core.block.NoteBlock;
+import net.minecraft.core.block.BlockNote;
 import com.mojang.nbt.CompoundTag;
 import net.minecraft.core.util.helper.MathHelper;
 
 @Deprecated
-public class NoteBlockEntity extends BlockEntity
+public class TileEntityNoteblock extends TileEntity
 {
 
 
     public byte note;
 
-    public NoteBlockEntity() {
+    public TileEntityNoteblock() {
         note = 0;
     }
 
     @Override
     public void tick() {
         if (worldObj.getBlock(x, y, z) == Blocks.NOTEBLOCK) { // Set note block pitch
-            worldObj.setBlockMetadata(x, y, z, NoteBlock.setNote(0, note));
+            worldObj.setBlockMetadata(x, y, z, BlockNote.setNote(0, note));
         }
         invalidate(); // Delete self
     }
@@ -33,7 +33,7 @@ public class NoteBlockEntity extends BlockEntity
     @Override
 	public void readFromNBT(CompoundTag tag) {
         super.readFromNBT(tag);
-        note = MathHelper.clamp(tag.getByte("note"), (byte) 0, NoteBlock.MAX_NOTE);
+        note = MathHelper.clamp(tag.getByte("note"), (byte) 0, BlockNote.MAX_NOTE);
     }
 
 }
diff --git a/src/main/java/net/minecraft/core/block/entity/SeatBlockEntity.java b/src/main/java/net/minecraft/core/block/entity/TileEntitySeat.java
similarity index 96%
rename from src/main/java/net/minecraft/core/block/entity/SeatBlockEntity.java
rename to src/main/java/net/minecraft/core/block/entity/TileEntitySeat.java
index 30727fdd7..9152d4e2c 100644
--- a/src/main/java/net/minecraft/core/block/entity/SeatBlockEntity.java
+++ b/src/main/java/net/minecraft/core/block/entity/TileEntitySeat.java
@@ -3,22 +3,21 @@ package net.minecraft.core.block.entity;
 import net.minecraft.core.block.Block;
 import net.minecraft.core.block.Blocks;
 import net.minecraft.core.entity.Entity;
-import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.util.helper.MathHelper;
 import net.minecraft.core.world.IVehicle;
 import net.minecraft.core.world.World;
 import com.mojang.nbt.CompoundTag;
 
-public class SeatBlockEntity
-    extends BlockEntity
+public class TileEntitySeat
+    extends TileEntity
     implements IVehicle {
     private Entity passenger;
 
     public Block seat;
-    public SeatBlockEntity() {
+    public TileEntitySeat() {
         this(null);
     }
-    public SeatBlockEntity(Block seat) {
+    public TileEntitySeat(Block seat) {
         passenger = null;
         this.seat = seat;
     }
diff --git a/src/main/java/net/minecraft/core/block/entity/SensorBlockEntity.java b/src/main/java/net/minecraft/core/block/entity/TileEntitySensor.java
similarity index 95%
rename from src/main/java/net/minecraft/core/block/entity/SensorBlockEntity.java
rename to src/main/java/net/minecraft/core/block/entity/TileEntitySensor.java
index ac2d70083..88e5f0514 100644
--- a/src/main/java/net/minecraft/core/block/entity/SensorBlockEntity.java
+++ b/src/main/java/net/minecraft/core/block/entity/TileEntitySensor.java
@@ -5,7 +5,7 @@ import java.util.List;
 import net.minecraft.core.achievement.Achievements;
 import net.minecraft.core.block.Block;
 import net.minecraft.core.block.Blocks;
-import net.minecraft.core.block.MotionSensorBlock;
+import net.minecraft.core.block.BlockMotionSensor;
 import net.minecraft.core.block.tag.BlockTags;
 import net.minecraft.core.entity.Entity;
 import net.minecraft.core.entity.player.Player;
@@ -15,7 +15,7 @@ import net.minecraft.core.util.helper.MathHelper;
 import net.minecraft.core.util.phys.AABB;
 import net.minecraft.core.world.World;
 
-public class SensorBlockEntity extends BlockEntity {
+public class TileEntitySensor extends TileEntity {
 
 	private int getSightRange(World world, double x, double y, double z, Direction facing) {
 		if(facing == Direction.NONE) {
@@ -71,7 +71,7 @@ public class SensorBlockEntity extends BlockEntity {
 		int meta = worldObj.getBlockMetadata(x, y, z);
 		
 		boolean shouldBeActive = false;
-		Direction facing = MotionSensorBlock.getFacingDirection(meta);
+		Direction facing = BlockMotionSensor.getFacingDirection(meta);
 		int effectiveRange = getSightRange(worldObj, x, y, z, facing);
 		if(effectiveRange > 0) {
 			AABB detectionBox = getDetectionBox(x, y, z, facing, effectiveRange);
@@ -106,7 +106,7 @@ public class SensorBlockEntity extends BlockEntity {
 		int meta = carriedBlock.metadata;
 
 		boolean shouldBeActive = false;
-		Direction facing = MotionSensorBlock.getFacingDirection(meta);
+		Direction facing = BlockMotionSensor.getFacingDirection(meta);
 		int effectiveRange = getSightRange(world, holder.x, holder.y, holder.z, facing);
 		if(effectiveRange > 0) {
 			AABB detectionBox = getDetectionBox(holder.x, holder.y, holder.z, facing, effectiveRange);
diff --git a/src/main/java/net/minecraft/core/block/entity/SignBlockEntity.java b/src/main/java/net/minecraft/core/block/entity/TileEntitySign.java
similarity index 95%
rename from src/main/java/net/minecraft/core/block/entity/SignBlockEntity.java
rename to src/main/java/net/minecraft/core/block/entity/TileEntitySign.java
index 46bc1c4c0..033b6e71e 100644
--- a/src/main/java/net/minecraft/core/block/entity/SignBlockEntity.java
+++ b/src/main/java/net/minecraft/core/block/entity/TileEntitySign.java
@@ -1,19 +1,17 @@
 package net.minecraft.core.block.entity;
 
 import com.mojang.nbt.CompoundTag;
-import net.minecraft.core.entity.Entity;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.enums.EnumSignPicture;
 import net.minecraft.core.net.command.TextFormatting;
 import net.minecraft.core.net.packet.Packet;
 import net.minecraft.core.net.packet.BlockEntityDataPacket;
 import net.minecraft.core.util.helper.UUIDHelper;
-import net.minecraft.core.world.World;
 import org.jetbrains.annotations.Nullable;
 
 import java.util.UUID;
 
-public class SignBlockEntity extends BlockEntity
+public class TileEntitySign extends TileEntity
 {
     public static final int MAX_LINE_SIZE = 15;
     public String[] signText = { "", "", "", "" };
@@ -23,7 +21,7 @@ public class SignBlockEntity extends BlockEntity
     private @Nullable UUID owner;
     private boolean glowing = false;
 
-    public SignBlockEntity()
+    public TileEntitySign()
     {
         lineBeingEdited = -1;
     }
diff --git a/src/main/java/net/minecraft/core/block/entity/TrommelBlockEntity.java b/src/main/java/net/minecraft/core/block/entity/TileEntityTrommel.java
similarity index 93%
rename from src/main/java/net/minecraft/core/block/entity/TrommelBlockEntity.java
rename to src/main/java/net/minecraft/core/block/entity/TileEntityTrommel.java
index 4d3f94909..fee933a60 100644
--- a/src/main/java/net/minecraft/core/block/entity/TrommelBlockEntity.java
+++ b/src/main/java/net/minecraft/core/block/entity/TileEntityTrommel.java
@@ -6,16 +6,16 @@ import com.mojang.nbt.CompoundTag;
 import com.mojang.nbt.ListTag;
 import net.minecraft.core.block.Block;
 import net.minecraft.core.block.Blocks;
-import net.minecraft.core.block.ChestBlock;
-import net.minecraft.core.block.TrommelBlock;
+import net.minecraft.core.block.BlockChest;
+import net.minecraft.core.block.BlockTrommel;
 import net.minecraft.core.block.motion.CarriedBlock;
 import net.minecraft.core.crafting.LookupFuelFurnace;
 import net.minecraft.core.data.DataLoader;
 import net.minecraft.core.data.registry.recipe.entry.RecipeEntryTrommel;
 import net.minecraft.core.data.registry.Registries;
 import net.minecraft.core.entity.Entity;
-import net.minecraft.core.entity.ItemEntity;
-import net.minecraft.core.entity.monster.SlimeMob;
+import net.minecraft.core.entity.EntityItem;
+import net.minecraft.core.entity.monster.MobSlime;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.item.Item;
 import net.minecraft.core.item.Items;
@@ -29,14 +29,13 @@ import org.slf4j.Logger;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.Objects;
 import java.util.Random;
 
-public class TrommelBlockEntity extends BlockEntity
+public class TileEntityTrommel extends TileEntity
         implements Container
 {
 
-    public TrommelBlockEntity()
+    public TileEntityTrommel()
     {
         itemStacks = new ItemStack[5];
         burnTime = 0;
@@ -187,7 +186,7 @@ public class TrommelBlockEntity extends BlockEntity
             			itemStacks[4].stackSize--;
             			if(itemStacks[4].stackSize <= 0) itemStacks[4] = null;
             			if (worldObj != null) {
-                            TrommelBlock.updateTrommelBlockState(true, worldObj, x, y, z);
+                            BlockTrommel.updateTrommelBlockState(true, worldObj, x, y, z);
                         } else if (carriedBlock != null) {
                             carriedBlock.blockId = Blocks.TROMMEL_ACTIVE.id;
                         }
@@ -235,7 +234,7 @@ public class TrommelBlockEntity extends BlockEntity
             {
                 flag1 = true;
                 if (worldObj != null) {
-                    TrommelBlock.updateTrommelBlockState(burnTime > 0, worldObj, x, y, z);
+                    BlockTrommel.updateTrommelBlockState(burnTime > 0, worldObj, x, y, z);
                 } else if (carriedBlock != null) {
                     carriedBlock.blockId = burnTime > 0 ? Blocks.TROMMEL_ACTIVE.id : Blocks.TROMMEL_IDLE.id;
                 }
@@ -292,9 +291,9 @@ public class TrommelBlockEntity extends BlockEntity
         	int adjacentId = worldObj != null ? worldObj.getBlockId(x + xOffset, y, z + zOffset) : 0;
         	
         	Container chest = null;
-        	if (Block.blocksList[adjacentId] instanceof ChestBlock) {
+        	if (Block.blocksList[adjacentId] instanceof BlockChest) {
                 assert worldObj != null;
-                chest = ChestBlock.getInventory(worldObj, x + xOffset, y, z + zOffset);
+                chest = BlockChest.getInventory(worldObj, x + xOffset, y, z + zOffset);
         	}
         	
         	if (chest != null)
@@ -337,18 +336,18 @@ public class TrommelBlockEntity extends BlockEntity
 
             float f = (((float) 1 - 0.5F)) / 4F;
             float f1 = (((float) 1 - 0.5F)) / 4F;
-            SlimeMob slimeMob = new SlimeMob(carriedBlock != null ? carriedBlock.world : worldObj);
-            slimeMob.setSlimeSize(1);
+            MobSlime mobSlime = new MobSlime(carriedBlock != null ? carriedBlock.world : worldObj);
+            mobSlime.setSlimeSize(1);
             float f3 = 0.05F;
-            slimeMob.xd = (float) random.nextGaussian() * f3;
-            slimeMob.yd = (float) random.nextGaussian() * f3 + 0.2F;
-            slimeMob.zd = (float) random.nextGaussian() * f3;
+            mobSlime.xd = (float) random.nextGaussian() * f3;
+            mobSlime.yd = (float) random.nextGaussian() * f3 + 0.2F;
+            mobSlime.zd = (float) random.nextGaussian() * f3;
             if (worldObj != null) {
-                slimeMob.moveTo(x + (double)f, y + 1D, z + (double)f1, random.nextFloat() * 360F, 0.0F);
-                worldObj.entityJoinedWorld(slimeMob);
+                mobSlime.moveTo(x + (double)f, y + 1D, z + (double)f1, random.nextFloat() * 360F, 0.0F);
+                worldObj.entityJoinedWorld(mobSlime);
             } else if (carriedBlock != null) {
-                slimeMob.moveTo(carriedBlock.holder.x + (double)f, carriedBlock.holder.y + carriedBlock.holder.heightOffset, carriedBlock.holder.z + (double)f1, random.nextFloat() * 360F, 0.0F);
-                carriedBlock.world.entityJoinedWorld(slimeMob);
+                mobSlime.moveTo(carriedBlock.holder.x + (double)f, carriedBlock.holder.y + carriedBlock.holder.heightOffset, carriedBlock.holder.z + (double)f1, random.nextFloat() * 360F, 0.0F);
+                carriedBlock.world.entityJoinedWorld(mobSlime);
             }
         }
     }
@@ -406,7 +405,7 @@ public class TrommelBlockEntity extends BlockEntity
     @Override
     public void dropContents(World world, int x, int y, int z) {
         super.dropContents(world, x, y, z);
-        if (!TrommelBlock.keepTrommelInventory)
+        if (!BlockTrommel.keepTrommelInventory)
         {
             if(world.getBlockEntity(x, y, z) != null)
             {
@@ -429,7 +428,7 @@ public class TrommelBlockEntity extends BlockEntity
                             i1 = itemstack.stackSize;
                         }
                         itemstack.stackSize -= i1;
-                        ItemEntity item = new ItemEntity(world, (float) x + f, (float) y + f1, (float) z + f2, new ItemStack(itemstack.itemID, i1, itemstack.getMetadata()));
+                        EntityItem item = new EntityItem(world, (float) x + f, (float) y + f1, (float) z + f2, new ItemStack(itemstack.itemID, i1, itemstack.getMetadata()));
                         float f3 = 0.05F;
                         item.xd = (float) random.nextGaussian() * f3;
                         item.yd = (float) random.nextGaussian() * f3 + 0.2F;
@@ -514,7 +513,7 @@ public class TrommelBlockEntity extends BlockEntity
 
 //        DataLoader.loadDataPacks(this);
 
-        TrommelBlockEntity trommel = new TrommelBlockEntity();
+        TileEntityTrommel trommel = new TileEntityTrommel();
         trommel.worldObj = new World();
 
         trommel.simulateTrommelDrops(10000, Blocks.DIRT.getDefaultStack());
diff --git a/src/main/java/net/minecraft/core/block/material/Material.java b/src/main/java/net/minecraft/core/block/material/Material.java
index 8bb721e26..69e27c55f 100644
--- a/src/main/java/net/minecraft/core/block/material/Material.java
+++ b/src/main/java/net/minecraft/core/block/material/Material.java
@@ -139,7 +139,7 @@ public class Material
     }
 
 
-    public static final Material air = new GasMaterial(MaterialColor.none);
+    public static final Material air = new MaterialGas(MaterialColor.none);
     public static final Material grass = new Material(MaterialColor.grass);
     public static final Material dirt = new Material(MaterialColor.dirt);
     public static final Material wood = new Material(MaterialColor.wood).flammable();
@@ -155,26 +155,26 @@ public class Material
 
     public static final Material metal = new Material(MaterialColor.metal).setConductivity(LIGHTNING_STRONG_CONDUCTOR).setAsMetal().notAlwaysDestroyable();
     public static final Material steel = new Material(MaterialColor.steel).setConductivity(LIGHTNING_STRONG_CONDUCTOR).setAsMetal().notAlwaysDestroyable();
-    public static final Material water = new LiquidMaterial(MaterialColor.water).setConductivity(LIGHTNING_LIGHT_CONDUCTOR).destroyOnPush();
-    public static final Material lava = new LiquidMaterial(MaterialColor.fire).destroyOnPush();
+    public static final Material water = new MaterialLiquid(MaterialColor.water).setConductivity(LIGHTNING_LIGHT_CONDUCTOR).destroyOnPush();
+    public static final Material lava = new MaterialLiquid(MaterialColor.fire).destroyOnPush();
     public static final Material leaves = new Material(MaterialColor.plant).flammable().notSolidBlocking().destroyOnPush();
-    public static final Material plant = new DecorationMaterial(MaterialColor.plant).destroyOnPush().replaceable();
+    public static final Material plant = new MaterialDecoration(MaterialColor.plant).destroyOnPush().replaceable();
     public static final Material sponge = new Material(MaterialColor.wool);
     public static final Material cloth = new Material(MaterialColor.wool).flammable();
-    public static final Material fire = new GasMaterial(MaterialColor.none).destroyOnPush();
+    public static final Material fire = new MaterialGas(MaterialColor.none).destroyOnPush();
     public static final Material sand = new Material(MaterialColor.sand);
     public static final Material soulsand = new Material(MaterialColor.paintedBrown);
-    public static final Material decoration = new DecorationMaterial(MaterialColor.none).destroyOnPush();
+    public static final Material decoration = new MaterialDecoration(MaterialColor.none).destroyOnPush();
     public static final Material glass = new Material(MaterialColor.none).setConductivity(LIGHTNING_STRONG_INSULATOR).notSolidBlocking();
     public static final Material explosive = new Material(MaterialColor.fire).flammable().notSolidBlocking();
     public static final Material coral = new Material(MaterialColor.plant).destroyOnPush();
     public static final Material ice = new Material(MaterialColor.ice).notSolidBlocking();
-    public static final Material topSnow = new DecorationMaterial(MaterialColor.snow).replaceable().notSolidBlocking().notAlwaysDestroyable().destroyOnPush();
+    public static final Material topSnow = new MaterialDecoration(MaterialColor.snow).replaceable().notSolidBlocking().notAlwaysDestroyable().destroyOnPush();
     public static final Material snow = new Material(MaterialColor.snow).notAlwaysDestroyable();
     public static final Material cactus = new Material(MaterialColor.plant).notSolidBlocking().destroyOnPush();
     public static final Material clay = new Material(MaterialColor.clay);
     public static final Material vegetable = new Material(MaterialColor.plant).destroyOnPush();
-    public static final Material portal = new PortalMaterial(MaterialColor.none).notPushable();
+    public static final Material portal = new MaterialPortal(MaterialColor.none).notPushable();
     public static final Material cake = new Material(MaterialColor.none).destroyOnPush();
     public static final Material web = new Material(MaterialColor.wool).notAlwaysDestroyable().destroyOnPush();
     public static final Material piston = new Material(MaterialColor.stone);
diff --git a/src/main/java/net/minecraft/core/block/material/DecorationMaterial.java b/src/main/java/net/minecraft/core/block/material/MaterialDecoration.java
similarity index 79%
rename from src/main/java/net/minecraft/core/block/material/DecorationMaterial.java
rename to src/main/java/net/minecraft/core/block/material/MaterialDecoration.java
index 541222963..cff0d9a52 100644
--- a/src/main/java/net/minecraft/core/block/material/DecorationMaterial.java
+++ b/src/main/java/net/minecraft/core/block/material/MaterialDecoration.java
@@ -4,10 +4,10 @@ package net.minecraft.core.block.material;
 // Referenced classes of package net.minecraft.src:
 //            Material, MapColor
 
-public class DecorationMaterial extends Material
+public class MaterialDecoration extends Material
 {
 
-    public DecorationMaterial(MaterialColor mapcolor)
+    public MaterialDecoration(MaterialColor mapcolor)
     {
         super(mapcolor);
     }
diff --git a/src/main/java/net/minecraft/core/block/material/GasMaterial.java b/src/main/java/net/minecraft/core/block/material/MaterialGas.java
similarity index 82%
rename from src/main/java/net/minecraft/core/block/material/GasMaterial.java
rename to src/main/java/net/minecraft/core/block/material/MaterialGas.java
index ef2a6399a..3efb73a86 100644
--- a/src/main/java/net/minecraft/core/block/material/GasMaterial.java
+++ b/src/main/java/net/minecraft/core/block/material/MaterialGas.java
@@ -4,10 +4,10 @@ package net.minecraft.core.block.material;
 // Referenced classes of package net.minecraft.src:
 //            Material, MapColor
 
-public class GasMaterial extends Material
+public class MaterialGas extends Material
 {
 
-    public GasMaterial(MaterialColor mapcolor)
+    public MaterialGas(MaterialColor mapcolor)
     {
         super(mapcolor);
         replaceable();
diff --git a/src/main/java/net/minecraft/core/block/material/LiquidMaterial.java b/src/main/java/net/minecraft/core/block/material/MaterialLiquid.java
similarity index 82%
rename from src/main/java/net/minecraft/core/block/material/LiquidMaterial.java
rename to src/main/java/net/minecraft/core/block/material/MaterialLiquid.java
index 6a3eb4c19..144a11813 100644
--- a/src/main/java/net/minecraft/core/block/material/LiquidMaterial.java
+++ b/src/main/java/net/minecraft/core/block/material/MaterialLiquid.java
@@ -4,10 +4,10 @@ package net.minecraft.core.block.material;
 // Referenced classes of package net.minecraft.src:
 //            Material, MapColor
 
-public class LiquidMaterial extends Material
+public class MaterialLiquid extends Material
 {
 
-    public LiquidMaterial(MaterialColor mapcolor)
+    public MaterialLiquid(MaterialColor mapcolor)
     {
         super(mapcolor);
         replaceable();
diff --git a/src/main/java/net/minecraft/core/block/material/PortalMaterial.java b/src/main/java/net/minecraft/core/block/material/MaterialPortal.java
similarity index 81%
rename from src/main/java/net/minecraft/core/block/material/PortalMaterial.java
rename to src/main/java/net/minecraft/core/block/material/MaterialPortal.java
index 071f17b88..8d2c8a165 100644
--- a/src/main/java/net/minecraft/core/block/material/PortalMaterial.java
+++ b/src/main/java/net/minecraft/core/block/material/MaterialPortal.java
@@ -4,10 +4,10 @@ package net.minecraft.core.block.material;
 // Referenced classes of package net.minecraft.src:
 //            Material, MapColor
 
-public class PortalMaterial extends Material
+public class MaterialPortal extends Material
 {
 
-    public PortalMaterial(MaterialColor mapcolor)
+    public MaterialPortal(MaterialColor mapcolor)
     {
         super(mapcolor);
     }
diff --git a/src/main/java/net/minecraft/core/block/motion/CarriedBlock.java b/src/main/java/net/minecraft/core/block/motion/CarriedBlock.java
index 4825e7d17..9764603a4 100644
--- a/src/main/java/net/minecraft/core/block/motion/CarriedBlock.java
+++ b/src/main/java/net/minecraft/core/block/motion/CarriedBlock.java
@@ -2,8 +2,8 @@ package net.minecraft.core.block.motion;
 
 import com.mojang.nbt.CompoundTag;
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.entity.BlockEntity;
-import net.minecraft.core.block.entity.BlockEntityDispatcher;
+import net.minecraft.core.block.entity.TileEntity;
+import net.minecraft.core.block.entity.TileEntityDispatcher;
 import net.minecraft.core.block.tag.BlockTags;
 import net.minecraft.core.entity.Entity;
 import net.minecraft.core.entity.Mob;
@@ -18,24 +18,27 @@ import org.jetbrains.annotations.Nullable;
 public class CarriedBlock implements ICarriable {
     public int blockId;
     public int metadata;
-    public @Nullable BlockEntity entity;
+    public @Nullable TileEntity entity;
     // Ignore warnings, nbt read process *should* guarantee these to be non-null
     public @NotNull Entity holder;
     public @NotNull World world;
-    public CarriedBlock(@NotNull Entity holder, @NotNull Block block, int metadata, @Nullable BlockEntity entity) {
+    public CarriedBlock(@NotNull Entity holder, @NotNull Block block, int metadata, @Nullable TileEntity entity) {
         this(holder, block.id, metadata, entity);
     }
 
-    public CarriedBlock(@NotNull Entity holder, int blockId, int metadata, @Nullable BlockEntity entity) {
+    public CarriedBlock(@NotNull Entity holder, int blockId, int metadata, @Nullable TileEntity entity) {
         this.holder = holder;
         this.blockId = blockId;
         this.metadata = metadata;
         this.entity = entity;
         this.world = holder.world;
+        assert world != null : "Carried block world ref must not be null!";
     }
 
-    protected CarriedBlock() {
-
+    protected CarriedBlock(@NotNull Entity holder) {
+        this.holder = holder;
+        this.world = holder.world;
+        assert world != null : "Carried block world ref must not be null!";
     }
 
     public Block block() {
@@ -117,7 +120,7 @@ public class CarriedBlock implements ICarriable {
     @Override
     public void readFromNBT(CompoundTag tag) {
         if (tag.containsKey("entity")) {
-            entity = BlockEntityDispatcher.createAndLoadEntity(tag.getCompound("entity"));
+            entity = TileEntityDispatcher.createAndLoadEntity(tag.getCompound("entity"));
             if (entity != null) {
                 entity.carriedBlock = this;
             }
@@ -127,8 +130,7 @@ public class CarriedBlock implements ICarriable {
     }
 
     public static CarriedBlock createAndLoadCarriedBlock(@NotNull Entity holder, CompoundTag tag) {
-        CarriedBlock carriedBlock = new CarriedBlock();
-        carriedBlock.holder = holder;
+        CarriedBlock carriedBlock = new CarriedBlock(holder);
         carriedBlock.readFromNBT(tag);
         return carriedBlock;
     }
diff --git a/src/main/java/net/minecraft/core/block/piston/PistonBaseBlock.java b/src/main/java/net/minecraft/core/block/piston/BlockPistonBase.java
similarity index 90%
rename from src/main/java/net/minecraft/core/block/piston/PistonBaseBlock.java
rename to src/main/java/net/minecraft/core/block/piston/BlockPistonBase.java
index 5be57f85e..9a5d59bb6 100644
--- a/src/main/java/net/minecraft/core/block/piston/PistonBaseBlock.java
+++ b/src/main/java/net/minecraft/core/block/piston/BlockPistonBase.java
@@ -2,10 +2,9 @@ package net.minecraft.core.block.piston;
 
 import java.util.ArrayList;
 
-import net.minecraft.client.Minecraft;
 import net.minecraft.core.block.Block;
 import net.minecraft.core.block.Blocks;
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.block.tag.BlockTags;
 import net.minecraft.core.entity.Mob;
@@ -22,7 +21,7 @@ import net.minecraft.core.world.WorldSource;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
-public class PistonBaseBlock extends Block
+public class BlockPistonBase extends Block
 {
     public static final int MASK_DIRECTION = 0b0000_0111;
     public static final int MASK_POWERED = 0b0000_1000;
@@ -32,7 +31,7 @@ public class PistonBaseBlock extends Block
 
     private final int maxPushedBlocks;
 
-    public PistonBaseBlock(String key, String namespaceId, int id, int maxPushedBlocks)
+    public BlockPistonBase(String key, String namespaceId, int id, int maxPushedBlocks)
     {
         super(key, namespaceId, id, Material.piston);
         this.maxPushedBlocks = maxPushedBlocks;
@@ -166,18 +165,18 @@ public class PistonBaseBlock extends Block
     }
 
     public void retractEvent(World world, int x, int y, int z, int data, Direction direction) {
-        BlockEntity blockEntity = world.getBlockEntity(x + direction.getOffsetX(), y + direction.getOffsetY(), z + direction.getOffsetZ());
-        if((blockEntity instanceof MovingPistonBlockEntity))
+        TileEntity tileEntity = world.getBlockEntity(x + direction.getOffsetX(), y + direction.getOffsetY(), z + direction.getOffsetZ());
+        if((tileEntity instanceof TileEntityMovingPistonBlock))
         {
-            MovingPistonBlockEntity moving = ((MovingPistonBlockEntity) blockEntity);
+            TileEntityMovingPistonBlock moving = ((TileEntityMovingPistonBlock) tileEntity);
             if (!moving.isExtending()) {
-                ((MovingPistonBlockEntity)blockEntity).finalTick();
+                ((TileEntityMovingPistonBlock) tileEntity).finalTick();
             } else {
                 world.setBlock(x + direction.getOffsetX(), y + direction.getOffsetY(), z + direction.getOffsetZ(), 0);
             }
         }
         world.setBlockAndMetadata(x, y, z, Blocks.PISTON_MOVING.id, direction.getId());
-        world.replaceBlockTileEntity(x, y, z, MovingPistonBlock.createTileEntity(id, direction.getId(), null, direction, false, true));
+        world.replaceBlockTileEntity(x, y, z, BlockPistonMoving.createTileEntity(id, direction.getId(), null, direction, false, true));
         world.setBlockWithNotify(x + direction.getOffsetX(), y + direction.getOffsetY(), z + direction.getOffsetZ(), 0);
         world.playSoundEffect(null, SoundCategory.WORLD_SOUNDS, (double)x + 0.5D, (double)y + 0.5D, (double)z + 0.5D, "tile.piston.in", 0.5F, world.rand.nextFloat() * 0.15F + 0.6F);
     }
@@ -348,8 +347,8 @@ public class PistonBaseBlock extends Block
             int pz = zo - direction.getOffsetZ();
             int pushId = world.getBlockId(px, py, pz);
             int pushMeta = world.getBlockMetadata(px, py, pz);
-            BlockEntity pushEntity = world.getBlockEntity(px, py, pz);
-            if (pushEntity instanceof MovingPistonBlockEntity && px == x && py == y && pz == z) {
+            TileEntity pushEntity = world.getBlockEntity(px, py, pz);
+            if (pushEntity instanceof TileEntityMovingPistonBlock && px == x && py == y && pz == z) {
                 break;
             }
             if(pushId == id && px == x && py == y && pz == z)
@@ -357,9 +356,9 @@ public class PistonBaseBlock extends Block
                 createPistonHeadAt(world, xo, yo, zo, data, direction);
             } else if (pushId == Blocks.PISTON_MOVING.id)
             {
-                BlockEntity old = world.getBlockEntity(px, py, pz);
-                if (old instanceof MovingPistonBlockEntity) {
-                    MovingPistonBlockEntity moving = (MovingPistonBlockEntity) old;
+                TileEntity old = world.getBlockEntity(px, py, pz);
+                if (old instanceof TileEntityMovingPistonBlock) {
+                    TileEntityMovingPistonBlock moving = (TileEntityMovingPistonBlock) old;
                     if (!moving.isSourcePiston()) {
                         pushId = moving.getMovedId();
                         pushMeta = moving.getMovedData();
@@ -368,12 +367,12 @@ public class PistonBaseBlock extends Block
                 }
                 world.removeBlockTileEntity(px, py, pz);
                 world.setBlockAndMetadata(xo, yo, zo, Blocks.PISTON_MOVING.id, pushMeta);
-                world.replaceBlockTileEntity(xo, yo, zo, MovingPistonBlock.createTileEntity(pushId, pushMeta, pushEntity, direction, true, false));
+                world.replaceBlockTileEntity(xo, yo, zo, BlockPistonMoving.createTileEntity(pushId, pushMeta, pushEntity, direction, true, false));
             } else
             {
                 world.removeBlockTileEntity(px, py, pz);
                 world.setBlockAndMetadata(xo, yo, zo, Blocks.PISTON_MOVING.id, pushMeta);
-                world.replaceBlockTileEntity(xo, yo, zo, MovingPistonBlock.createTileEntity(pushId, pushMeta, pushEntity, direction, true, false));
+                world.replaceBlockTileEntity(xo, yo, zo, BlockPistonMoving.createTileEntity(pushId, pushMeta, pushEntity, direction, true, false));
             }
             if (!(px == x && py == y && pz == z))
                 world.setBlockAndMetadataRaw(px, py, pz, 0, 0);
@@ -386,8 +385,8 @@ public class PistonBaseBlock extends Block
     }
 
     public void createPistonHeadAt(World world, int x, int y, int z, int data, Direction direction) {
-        world.setBlockAndMetadata(x, y, z, Blocks.PISTON_MOVING.id, PistonHeadBlock.setPistonType(PistonHeadBlock.TYPE_NORMAL, direction.getId()));
-        world.replaceBlockTileEntity(x, y, z, MovingPistonBlock.createTileEntity(Blocks.PISTON_HEAD.id, PistonHeadBlock.setPistonType(PistonHeadBlock.TYPE_NORMAL, direction.getId()), null, direction, true, false));
+        world.setBlockAndMetadata(x, y, z, Blocks.PISTON_MOVING.id, BlockPistonHead.setPistonType(BlockPistonHead.TYPE_NORMAL, direction.getId()));
+        world.replaceBlockTileEntity(x, y, z, BlockPistonMoving.createTileEntity(Blocks.PISTON_HEAD.id, BlockPistonHead.setPistonType(BlockPistonHead.TYPE_NORMAL, direction.getId()), null, direction, true, false));
     }
     
     @Override
diff --git a/src/main/java/net/minecraft/core/block/piston/SteelPistonBaseBlock.java b/src/main/java/net/minecraft/core/block/piston/BlockPistonBaseSteel.java
similarity index 83%
rename from src/main/java/net/minecraft/core/block/piston/SteelPistonBaseBlock.java
rename to src/main/java/net/minecraft/core/block/piston/BlockPistonBaseSteel.java
index 21723967b..5a7ac953a 100644
--- a/src/main/java/net/minecraft/core/block/piston/SteelPistonBaseBlock.java
+++ b/src/main/java/net/minecraft/core/block/piston/BlockPistonBaseSteel.java
@@ -2,11 +2,11 @@ package net.minecraft.core.block.piston;
 
 import net.minecraft.core.block.Block;
 import net.minecraft.core.block.Blocks;
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.block.tag.BlockTags;
 import net.minecraft.core.entity.Entity;
-import net.minecraft.core.entity.FallingBlockEntity;
+import net.minecraft.core.entity.EntityFallingBlock;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.util.helper.Direction;
 import net.minecraft.core.util.phys.AABB;
@@ -18,12 +18,12 @@ import net.minecraft.core.world.WorldSource;
 import java.util.ArrayList;
 import java.util.List;
 
-public class SteelPistonBaseBlock extends PistonBaseBlock{
+public class BlockPistonBaseSteel extends BlockPistonBase {
     public static final double HEAD_THICKNESS_STEEL = 6/16d;
 
     private Entity flungBlock = null;
 
-    public SteelPistonBaseBlock(String key, String namespaceId, int id, int maxPushedBlocks) {
+    public BlockPistonBaseSteel(String key, String namespaceId, int id, int maxPushedBlocks) {
         super(key, namespaceId, id, maxPushedBlocks);
     }
 
@@ -104,20 +104,20 @@ public class SteelPistonBaseBlock extends PistonBaseBlock{
             Block block = world.getBlock(xo, yo, zo);
             if (block == null) return true;
             int blockMeta = world.getBlockMetadata(xo, yo, zo);
-            BlockEntity blockEntity = world.getBlockEntity(xo, yo, zo);
+            TileEntity tileEntity = world.getBlockEntity(xo, yo, zo);
             world.removeBlockTileEntity(xo, yo, zo);
             world.setBlockWithNotify(xo, yo, zo, 0);
-            FallingBlockEntity fallingBlockEntity = new FallingBlockEntity(world, xo + 0.5, yo + 0.5, zo + 0.5, block.id, blockMeta, blockEntity);
-            fallingBlockEntity.hasRemovedBlock = true;
-            if (blockEntity instanceof IVehicle) {
-                Entity rider = ((IVehicle) blockEntity).getPassenger();
-                ((IVehicle) blockEntity).ejectRider();
-                if (rider != null) rider.startRiding(fallingBlockEntity);
+            EntityFallingBlock entityFallingBlock = new EntityFallingBlock(world, xo + 0.5, yo + 0.5, zo + 0.5, block.id, blockMeta, tileEntity);
+            entityFallingBlock.hasRemovedBlock = true;
+            if (tileEntity instanceof IVehicle) {
+                Entity rider = ((IVehicle) tileEntity).getPassenger();
+                ((IVehicle) tileEntity).ejectRider();
+                if (rider != null) rider.startRiding(entityFallingBlock);
             }
-            world.entityJoinedWorld(fallingBlockEntity);
+            world.entityJoinedWorld(entityFallingBlock);
             final double speed = 2;
-            fallingBlockEntity.fling(direction.getOffsetX() * speed, direction.getOffsetY() * speed, direction.getOffsetZ() * speed, 1f);
-            flungBlock = fallingBlockEntity;
+            entityFallingBlock.fling(direction.getOffsetX() * speed, direction.getOffsetY() * speed, direction.getOffsetZ() * speed, 1f);
+            flungBlock = entityFallingBlock;
         }
         return true;
     }
@@ -149,8 +149,8 @@ public class SteelPistonBaseBlock extends PistonBaseBlock{
 
     @Override
     public void createPistonHeadAt(World world, int x, int y, int z, int data, Direction direction) {
-        world.setBlockAndMetadata(x, y, z, Blocks.PISTON_MOVING.id,  PistonHeadBlock.setPistonType(PistonHeadBlock.TYPE_STEEL, direction.getId()));
-        world.replaceBlockTileEntity(x, y, z, MovingPistonBlock.createTileEntity(Blocks.PISTON_HEAD_STEEL.id, PistonHeadBlock.setPistonType(PistonHeadBlock.TYPE_STEEL, direction.getId()), null, direction, true, false));
+        world.setBlockAndMetadata(x, y, z, Blocks.PISTON_MOVING.id,  BlockPistonHead.setPistonType(BlockPistonHead.TYPE_STEEL, direction.getId()));
+        world.replaceBlockTileEntity(x, y, z, BlockPistonMoving.createTileEntity(Blocks.PISTON_HEAD_STEEL.id, BlockPistonHead.setPistonType(BlockPistonHead.TYPE_STEEL, direction.getId()), null, direction, true, false));
     }
 
 }
diff --git a/src/main/java/net/minecraft/core/block/piston/StickyPistonBaseBlock.java b/src/main/java/net/minecraft/core/block/piston/BlockPistonBaseSticky.java
similarity index 67%
rename from src/main/java/net/minecraft/core/block/piston/StickyPistonBaseBlock.java
rename to src/main/java/net/minecraft/core/block/piston/BlockPistonBaseSticky.java
index 4235a74b1..de5268130 100644
--- a/src/main/java/net/minecraft/core/block/piston/StickyPistonBaseBlock.java
+++ b/src/main/java/net/minecraft/core/block/piston/BlockPistonBaseSticky.java
@@ -2,44 +2,44 @@ package net.minecraft.core.block.piston;
 
 import net.minecraft.core.block.Block;
 import net.minecraft.core.block.Blocks;
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.sound.SoundCategory;
 import net.minecraft.core.util.helper.Direction;
 import net.minecraft.core.world.World;
 
-public class StickyPistonBaseBlock extends PistonBaseBlock {
-    public StickyPistonBaseBlock(String key, String namespaceId, int id, int maxPushedBlocks) {
+public class BlockPistonBaseSticky extends BlockPistonBase {
+    public BlockPistonBaseSticky(String key, String namespaceId, int id, int maxPushedBlocks) {
         super(key, namespaceId, id, maxPushedBlocks);
     }
 
     @Override
     public void retractEvent(World world, int x, int y, int z, int data, Direction direction) {
-        BlockEntity blockEntity = world.getBlockEntity(x + direction.getOffsetX(), y + direction.getOffsetY(), z + direction.getOffsetZ());
-        if((blockEntity instanceof MovingPistonBlockEntity))
+        TileEntity tileEntity = world.getBlockEntity(x + direction.getOffsetX(), y + direction.getOffsetY(), z + direction.getOffsetZ());
+        if((tileEntity instanceof TileEntityMovingPistonBlock))
         {
-            MovingPistonBlockEntity moving = ((MovingPistonBlockEntity) blockEntity);
+            TileEntityMovingPistonBlock moving = ((TileEntityMovingPistonBlock) tileEntity);
             if (!moving.isExtending()) {
-                ((MovingPistonBlockEntity)blockEntity).finalTick();
+                ((TileEntityMovingPistonBlock) tileEntity).finalTick();
             } else {
                 world.setBlock(x + direction.getOffsetX(), y + direction.getOffsetY(), z + direction.getOffsetZ(), 0);
             }
         }
         world.setBlockAndMetadata(x, y, z, Blocks.PISTON_MOVING.id, direction.getId());
-        world.replaceBlockTileEntity(x, y, z, MovingPistonBlock.createTileEntity(id, direction.getId(), null, direction, false, true));
+        world.replaceBlockTileEntity(x, y, z, BlockPistonMoving.createTileEntity(id, direction.getId(), null, direction, false, true));
         int x1 = x + direction.getOffsetX() * 2;
         int y1 = y + direction.getOffsetY() * 2;
         int z1 = z + direction.getOffsetZ() * 2;
         int retractId = world.getBlockId(x1, y1, z1);
         int retactMeta = world.getBlockMetadata(x1, y1, z1);
-        BlockEntity retractEntity = world.getBlockEntity(x1, y1, z1);
+        TileEntity retractEntity = world.getBlockEntity(x1, y1, z1);
         boolean pulledMoving = false;
         if(retractId == Blocks.PISTON_MOVING.id)
         {
-            BlockEntity blockEntity1 = world.getBlockEntity(x1, y1, z1);
-            if((blockEntity1 instanceof MovingPistonBlockEntity))
+            TileEntity tileEntity1 = world.getBlockEntity(x1, y1, z1);
+            if((tileEntity1 instanceof TileEntityMovingPistonBlock))
             {
-                MovingPistonBlockEntity movingPistonBlock = (MovingPistonBlockEntity)blockEntity1;
+                TileEntityMovingPistonBlock movingPistonBlock = (TileEntityMovingPistonBlock) tileEntity1;
                 if(movingPistonBlock.getDirection() == direction && movingPistonBlock.isExtending())
                 {
                     movingPistonBlock.finalTick();
@@ -52,9 +52,9 @@ public class StickyPistonBaseBlock extends PistonBaseBlock {
         }
         if(!pulledMoving && retractId > 0 &&
             isPushable(retractId, world, x1, y1, z1, false) &&
-            (Block.blocksList[retractId].getPistonPushReaction(world, x1, y1, z1) == Material.PISTON_PUSHABLE || (Block.getBlock(retractId) instanceof PistonBaseBlock)))
+            (Block.blocksList[retractId].getPistonPushReaction(world, x1, y1, z1) == Material.PISTON_PUSHABLE || (Block.getBlock(retractId) instanceof BlockPistonBase)))
         {
-            if (!(retractEntity instanceof MovingPistonBlockEntity)) {
+            if (!(retractEntity instanceof TileEntityMovingPistonBlock)) {
                 world.removeBlockTileEntity(x1, y1, z1);
             }
             world.setBlock(x1, y1, z1, 0);
@@ -62,7 +62,7 @@ public class StickyPistonBaseBlock extends PistonBaseBlock {
             y += direction.getOffsetY();
             z += direction.getOffsetZ();
             world.setBlockAndMetadata(x, y, z, Blocks.PISTON_MOVING.id, retactMeta);
-            world.replaceBlockTileEntity(x, y, z, MovingPistonBlock.createTileEntity(retractId, retactMeta, retractEntity, direction, false, false));
+            world.replaceBlockTileEntity(x, y, z, BlockPistonMoving.createTileEntity(retractId, retactMeta, retractEntity, direction, false, false));
             world.notifyBlockChange(x1, y1, z1, 0);
         } else
         if(!pulledMoving)
@@ -73,7 +73,7 @@ public class StickyPistonBaseBlock extends PistonBaseBlock {
     }
     @Override
     public void createPistonHeadAt(World world, int x, int y, int z, int data, Direction direction) {
-        world.setBlockAndMetadata(x, y, z, Blocks.PISTON_MOVING.id,  PistonHeadBlock.setPistonType(PistonHeadBlock.TYPE_STICKY, direction.getId()));
-        world.replaceBlockTileEntity(x, y, z, MovingPistonBlock.createTileEntity(Blocks.PISTON_HEAD.id, PistonHeadBlock.setPistonType(PistonHeadBlock.TYPE_STICKY, direction.getId()), null, direction, true, false));
+        world.setBlockAndMetadata(x, y, z, Blocks.PISTON_MOVING.id,  BlockPistonHead.setPistonType(BlockPistonHead.TYPE_STICKY, direction.getId()));
+        world.replaceBlockTileEntity(x, y, z, BlockPistonMoving.createTileEntity(Blocks.PISTON_HEAD.id, BlockPistonHead.setPistonType(BlockPistonHead.TYPE_STICKY, direction.getId()), null, direction, true, false));
     }
 }
diff --git a/src/main/java/net/minecraft/core/block/piston/PistonHeadBlock.java b/src/main/java/net/minecraft/core/block/piston/BlockPistonHead.java
similarity index 95%
rename from src/main/java/net/minecraft/core/block/piston/PistonHeadBlock.java
rename to src/main/java/net/minecraft/core/block/piston/BlockPistonHead.java
index 44be3cf3f..1abe9c8c7 100644
--- a/src/main/java/net/minecraft/core/block/piston/PistonHeadBlock.java
+++ b/src/main/java/net/minecraft/core/block/piston/BlockPistonHead.java
@@ -4,18 +4,17 @@ import java.util.ArrayList;
 
 import net.minecraft.core.block.Block;
 import net.minecraft.core.block.Blocks;
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.item.ItemStack;
-import net.minecraft.core.sound.BlockSound;
 import net.minecraft.core.util.helper.Direction;
 import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.util.phys.AABB;
 import net.minecraft.core.world.World;
 import net.minecraft.core.world.WorldSource;
 
-public class PistonHeadBlock extends Block
+public class BlockPistonHead extends Block
 {
     public static final int MASK_DIRECTION = 0b0000_0111;
     public static final int MASK_TYPE = 0b1111_1000;
@@ -24,7 +23,7 @@ public class PistonHeadBlock extends Block
     public static final int TYPE_STEEL = 2;
 
     private final double headThickness;
-    public PistonHeadBlock(String key, String namespaceId, int id, double headThickness)
+    public BlockPistonHead(String key, String namespaceId, int id, double headThickness)
     {
         super(key, namespaceId, id, Material.piston);
         withHardness(0.5F);
@@ -44,10 +43,10 @@ public class PistonHeadBlock extends Block
         int y2 = y + orientation.getOffsetY();
         int z2 = z + orientation.getOffsetZ();
         Block block = world.getBlock(x2, y2, z2);
-        if(block instanceof PistonBaseBlock)
+        if(block instanceof BlockPistonBase)
         {
             int data2 = world.getBlockMetadata(x2, y2, z2);
-            if(PistonBaseBlock.isPowered(data2))
+            if(BlockPistonBase.isPowered(data2))
             {
                 block.dropBlockWithCause(world, EnumDropCause.PROPER_TOOL, x2, y2, z2, data2, null, null);
                 world.setBlockWithNotify(x2, y2, z2, 0);
@@ -170,7 +169,7 @@ public class PistonHeadBlock extends Block
         	return;
         }
         Block block = world.getBlock(x - direction.getOffsetX(), y - direction.getOffsetY(), z - direction.getOffsetZ());
-        if (block instanceof PistonBaseBlock) {
+        if (block instanceof BlockPistonBase) {
             block.onNeighborBlockChange(world, x - direction.getOffsetX(), y - direction.getOffsetY(), z - direction.getOffsetZ(), blockId);
         } else {
             world.setBlockWithNotify(x, y, z, 0);
@@ -196,7 +195,7 @@ public class PistonHeadBlock extends Block
     }
 
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity)
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity)
     {
         if (dropCause == EnumDropCause.PICK_BLOCK)
         {
diff --git a/src/main/java/net/minecraft/core/block/piston/MovingPistonBlock.java b/src/main/java/net/minecraft/core/block/piston/BlockPistonMoving.java
similarity index 75%
rename from src/main/java/net/minecraft/core/block/piston/MovingPistonBlock.java
rename to src/main/java/net/minecraft/core/block/piston/BlockPistonMoving.java
index 931c1e5b8..9cf193d4b 100644
--- a/src/main/java/net/minecraft/core/block/piston/MovingPistonBlock.java
+++ b/src/main/java/net/minecraft/core/block/piston/BlockPistonMoving.java
@@ -1,8 +1,8 @@
 package net.minecraft.core.block.piston;
 
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.EntityBlock;
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.BlockTileEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.item.ItemStack;
@@ -14,16 +14,16 @@ import net.minecraft.core.world.World;
 import net.minecraft.core.block.material.Material;
 import org.jetbrains.annotations.Nullable;
 
-public class MovingPistonBlock extends EntityBlock
+public class BlockPistonMoving extends BlockTileEntity
 {
-    public MovingPistonBlock(String key, String namespaceId, int id)
+    public BlockPistonMoving(String key, String namespaceId, int id)
     {
         super(key, namespaceId, id, Material.piston);
         withHardness(-1F);
     }
 
     @Override
-	protected BlockEntity getNewBlockEntity()
+	protected TileEntity getNewBlockEntity()
     {
         return null;
     }
@@ -36,10 +36,10 @@ public class MovingPistonBlock extends EntityBlock
     @Override
     public void onBlockRemoved(World world, int x, int y, int z, int data)
     {
-        BlockEntity blockEntity = world.getBlockEntity(x, y, z);
-        if((blockEntity instanceof MovingPistonBlockEntity))
+        TileEntity tileEntity = world.getBlockEntity(x, y, z);
+        if((tileEntity instanceof TileEntityMovingPistonBlock))
         {
-            ((MovingPistonBlockEntity)blockEntity).finalTick();
+            ((TileEntityMovingPistonBlock) tileEntity).finalTick();
         } else
         {
             super.onBlockRemoved(world, x, y, z, data);
@@ -76,7 +76,7 @@ public class MovingPistonBlock extends EntityBlock
         if(!world.isClientSide && world.getBlockEntity(x, y, z) == null)
         {
             int id = 0;
-            MovingPistonBlockEntity piston = getBlockEntity(world, x, y, z);
+            TileEntityMovingPistonBlock piston = getBlockEntity(world, x, y, z);
             if (piston != null) id = piston.getMovedId();
             world.setBlockWithNotify(x, y, z, id);
             return true;
@@ -87,19 +87,19 @@ public class MovingPistonBlock extends EntityBlock
     }
 
     @Override
-    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity)
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity)
     {
         return null;
     }
 
     @Override
-    public void dropBlockWithCause(World world, EnumDropCause cause, int x, int y, int z, int meta, BlockEntity blockEntity, Player player)
+    public void dropBlockWithCause(World world, EnumDropCause cause, int x, int y, int z, int meta, TileEntity tileEntity, Player player)
     {
         if(world.isClientSide)
         {
             return;
         }
-        MovingPistonBlockEntity piston = getBlockEntity(world, x, y, z);
+        TileEntityMovingPistonBlock piston = getBlockEntity(world, x, y, z);
         if(piston != null)
         {
             Block.blocksList[piston.getMovedId()].dropBlockWithCause(world, EnumDropCause.WORLD, x, y, z, meta, null, null);
@@ -115,16 +115,16 @@ public class MovingPistonBlock extends EntityBlock
         }
     }
 
-    public static BlockEntity createTileEntity(int movedId, int movedData, @Nullable BlockEntity movedEntity, Direction direction, boolean extending, boolean isSourcePiston)
+    public static TileEntity createTileEntity(int movedId, int movedData, @Nullable TileEntity movedEntity, Direction direction, boolean extending, boolean isSourcePiston)
     {
-        assert !(movedEntity instanceof MovingPistonBlockEntity) : "Moving piston entity should not be able to be put into another moving piston!";
-        return new MovingPistonBlockEntity(movedId, movedData, movedEntity, direction, extending, isSourcePiston);
+        assert !(movedEntity instanceof TileEntityMovingPistonBlock) : "Moving piston entity should not be able to be put into another moving piston!";
+        return new TileEntityMovingPistonBlock(movedId, movedData, movedEntity, direction, extending, isSourcePiston);
     }
 
     @Override
 	public AABB getCollisionBoundingBoxFromPool(WorldSource world, int x, int y, int z)
     {
-        MovingPistonBlockEntity tileEntity = getBlockEntity(world, x, y, z);
+        TileEntityMovingPistonBlock tileEntity = getBlockEntity(world, x, y, z);
         if(tileEntity == null)
         {
             return null;
@@ -140,7 +140,7 @@ public class MovingPistonBlock extends EntityBlock
     @Override
     public void setBlockBoundsBasedOnState(WorldSource world, int x, int y, int z)
     {
-        MovingPistonBlockEntity pistonBlockEntity = getBlockEntity(world, x, y, z);
+        TileEntityMovingPistonBlock pistonBlockEntity = getBlockEntity(world, x, y, z);
         if(pistonBlockEntity != null)
         {
             Block block = Block.blocksList[pistonBlockEntity.getMovedId()];
@@ -186,12 +186,12 @@ public class MovingPistonBlock extends EntityBlock
         }
     }
 
-    private MovingPistonBlockEntity getBlockEntity(WorldSource world, int x, int y, int z)
+    private TileEntityMovingPistonBlock getBlockEntity(WorldSource world, int x, int y, int z)
     {
-        BlockEntity blockEntity = world.getBlockEntity(x, y, z);
-        if(blockEntity instanceof MovingPistonBlockEntity)
+        TileEntity tileEntity = world.getBlockEntity(x, y, z);
+        if(tileEntity instanceof TileEntityMovingPistonBlock)
         {
-            return (MovingPistonBlockEntity) blockEntity;
+            return (TileEntityMovingPistonBlock) tileEntity;
         }
         else
         {
diff --git a/src/main/java/net/minecraft/core/block/piston/MovingPistonBlockEntity.java b/src/main/java/net/minecraft/core/block/piston/TileEntityMovingPistonBlock.java
similarity index 86%
rename from src/main/java/net/minecraft/core/block/piston/MovingPistonBlockEntity.java
rename to src/main/java/net/minecraft/core/block/piston/TileEntityMovingPistonBlock.java
index 30de4c93f..474e0b9fb 100644
--- a/src/main/java/net/minecraft/core/block/piston/MovingPistonBlockEntity.java
+++ b/src/main/java/net/minecraft/core/block/piston/TileEntityMovingPistonBlock.java
@@ -1,7 +1,7 @@
 package net.minecraft.core.block.piston;
 
-import net.minecraft.core.block.entity.BlockEntity;
-import net.minecraft.core.block.entity.BlockEntityDispatcher;
+import net.minecraft.core.block.entity.TileEntity;
+import net.minecraft.core.block.entity.TileEntityDispatcher;
 import net.minecraft.core.entity.Entity;
 import net.minecraft.core.block.Block;
 import net.minecraft.core.block.Blocks;
@@ -13,14 +13,14 @@ import org.jetbrains.annotations.Nullable;
 
 import java.util.*;
 
-public class MovingPistonBlockEntity extends BlockEntity
+public class TileEntityMovingPistonBlock extends TileEntity
 {
     public static final int TICKS_TO_EXTEND = 2;
     private static final List<Entity> entityBuffer = new ArrayList<>();
 
     private int movedId;
     private int movedData;
-    private @Nullable BlockEntity movedEntity;
+    private @Nullable TileEntity movedEntity;
     private Direction direction;
     private boolean extending;
     private boolean isSourcePiston;
@@ -28,11 +28,11 @@ public class MovingPistonBlockEntity extends BlockEntity
     private float progressO;
 
     @SuppressWarnings("unused")
-    public MovingPistonBlockEntity()
+    public TileEntityMovingPistonBlock()
     {
     }
 
-    public MovingPistonBlockEntity(int movedId, int movedData, @Nullable BlockEntity movedEntity, Direction direction, boolean extending, boolean isSourcePiston)
+    public TileEntityMovingPistonBlock(int movedId, int movedData, @Nullable TileEntity movedEntity, Direction direction, boolean extending, boolean isSourcePiston)
     {
         this.movedId = movedId;
         this.movedData = movedData;
@@ -53,7 +53,7 @@ public class MovingPistonBlockEntity extends BlockEntity
         return movedData;
     }
 
-    public @Nullable BlockEntity getMovedEntity() {
+    public @Nullable TileEntity getMovedEntity() {
         return movedEntity;
     }
 
@@ -123,7 +123,7 @@ public class MovingPistonBlockEntity extends BlockEntity
         {
             stretch = 1.0F - stretch;
         }
-        AABB aabb = ((MovingPistonBlock) Blocks.PISTON_MOVING).getCollisionShapeFromTileEntity(worldObj, x, y, z, movedId, stretch, direction);
+        AABB aabb = ((BlockPistonMoving) Blocks.PISTON_MOVING).getCollisionShapeFromTileEntity(worldObj, x, y, z, movedId, stretch, direction);
         if (aabb == null) return;
 
         List<Entity> list = worldObj.getEntitiesWithinAABBExcludingEntity(null, aabb);
@@ -146,7 +146,7 @@ public class MovingPistonBlockEntity extends BlockEntity
         if(worldObj.getBlockId(x, y, z) == Blocks.PISTON_MOVING.id) {
             worldObj.setBlockAndMetadataRaw(x, y, z, movedId, movedData);
             if (movedEntity != null) {
-                BlockEntity oldEnt = worldObj.getBlockEntity(x, y, z);
+                TileEntity oldEnt = worldObj.getBlockEntity(x, y, z);
                 if (oldEnt != null) {
                     oldEnt.invalidate();
                 }
@@ -190,9 +190,9 @@ public class MovingPistonBlockEntity extends BlockEntity
         super.readFromNBT(tag);
         movedId = tag.getInteger("blockId");
         movedData = tag.getInteger("blockData");
-        if (tag.containsKey("blockEntity")) {
-            CompoundTag entityTag = tag.getCompound("blockEntity");
-            movedEntity = BlockEntityDispatcher.createAndLoadEntity(entityTag);
+        if (tag.containsKey("tileEntity")) {
+            CompoundTag entityTag = tag.getCompound("tileEntity");
+            movedEntity = TileEntityDispatcher.createAndLoadEntity(entityTag);
         }
         direction = Direction.getDirectionById(tag.getInteger("facing"));
         progressO = progress = tag.getFloat("progress");
@@ -208,7 +208,7 @@ public class MovingPistonBlockEntity extends BlockEntity
         if (movedEntity != null) {
             CompoundTag entityTag = new CompoundTag();
             movedEntity.writeToNBT(entityTag);
-            tag.put("blockEntity", entityTag);
+            tag.put("tileEntity", entityTag);
         }
         tag.putInt("facing", direction.getId());
         tag.putFloat("progress", progressO);
diff --git a/src/main/java/net/minecraft/core/block/tag/BlockTags.java b/src/main/java/net/minecraft/core/block/tag/BlockTags.java
index 2969d81d7..6d9b30d1c 100644
--- a/src/main/java/net/minecraft/core/block/tag/BlockTags.java
+++ b/src/main/java/net/minecraft/core/block/tag/BlockTags.java
@@ -2,25 +2,26 @@ package net.minecraft.core.block.tag;
 
 import com.mojang.logging.LogUtils;
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.CactusBlock;
-import net.minecraft.core.block.ChainlinkFenceBlock;
-import net.minecraft.core.block.FenceBlock;
-import net.minecraft.core.block.FireBlock;
-import net.minecraft.core.block.FireflyLanternBlock;
-import net.minecraft.core.block.FlowerBlock;
-import net.minecraft.core.block.FluidBlock;
-import net.minecraft.core.block.JarBlock;
-import net.minecraft.core.block.SugarcaneBlock;
-import net.minecraft.core.block.TallGrassBlock;
+import net.minecraft.core.block.BlockCactus;
+import net.minecraft.core.block.BlockFence;
+import net.minecraft.core.block.BlockFenceChainlink;
+import net.minecraft.core.block.BlockFlower;
+import net.minecraft.core.block.BlockFire;
+import net.minecraft.core.block.BlockFluid;
+import net.minecraft.core.block.BlockLanternFirefly;
+import net.minecraft.core.block.BlockJar;
+import net.minecraft.core.block.BlockSugarcane;
+import net.minecraft.core.block.BlockTallGrass;
 import net.minecraft.core.data.tag.Tag;
-import net.minecraft.core.entity.animal.FireflyClusterMob;
+import net.minecraft.core.entity.animal.MobFireflyCluster;
+import net.minecraft.core.entity.monster.MobZombiePig;
 import net.minecraft.core.entity.vehicle.BoatEntity;
-import net.minecraft.core.item.ToolShearsItem;
-import net.minecraft.core.item.tool.AxeToolItem;
-import net.minecraft.core.item.tool.HoeToolItem;
-import net.minecraft.core.item.tool.PickaxeToolItem;
-import net.minecraft.core.item.tool.ShovelToolItem;
-import net.minecraft.core.item.tool.SwordToolItem;
+import net.minecraft.core.item.tool.ItemToolPickaxe;
+import net.minecraft.core.item.tool.ItemToolShears;
+import net.minecraft.core.item.tool.ItemToolAxe;
+import net.minecraft.core.item.tool.ItemToolHoe;
+import net.minecraft.core.item.tool.ItemToolShovel;
+import net.minecraft.core.item.tool.ItemToolSword;
 import net.minecraft.core.world.generate.CavesLargeFeature;
 import org.slf4j.Logger;
 
@@ -35,27 +36,27 @@ public abstract class BlockTags
 {
     private static final Logger LOGGER = LogUtils.getLogger();
     /**
-     * block can be mined by {@link PickaxeToolItem PickaxeToolItem}.
+     * block can be mined by {@link ItemToolPickaxe ItemToolPickaxe}.
      */
     public static Tag<Block> MINEABLE_BY_PICKAXE = Tag.of("mineable_by_pickaxe");
     /**
-     * block can be mined by {@link AxeToolItem AxeToolItem}.
+     * block can be mined by {@link ItemToolAxe ItemToolAxe}.
      */
     public static Tag<Block> MINEABLE_BY_AXE = Tag.of("mineable_by_axe");
     /**
-     * block can be mined by {@link ShovelToolItem ShovelToolItem}.
+     * block can be mined by {@link ItemToolShovel ItemToolShovel}.
      */
     public static Tag<Block> MINEABLE_BY_SHOVEL = Tag.of("mineable_by_shovel");
     /**
-     * block can be mined by {@link HoeToolItem HoeToolItem}.
+     * block can be mined by {@link ItemToolHoe ItemToolHoe}.
      */
     public static Tag<Block> MINEABLE_BY_HOE = Tag.of("mineable_by_hoe");
     /**
-     * block can be mined by {@link SwordToolItem SwordToolItem}.
+     * block can be mined by {@link ItemToolSword ItemToolSword}.
      */
     public static Tag<Block> MINEABLE_BY_SWORD = Tag.of("mineable_by_sword");
     /**
-     * block can be mined by {@link ToolShearsItem ItemShears}.
+     * block can be mined by {@link ItemToolShears ItemShears}.
      */
     public static Tag<Block> MINEABLE_BY_SHEARS = Tag.of("mineable_by_shears");
     /**
@@ -67,15 +68,15 @@ public abstract class BlockTags
      */
     public static Tag<Block> IS_LAVA = Tag.of("is_lava");
     /**
-     * {@link FlowerBlock FlowerBlock}-derived blocks can be placed on this block.
+     * {@link BlockFlower BlockFlower}-derived blocks can be placed on this block.
      */
     public static Tag<Block> GROWS_FLOWERS = Tag.of("grows_flowers");
     /**
-     * {@link SugarcaneBlock SugarcaneBlock} can be placed on this block.
+     * {@link BlockSugarcane BlockSugarcane} can be placed on this block.
      */
     public static Tag<Block> GROWS_SUGAR_CANE = Tag.of("grows_sugar_cane");
     /**
-     * {@link CactusBlock CactusBlock} can be placed on this block.
+     * {@link BlockCactus BlockCactus} can be placed on this block.
      */
     public static Tag<Block> GROWS_CACTI = Tag.of("grows_cacti");
     /**
@@ -84,11 +85,11 @@ public abstract class BlockTags
     public static Tag<Block> GROWS_TREES = Tag.of("grows_trees");
     public static Tag<Block> GROWS_SPINIFEX = Tag.of("grows_spinifex");
     /**
-     * This block is destroyed when {@link FluidBlock FluidBlock}-derived blocks try to move into its space.
+     * This block is destroyed when {@link BlockFluid BlockFluid}-derived blocks try to move into its space.
      */
     public static Tag<Block> BROKEN_BY_FLUIDS = Tag.of("broken_by_fluids");
     /**
-     * The block can have other blocks placed "into" it, like how {@link TallGrassBlock TallGrassBlock} behaves.
+     * The block can have other blocks placed "into" it, like how {@link BlockTallGrass BlockTallGrass} behaves.
      */
     public static Tag<Block> PLACE_OVERWRITES = Tag.of("place_overwrites");
     /**
@@ -96,11 +97,11 @@ public abstract class BlockTags
      */
     public static Tag<Block> PASSIVE_MOBS_SPAWN = Tag.of("passive_mobs_spawn");
     /**
-     * {@link FireflyClusterMob FireflyClusterMob} can spawn on this block.
+     * {@link MobFireflyCluster MobFireflyCluster} can spawn on this block.
      */
     public static Tag<Block> FIREFLIES_CAN_SPAWN = Tag.of("fireflies_can_spawn");
     /**
-     * {@link FenceBlock FenceBlock} visually connects to this block.
+     * {@link BlockFence BlockFence} visually connects to this block.
      */
     public static Tag<Block> FENCES_CONNECT = Tag.of("fences_connect");
     /**
@@ -108,7 +109,7 @@ public abstract class BlockTags
      */
     public static Tag<Block> NOT_IN_CREATIVE_MENU = Tag.of("not_in_creative_menu");
     /**
-     * This block drops as if using a silk touch tool when broken by {@link ToolShearsItem ItemShears}.
+     * This block drops as if using a silk touch tool when broken by {@link ItemToolShears ItemShears}.
      */
     public static Tag<Block> SHEARS_DO_SILK_TOUCH = Tag.of("shears_do_silk_touch");
     /**
@@ -124,7 +125,7 @@ public abstract class BlockTags
      */
     public static Tag<Block> CAVES_CUT_THROUGH = Tag.of("caves_cut_through");
     /**
-     * Blocks such as {@link FireflyLanternBlock FireflyLanternBlock} can hang off this block.
+     * Blocks such as {@link BlockLanternFirefly BlockLanternFirefly} can hang off this block.
      */
     public static Tag<Block> CAN_HANG_OFF = Tag.of("can_hang_off");
     /**
@@ -132,7 +133,7 @@ public abstract class BlockTags
      */
     public static Tag<Block> OVERRIDE_STEPSOUND = Tag.of("override_stepsound");
     /**
-     * {@link ChainlinkFenceBlock ChainlinkFenceBlock} visually connects to this block.
+     * {@link BlockFenceChainlink BlockFenceChainlink} visually connects to this block.
      */
     public static Tag<Block> CHAINLINK_FENCES_CONNECT = Tag.of("chainlink_fences_connect");
     /**
@@ -140,11 +141,11 @@ public abstract class BlockTags
      */
     public static Tag<Block> PREVENT_MOB_SPAWNS = Tag.of("prevent_mob_spawns");
     /**
-     * Block can be planted inside a {@link JarBlock JarBlock}
+     * Block can be planted inside a {@link BlockJar JarBlock}
      */
     public static Tag<Block> PLANTABLE_IN_JAR = Tag.of("plantable_in_jar");
     /**
-     * Block allows fire to burn forever on it {@link FireBlock FireBlock}
+     * Block allows fire to burn forever on it {@link BlockFire BlockFire}
      */
     public static Tag<Block> INFINITE_BURN = Tag.of("infinite_burn");
     /**
@@ -168,7 +169,7 @@ public abstract class BlockTags
      */
     public static Tag<Block> PIGS_FAVOURITE_BLOCK = Tag.of("pigs_favourite_block");
     /**
-     * Nether mobs can spawn on this block {@link net.minecraft.core.entity.monster.ZombiePigMob ZombiePigMob}}.
+     * Nether mobs can spawn on this block {@link MobZombiePig MobZombiePig}}.
      */
     public static Tag<Block> NETHER_MOBS_SPAWN = Tag.of("nether_mobs_spawn");
     /**
diff --git a/src/main/java/net/minecraft/core/crafting/ContainerListener.java b/src/main/java/net/minecraft/core/crafting/ContainerListener.java
index 62c8e1edd..509c1ec3d 100644
--- a/src/main/java/net/minecraft/core/crafting/ContainerListener.java
+++ b/src/main/java/net/minecraft/core/crafting/ContainerListener.java
@@ -1,7 +1,7 @@
 package net.minecraft.core.crafting;
 
 import net.minecraft.core.item.ItemStack;
-import net.minecraft.core.player.inventory.menu.AbstractContainerMenu;
+import net.minecraft.core.player.inventory.menu.MenuAbstract;
 
 import java.util.List;
 
@@ -10,9 +10,9 @@ import java.util.List;
 
 public interface ContainerListener
 {
-    void updateCraftingInventory(AbstractContainerMenu container, List<ItemStack> list);
+    void updateCraftingInventory(MenuAbstract container, List<ItemStack> list);
 	
-    void updateInventorySlot(AbstractContainerMenu container, int i, ItemStack itemstack);
+    void updateInventorySlot(MenuAbstract container, int i, ItemStack itemstack);
 
-    void updateCraftingInventoryInfo(AbstractContainerMenu container, int id, int value);
+    void updateCraftingInventoryInfo(MenuAbstract container, int id, int value);
 }
diff --git a/src/main/java/net/minecraft/core/data/gamerule/TreecapitatorHelper.java b/src/main/java/net/minecraft/core/data/gamerule/TreecapitatorHelper.java
index 1c9d670d9..e6be04422 100644
--- a/src/main/java/net/minecraft/core/data/gamerule/TreecapitatorHelper.java
+++ b/src/main/java/net/minecraft/core/data/gamerule/TreecapitatorHelper.java
@@ -6,9 +6,9 @@ import java.util.List;
 import java.util.Set;
 
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.BaseLeavesBlock;
-import net.minecraft.core.block.LogBlock;
-import net.minecraft.core.entity.ItemEntity;
+import net.minecraft.core.block.BlockLeavesBase;
+import net.minecraft.core.block.BlockLog;
+import net.minecraft.core.entity.EntityItem;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.item.ItemStack;
@@ -47,7 +47,7 @@ public class TreecapitatorHelper {
 		}
 
 		ItemList itemList = null;
-		if(ItemEntity.enableItemClumping) {
+		if(EntityItem.enableItemClumping) {
 			itemList = new ItemList();
 		}
 		
@@ -133,8 +133,8 @@ public class TreecapitatorHelper {
 		for(int i=0; i < allBlocksList.size(); i++) {
 			ChunkPosition pos = allBlocksList.get(i);
 			Block block = world.getBlock(pos.x, pos.y, pos.z);
-			if(block instanceof BaseLeavesBlock) {
-				BaseLeavesBlock blockLeaves = (BaseLeavesBlock) block;
+			if(block instanceof BlockLeavesBase) {
+				BlockLeavesBase blockLeaves = (BlockLeavesBase) block;
 				
 				if(player.getGamemode().dropBlockOnBreak()) {
 					ItemStack[] drops = blockLeaves.getBreakResult(world, EnumDropCause.PROPER_TOOL, pos.x, pos.y, pos.z, world.getBlockMetadata(pos.x, pos.y, pos.z), null);
@@ -215,14 +215,14 @@ public class TreecapitatorHelper {
 	}
 	
 	protected boolean isLog(Block block) {
-		return block instanceof LogBlock;
+		return block instanceof BlockLog;
 	}
 	
 	protected boolean isDecayableLeaf(ChunkPosition pos) {
 		Block block = world.getBlock(pos.x, pos.y, pos.z);
-		if(block instanceof BaseLeavesBlock) {
+		if(block instanceof BlockLeavesBase) {
 			int meta = world.getBlockMetadata(pos.x, pos.y, pos.z);
-			if(BaseLeavesBlock.isPermanent(meta)) {
+			if(BlockLeavesBase.isPermanent(meta)) {
 				return false;
 			}
 			
@@ -266,7 +266,7 @@ public class TreecapitatorHelper {
 						Block block = world.getBlock(x + offX, y + offY, z + offZ);
 						if(isLog(block)) {
 							adjacentTreeBlocks[(offX + b) * a + (offY + b) * byte1 + (offZ + b)] = 0;
-						}else if(block instanceof BaseLeavesBlock) {
+						}else if(block instanceof BlockLeavesBase) {
 							adjacentTreeBlocks[(offX + b) * a + (offY + b) * byte1 + (offZ + b)] = -2;
 						} else {
 							adjacentTreeBlocks[(offX + b) * a + (offY + b) * byte1 + (offZ + b)] = -1;
diff --git a/src/main/java/net/minecraft/core/data/registry/recipe/RecipeRegistry.java b/src/main/java/net/minecraft/core/data/registry/recipe/RecipeRegistry.java
index 748ce6e9d..736695519 100644
--- a/src/main/java/net/minecraft/core/data/registry/recipe/RecipeRegistry.java
+++ b/src/main/java/net/minecraft/core/data/registry/recipe/RecipeRegistry.java
@@ -8,9 +8,8 @@ import net.minecraft.core.data.registry.Registries;
 import net.minecraft.core.data.registry.Registry;
 import net.minecraft.core.data.registry.recipe.entry.*;
 import net.minecraft.core.item.Item;
-import net.minecraft.core.item.Items;
 import net.minecraft.core.item.ItemStack;
-import net.minecraft.core.player.inventory.container.CraftingContainer;
+import net.minecraft.core.player.inventory.container.ContainerCrafting;
 
 import java.util.*;
 
@@ -151,7 +150,7 @@ public class RecipeRegistry extends Registry<RecipeNamespace> {
         return Collections.unmodifiableList(recipes);
     }
 
-    public ItemStack findMatchingRecipe(CraftingContainer inventorycrafting)
+    public ItemStack findMatchingRecipe(ContainerCrafting inventorycrafting)
     {
         for(int i = 0; i < getAllCraftingRecipes().size(); i++)
         {
@@ -165,7 +164,7 @@ public class RecipeRegistry extends Registry<RecipeNamespace> {
         return null;
     }
 
-    public ItemStack[] onCraftResult(CraftingContainer inventorycrafting)
+    public ItemStack[] onCraftResult(ContainerCrafting inventorycrafting)
     {
         for(int i = 0; i < getAllCraftingRecipes().size(); i++)
         {
diff --git a/src/main/java/net/minecraft/core/data/registry/recipe/entry/RecipeEntryCrafting.java b/src/main/java/net/minecraft/core/data/registry/recipe/entry/RecipeEntryCrafting.java
index e50fe88a7..548e63057 100644
--- a/src/main/java/net/minecraft/core/data/registry/recipe/entry/RecipeEntryCrafting.java
+++ b/src/main/java/net/minecraft/core/data/registry/recipe/entry/RecipeEntryCrafting.java
@@ -3,7 +3,7 @@ package net.minecraft.core.data.registry.recipe.entry;
 import net.minecraft.core.data.registry.recipe.SearchQuery;
 import net.minecraft.core.data.registry.recipe.RecipeEntryBase;
 import net.minecraft.core.item.ItemStack;
-import net.minecraft.core.player.inventory.container.CraftingContainer;
+import net.minecraft.core.player.inventory.container.ContainerCrafting;
 
 public abstract class RecipeEntryCrafting<I,O> extends RecipeEntryBase<I,O,Void> {
 
@@ -23,7 +23,7 @@ public abstract class RecipeEntryCrafting<I,O> extends RecipeEntryBase<I,O,Void>
         return false;
     }
 
-    public abstract boolean matches(CraftingContainer craftingContainer);
+    public abstract boolean matches(ContainerCrafting containerCrafting);
 
     public boolean matchesQueryIgnoreExceptions(SearchQuery query){
         try {
@@ -35,9 +35,9 @@ public abstract class RecipeEntryCrafting<I,O> extends RecipeEntryBase<I,O,Void>
 
     public abstract boolean matchesQuery(SearchQuery query);
 
-    public abstract ItemStack getCraftingResult(CraftingContainer craftingContainer);
+    public abstract ItemStack getCraftingResult(ContainerCrafting containerCrafting);
 
     public abstract int getRecipeSize();
 
-    public abstract ItemStack[] onCraftResult(CraftingContainer craftingContainer);
+    public abstract ItemStack[] onCraftResult(ContainerCrafting containerCrafting);
 }
diff --git a/src/main/java/net/minecraft/core/data/registry/recipe/entry/RecipeEntryCraftingShaped.java b/src/main/java/net/minecraft/core/data/registry/recipe/entry/RecipeEntryCraftingShaped.java
index 80e8f6a5b..1138fbddf 100644
--- a/src/main/java/net/minecraft/core/data/registry/recipe/entry/RecipeEntryCraftingShaped.java
+++ b/src/main/java/net/minecraft/core/data/registry/recipe/entry/RecipeEntryCraftingShaped.java
@@ -9,7 +9,7 @@ import net.minecraft.core.data.registry.recipe.RecipeSymbol;
 import net.minecraft.core.data.registry.recipe.adapter.RecipeCraftingShapedJsonAdapter;
 import net.minecraft.core.data.registry.recipe.adapter.RecipeJsonAdapter;
 import net.minecraft.core.item.ItemStack;
-import net.minecraft.core.player.inventory.container.CraftingContainer;
+import net.minecraft.core.player.inventory.container.ContainerCrafting;
 
 import java.util.List;
 import java.util.Objects;
@@ -56,13 +56,13 @@ public class RecipeEntryCraftingShaped extends RecipeEntryCrafting<RecipeSymbol[
     }
 
     @Override
-    public boolean matches(CraftingContainer craftingContainer) {
+    public boolean matches(ContainerCrafting containerCrafting) {
         for (int _w = 0; _w <= 3 - recipeWidth; _w++) {
             for (int _h = 0; _h <= 3 - recipeHeight; _h++) {
-                if (allowMirrored && isRecipeMatching(craftingContainer, _w, _h, true)) {
+                if (allowMirrored && isRecipeMatching(containerCrafting, _w, _h, true)) {
                     return true;
                 }
-                if (isRecipeMatching(craftingContainer, _w, _h, false)) {
+                if (isRecipeMatching(containerCrafting, _w, _h, false)) {
                     return true;
                 }
             }
@@ -152,7 +152,7 @@ public class RecipeEntryCraftingShaped extends RecipeEntryCrafting<RecipeSymbol[
         return false;
     }
 
-    private boolean isRecipeMatching(CraftingContainer inventory, int x, int y, boolean mirror) {
+    private boolean isRecipeMatching(ContainerCrafting inventory, int x, int y, boolean mirror) {
         for (int k = 0; k < 3; k++) {
             for (int l = 0; l < 3; l++) {
                 int i1 = k - x;
@@ -187,21 +187,21 @@ public class RecipeEntryCraftingShaped extends RecipeEntryCrafting<RecipeSymbol[
     }
 
     @Override
-    public ItemStack getCraftingResult(CraftingContainer craftingContainer) {
+    public ItemStack getCraftingResult(ContainerCrafting containerCrafting) {
         return new ItemStack(getOutput().itemID, getOutput().stackSize, getOutput().getMetadata());
     }
 
     @Override
-    public ItemStack[] onCraftResult(CraftingContainer craftingContainer) {
+    public ItemStack[] onCraftResult(ContainerCrafting containerCrafting) {
         ItemStack[] returnStack = new ItemStack[9];
-        for (int i = 0; i < craftingContainer.getContainerSize(); i++) {
-            ItemStack itemstack1 = craftingContainer.getItem(i);
+        for (int i = 0; i < containerCrafting.getContainerSize(); i++) {
+            ItemStack itemstack1 = containerCrafting.getItem(i);
             if (itemstack1 == null) {
                 continue;
             }
-            craftingContainer.removeItem(i, 1);
+            containerCrafting.removeItem(i, 1);
             if (!consumeContainerItem && itemstack1.getItem().hasContainerItem()) {
-                craftingContainer.setItem(i, new ItemStack(itemstack1.getItem().getContainerItem()));
+                containerCrafting.setItem(i, new ItemStack(itemstack1.getItem().getContainerItem()));
             }
         }
         return returnStack;
diff --git a/src/main/java/net/minecraft/core/data/registry/recipe/entry/RecipeEntryCraftingShapeless.java b/src/main/java/net/minecraft/core/data/registry/recipe/entry/RecipeEntryCraftingShapeless.java
index 81e7fce33..c2cee07e5 100644
--- a/src/main/java/net/minecraft/core/data/registry/recipe/entry/RecipeEntryCraftingShapeless.java
+++ b/src/main/java/net/minecraft/core/data/registry/recipe/entry/RecipeEntryCraftingShapeless.java
@@ -9,7 +9,7 @@ import net.minecraft.core.data.registry.recipe.RecipeSymbol;
 import net.minecraft.core.data.registry.recipe.adapter.RecipeCraftingShapelessJsonAdapter;
 import net.minecraft.core.data.registry.recipe.adapter.RecipeJsonAdapter;
 import net.minecraft.core.item.ItemStack;
-import net.minecraft.core.player.inventory.container.CraftingContainer;
+import net.minecraft.core.player.inventory.container.ContainerCrafting;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -23,7 +23,7 @@ public class RecipeEntryCraftingShapeless extends RecipeEntryCrafting<List<Recip
     public RecipeEntryCraftingShapeless() {}
 
     @Override
-    public boolean matches(CraftingContainer craftingContainer)
+    public boolean matches(ContainerCrafting containerCrafting)
     {
         ArrayList<RecipeSymbol> arraylist = new ArrayList<>(getInput());
         int i = 0;
@@ -35,7 +35,7 @@ public class RecipeEntryCraftingShapeless extends RecipeEntryCrafting<List<Recip
             }
             for(int j = 0; j < 3; j++)
             {
-                ItemStack itemstack = craftingContainer.getItemStackAt(j, i);
+                ItemStack itemstack = containerCrafting.getItemStackAt(j, i);
                 if(itemstack == null)
                 {
                     continue;
@@ -141,26 +141,26 @@ public class RecipeEntryCraftingShapeless extends RecipeEntryCrafting<List<Recip
     }
 
     @Override
-    public ItemStack[] onCraftResult(CraftingContainer craftingContainer){
+    public ItemStack[] onCraftResult(ContainerCrafting containerCrafting){
         ItemStack[] returnStack = new ItemStack[9];
-        for(int i = 0; i < craftingContainer.getContainerSize(); i++)
+        for(int i = 0; i < containerCrafting.getContainerSize(); i++)
         {
-            ItemStack itemStack = craftingContainer.getItem(i);
+            ItemStack itemStack = containerCrafting.getItem(i);
             if(itemStack == null)
             {
                 continue;
             }
-            craftingContainer.removeItem(i, 1);
+            containerCrafting.removeItem(i, 1);
             if(itemStack.getItem().hasContainerItem())
             {
-                craftingContainer.setItem(i, new ItemStack(itemStack.getItem().getContainerItem()));
+                containerCrafting.setItem(i, new ItemStack(itemStack.getItem().getContainerItem()));
             }
         }
         return returnStack;
     }
 
     @Override
-    public ItemStack getCraftingResult(CraftingContainer craftingContainer)
+    public ItemStack getCraftingResult(ContainerCrafting containerCrafting)
     {
         return getOutput().copy();
     }
diff --git a/src/main/java/net/minecraft/core/data/registry/recipe/entry/RecipeEntryCraftingWithTool.java b/src/main/java/net/minecraft/core/data/registry/recipe/entry/RecipeEntryCraftingWithTool.java
index c20817f61..c8f46f4b9 100644
--- a/src/main/java/net/minecraft/core/data/registry/recipe/entry/RecipeEntryCraftingWithTool.java
+++ b/src/main/java/net/minecraft/core/data/registry/recipe/entry/RecipeEntryCraftingWithTool.java
@@ -8,9 +8,8 @@ import net.minecraft.core.data.registry.recipe.RecipeSymbol;
 import net.minecraft.core.data.registry.recipe.SearchQuery;
 import net.minecraft.core.data.registry.recipe.adapter.RecipeEntryCraftingWithToolJsonAdapter;
 import net.minecraft.core.data.registry.recipe.adapter.RecipeJsonAdapter;
-import net.minecraft.core.item.Item;
 import net.minecraft.core.item.ItemStack;
-import net.minecraft.core.player.inventory.container.CraftingContainer;
+import net.minecraft.core.player.inventory.container.ContainerCrafting;
 
 import java.util.List;
 import java.util.Objects;
@@ -29,13 +28,13 @@ public class RecipeEntryCraftingWithTool extends RecipeEntryCraftingDynamic impl
     }
 
     @Override
-    public boolean matches(CraftingContainer craftingContainer) {
+    public boolean matches(ContainerCrafting containerCrafting) {
         boolean toolMatch = false;
         boolean itemMatch = false;
 
         for (int x = 0; x < 3; x++) {
             for (int y = 0; y < 3; y++) {
-                ItemStack stack = craftingContainer.getItemStackAt(x, y);
+                ItemStack stack = containerCrafting.getItemStackAt(x, y);
                 if (stack == null) continue;
                 if (toolToUse.matches(stack)) {
                     toolMatch = true;
@@ -132,16 +131,16 @@ public class RecipeEntryCraftingWithTool extends RecipeEntryCraftingDynamic impl
     }
 
     @Override
-    public ItemStack getCraftingResult(CraftingContainer craftingContainer) {
+    public ItemStack getCraftingResult(ContainerCrafting containerCrafting) {
         return new ItemStack(output.itemID, output.stackSize, output.getMetadata());
     }
 
     @Override
-    public ItemStack[] onCraftResult(CraftingContainer craftingContainer) {
+    public ItemStack[] onCraftResult(ContainerCrafting containerCrafting) {
         ItemStack[] returnStack = new ItemStack[9];
         for (int x = 0; x < 3; x++) {
             for (int y = 0; y < 3; y++) {
-                ItemStack stack = craftingContainer.getItemStackAt(x, y);
+                ItemStack stack = containerCrafting.getItemStackAt(x, y);
                 if (stack == null) continue;
                 ItemStack stack2;
 
@@ -158,7 +157,7 @@ public class RecipeEntryCraftingWithTool extends RecipeEntryCraftingDynamic impl
                         stack2 = new ItemStack(stack.getItem(), stack.stackSize - 1);
                     }
                 }
-                craftingContainer.setSlotContentsAt(x, y, stack2);
+                containerCrafting.setSlotContentsAt(x, y, stack2);
             }
         }
         return returnStack;
diff --git a/src/main/java/net/minecraft/core/data/registry/recipe/entry/RecipeEntryLabel.java b/src/main/java/net/minecraft/core/data/registry/recipe/entry/RecipeEntryLabel.java
index c03d85fc6..d696a7b67 100644
--- a/src/main/java/net/minecraft/core/data/registry/recipe/entry/RecipeEntryLabel.java
+++ b/src/main/java/net/minecraft/core/data/registry/recipe/entry/RecipeEntryLabel.java
@@ -7,20 +7,20 @@ import net.minecraft.core.data.registry.recipe.RecipeSymbol;
 import net.minecraft.core.data.registry.recipe.SearchQuery;
 import net.minecraft.core.item.Items;
 import net.minecraft.core.item.ItemStack;
-import net.minecraft.core.player.inventory.container.CraftingContainer;
+import net.minecraft.core.player.inventory.container.ContainerCrafting;
 
 import java.util.List;
 import java.util.Objects;
 
 public class RecipeEntryLabel extends RecipeEntryCraftingDynamic {
     @Override
-    public ItemStack getCraftingResult(final CraftingContainer craftingContainer) {
+    public ItemStack getCraftingResult(final ContainerCrafting containerCrafting) {
         ItemStack labelStack = null;
         ItemStack otherItem = null;
 
         label0: for(int x = 0; x < 3; x++) {
             for(int y = 0; y < 3; y++) {
-                final ItemStack stack = craftingContainer.getItemStackAt(x, y);
+                final ItemStack stack = containerCrafting.getItemStackAt(x, y);
                 if(stack == null) {
                     continue;
                 }
@@ -55,13 +55,13 @@ public class RecipeEntryLabel extends RecipeEntryCraftingDynamic {
     }
 
     @Override
-    public boolean matches(final CraftingContainer craftingContainer) {
+    public boolean matches(final ContainerCrafting containerCrafting) {
         ItemStack labelStack = null;
         ItemStack otherStack = null;
 
         for(int x = 0; x < 3; x++) {
             for(int y = 0; y < 3; y++) {
-                final ItemStack stack = craftingContainer.getItemStackAt(x, y);
+                final ItemStack stack = containerCrafting.getItemStackAt(x, y);
                 if(stack == null) {
                     continue;
                 }
@@ -182,18 +182,18 @@ public class RecipeEntryLabel extends RecipeEntryCraftingDynamic {
     }
 
     @Override
-    public ItemStack[] onCraftResult(final CraftingContainer craftingContainer) {
+    public ItemStack[] onCraftResult(final ContainerCrafting containerCrafting) {
         final ItemStack[] returnStack = new ItemStack[9];
         for(int x = 0; x < 3; x++) {
             for(int y = 0; y < 3; y++) {
-                final ItemStack stack = craftingContainer.getItemStackAt(x, y);
+                final ItemStack stack = containerCrafting.getItemStackAt(x, y);
                 if(stack == null) {
                     continue;
                 }
                 if(stack.itemID != Items.LABEL.id) {
                     stack.stackSize--;
                     if(stack.stackSize <= 0) {
-                        craftingContainer.setSlotContentsAt(x, y, null);
+                        containerCrafting.setSlotContentsAt(x, y, null);
                     }
                 }
             }
diff --git a/src/main/java/net/minecraft/core/data/registry/recipe/entry/RecipeEntryLabelDye.java b/src/main/java/net/minecraft/core/data/registry/recipe/entry/RecipeEntryLabelDye.java
index 28f7a448a..4fb1a84c7 100644
--- a/src/main/java/net/minecraft/core/data/registry/recipe/entry/RecipeEntryLabelDye.java
+++ b/src/main/java/net/minecraft/core/data/registry/recipe/entry/RecipeEntryLabelDye.java
@@ -7,20 +7,20 @@ import net.minecraft.core.data.registry.recipe.RecipeSymbol;
 import net.minecraft.core.data.registry.recipe.SearchQuery;
 import net.minecraft.core.item.Items;
 import net.minecraft.core.item.ItemStack;
-import net.minecraft.core.player.inventory.container.CraftingContainer;
+import net.minecraft.core.player.inventory.container.ContainerCrafting;
 
 import java.util.List;
 import java.util.Objects;
 
 public class RecipeEntryLabelDye extends RecipeEntryCraftingDynamic{
     @Override
-    public ItemStack getCraftingResult(final CraftingContainer craftingContainer) {
+    public ItemStack getCraftingResult(final ContainerCrafting containerCrafting) {
         ItemStack labelStack = null;
         ItemStack dyeStack = null;
 
         label0: for(int x = 0; x < 3; x++) {
             for(int y = 0; y < 3; y++) {
-                final ItemStack stack = craftingContainer.getItemStackAt(x, y);
+                final ItemStack stack = containerCrafting.getItemStackAt(x, y);
                 if(stack == null) {
                     continue;
                 }
@@ -52,13 +52,13 @@ public class RecipeEntryLabelDye extends RecipeEntryCraftingDynamic{
     }
 
     @Override
-    public boolean matches(final CraftingContainer craftingContainer) {
+    public boolean matches(final ContainerCrafting containerCrafting) {
         ItemStack labelStack = null;
         ItemStack dyeStack = null;
 
         for(int x = 0; x < 3; x++) {
             for(int y = 0; y < 3; y++) {
-                final ItemStack stack = craftingContainer.getItemStackAt(x, y);
+                final ItemStack stack = containerCrafting.getItemStackAt(x, y);
                 if(stack == null) {
                     continue;
                 }
@@ -171,17 +171,17 @@ public class RecipeEntryLabelDye extends RecipeEntryCraftingDynamic{
     }
 
     @Override
-    public ItemStack[] onCraftResult(final CraftingContainer craftingContainer) {
+    public ItemStack[] onCraftResult(final ContainerCrafting containerCrafting) {
         final ItemStack[] returnStack = new ItemStack[9];
         for(int x = 0; x < 3; x++) {
             for(int y = 0; y < 3; y++) {
-                final ItemStack stack = craftingContainer.getItemStackAt(x, y);
+                final ItemStack stack = containerCrafting.getItemStackAt(x, y);
                 if(stack == null) {
                     continue;
                 }
                 stack.stackSize--;
                 if(stack.stackSize <= 0) {
-                    craftingContainer.setSlotContentsAt(x, y, null);
+                    containerCrafting.setSlotContentsAt(x, y, null);
                 }
             }
         }
diff --git a/src/main/java/net/minecraft/core/data/registry/recipe/entry/RecipeEntryMapDuplication.java b/src/main/java/net/minecraft/core/data/registry/recipe/entry/RecipeEntryMapDuplication.java
index 9e043c216..579e940ce 100644
--- a/src/main/java/net/minecraft/core/data/registry/recipe/entry/RecipeEntryMapDuplication.java
+++ b/src/main/java/net/minecraft/core/data/registry/recipe/entry/RecipeEntryMapDuplication.java
@@ -8,8 +8,8 @@ import net.minecraft.core.data.registry.recipe.SearchQuery;
 import net.minecraft.core.item.Item;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.item.Items;
-import net.minecraft.core.item.MapItem;
-import net.minecraft.core.player.inventory.container.CraftingContainer;
+import net.minecraft.core.item.ItemMap;
+import net.minecraft.core.player.inventory.container.ContainerCrafting;
 
 import java.util.List;
 import java.util.Objects;
@@ -17,12 +17,12 @@ import java.util.Objects;
 public class RecipeEntryMapDuplication extends RecipeEntryCraftingDynamic{
 
     @Override
-    public ItemStack getCraftingResult(CraftingContainer craftingContainer)
+    public ItemStack getCraftingResult(ContainerCrafting containerCrafting)
     {
         ItemStack map = null;
         int paperAmount = 0;
-        for (int i = 0; i < craftingContainer.getContainerSize(); i++) {
-            ItemStack s = craftingContainer.getItem(i);
+        for (int i = 0; i < containerCrafting.getContainerSize(); i++) {
+            ItemStack s = containerCrafting.getItem(i);
             if (s != null)
             {
                 Item item = s.getItem();
@@ -45,21 +45,21 @@ public class RecipeEntryMapDuplication extends RecipeEntryCraftingDynamic{
     }
 
     @Override
-    public ItemStack[] onCraftResult(CraftingContainer craftingContainer) {
-        for (int i = 0; i < craftingContainer.getContainerSize(); i++) {
-            craftingContainer.setItem(i, null);
+    public ItemStack[] onCraftResult(ContainerCrafting containerCrafting) {
+        for (int i = 0; i < containerCrafting.getContainerSize(); i++) {
+            containerCrafting.setItem(i, null);
         }
         return new ItemStack[0];
     }
 
     @Override
-    public boolean matches(CraftingContainer craftingContainer) {
+    public boolean matches(ContainerCrafting containerCrafting) {
         ItemStack mapStack = null;
         boolean hasPaper = false;
 
         for(int x = 0; x < 3; x++) {
             for(int y = 0; y < 3; y++) {
-                final ItemStack stack = craftingContainer.getItemStackAt(x, y);
+                final ItemStack stack = containerCrafting.getItemStackAt(x, y);
                 if(stack == null) {
                     continue;
                 }
@@ -77,7 +77,7 @@ public class RecipeEntryMapDuplication extends RecipeEntryCraftingDynamic{
         }
 
         if (mapStack == null) return  false;
-        if (!MapItem.hasInitialized(mapStack)) return false;
+        if (!ItemMap.hasInitialized(mapStack)) return false;
         if (!hasPaper) return false;
 
         return true;
diff --git a/src/main/java/net/minecraft/core/data/registry/recipe/entry/RecipeEntryRepairable.java b/src/main/java/net/minecraft/core/data/registry/recipe/entry/RecipeEntryRepairable.java
index ace2cb176..cef3c9b37 100644
--- a/src/main/java/net/minecraft/core/data/registry/recipe/entry/RecipeEntryRepairable.java
+++ b/src/main/java/net/minecraft/core/data/registry/recipe/entry/RecipeEntryRepairable.java
@@ -9,7 +9,7 @@ import net.minecraft.core.data.registry.recipe.SearchQuery;
 import net.minecraft.core.data.registry.recipe.adapter.RecipeEntryRepairableJsonAdapter;
 import net.minecraft.core.data.registry.recipe.adapter.RecipeJsonAdapter;
 import net.minecraft.core.item.ItemStack;
-import net.minecraft.core.player.inventory.container.CraftingContainer;
+import net.minecraft.core.player.inventory.container.ContainerCrafting;
 
 import java.util.List;
 import java.util.Objects;
@@ -29,7 +29,7 @@ public class RecipeEntryRepairable extends RecipeEntryCraftingDynamic implements
     }
 
     @Override
-    public boolean matches(CraftingContainer craftingContainer)
+    public boolean matches(ContainerCrafting containerCrafting)
     {
         int repairMaterialCount = 0;
         int inItemCount = 0;
@@ -38,7 +38,7 @@ public class RecipeEntryRepairable extends RecipeEntryCraftingDynamic implements
         {
             for (int y = 0; y < 3; y++)
             {
-                ItemStack stack = craftingContainer.getItemStackAt(x, y);
+                ItemStack stack = containerCrafting.getItemStackAt(x, y);
                 if (stack == null) continue;
                 if (repairMaterial.matches(stack))
                 {
@@ -140,7 +140,7 @@ public class RecipeEntryRepairable extends RecipeEntryCraftingDynamic implements
         return false;
     }
     @Override
-    public ItemStack getCraftingResult(CraftingContainer craftingContainer)
+    public ItemStack getCraftingResult(ContainerCrafting containerCrafting)
     {
         int repairMaterialCount = 0;
         ItemStack inItemStack = null;
@@ -149,7 +149,7 @@ public class RecipeEntryRepairable extends RecipeEntryCraftingDynamic implements
         {
             for (int y = 0; y < 3; y++)
             {
-                ItemStack stack = craftingContainer.getItemStackAt(x, y);
+                ItemStack stack = containerCrafting.getItemStackAt(x, y);
                 if (stack == null) continue;
                 if (repairMaterial.matches(stack))
                 {
@@ -179,12 +179,12 @@ public class RecipeEntryRepairable extends RecipeEntryCraftingDynamic implements
     }
 
     @Override
-    public ItemStack[] onCraftResult(CraftingContainer craftingContainer){
+    public ItemStack[] onCraftResult(ContainerCrafting containerCrafting){
         ItemStack[] returnStack = new ItemStack[9];
         for(int x = 0; x < 3; x++)
         {
             for(int y = 0; y < 3; y++) {
-                ItemStack stack = craftingContainer.getItemStackAt(x, y);
+                ItemStack stack = containerCrafting.getItemStackAt(x, y);
                 if (stack == null) continue;
                 ItemStack stack2;
                 if(stack.stackSize-1 == 0)
@@ -192,7 +192,7 @@ public class RecipeEntryRepairable extends RecipeEntryCraftingDynamic implements
                 else {
                     stack2 = new ItemStack(stack.getItem(), stack.stackSize - 1);
                 }
-                craftingContainer.setSlotContentsAt(x, y, stack2);
+                containerCrafting.setSlotContentsAt(x, y, stack2);
             }
         }
         return returnStack;
diff --git a/src/main/java/net/minecraft/core/data/registry/recipe/entry/RecipeEntryRepairableStackable.java b/src/main/java/net/minecraft/core/data/registry/recipe/entry/RecipeEntryRepairableStackable.java
index 8e3040c08..3d77cf26e 100644
--- a/src/main/java/net/minecraft/core/data/registry/recipe/entry/RecipeEntryRepairableStackable.java
+++ b/src/main/java/net/minecraft/core/data/registry/recipe/entry/RecipeEntryRepairableStackable.java
@@ -3,7 +3,7 @@ package net.minecraft.core.data.registry.recipe.entry;
 import net.minecraft.core.data.registry.recipe.SearchQuery;
 import net.minecraft.core.item.Item;
 import net.minecraft.core.item.ItemStack;
-import net.minecraft.core.player.inventory.container.CraftingContainer;
+import net.minecraft.core.player.inventory.container.ContainerCrafting;
 
 public class RecipeEntryRepairableStackable extends RecipeEntryCraftingDynamic {
     public RecipeEntryRepairableStackable(Item inItem, ItemStack materialStack)
@@ -15,7 +15,7 @@ public class RecipeEntryRepairableStackable extends RecipeEntryCraftingDynamic {
     }
 
     @Override
-    public boolean matches(CraftingContainer craftingContainer)
+    public boolean matches(ContainerCrafting containerCrafting)
     {
         int materialStackCount = 0;
         int inItemCount = 0;
@@ -24,7 +24,7 @@ public class RecipeEntryRepairableStackable extends RecipeEntryCraftingDynamic {
         {
             for (int y = 0; y < 3; y++)
             {
-                ItemStack stack = craftingContainer.getItemStackAt(x, y);
+                ItemStack stack = containerCrafting.getItemStackAt(x, y);
                 if (stack == null) continue;
                 if (stack.itemID == materialStack.itemID)
                 {
@@ -51,7 +51,7 @@ public class RecipeEntryRepairableStackable extends RecipeEntryCraftingDynamic {
     }
 
     @Override
-    public ItemStack getCraftingResult(CraftingContainer craftingContainer)
+    public ItemStack getCraftingResult(ContainerCrafting containerCrafting)
     {
         ItemStack inItemStack = null;
         totalStackCount = 0;
@@ -59,7 +59,7 @@ public class RecipeEntryRepairableStackable extends RecipeEntryCraftingDynamic {
         {
             for (int y = 0; y < 3; y++)
             {
-                ItemStack stack = craftingContainer.getItemStackAt(x, y);
+                ItemStack stack = containerCrafting.getItemStackAt(x, y);
                 if (stack == null) continue;
                 if (stack.itemID == materialStack.itemID)
                 {
@@ -87,15 +87,15 @@ public class RecipeEntryRepairableStackable extends RecipeEntryCraftingDynamic {
     }
 
     @Override
-    public ItemStack[] onCraftResult(CraftingContainer craftingContainer){
+    public ItemStack[] onCraftResult(ContainerCrafting containerCrafting){
         int repairCost =  originalDamage - inItemStack.getMetadata();
         ItemStack[] returnStack = new ItemStack[9];
         for(int x = 0; x < 3; x++)
         {
             for(int y = 0; y < 3; y++) {
-                ItemStack stack = craftingContainer.getItemStackAt(x, y);
+                ItemStack stack = containerCrafting.getItemStackAt(x, y);
                 if (stack == null) continue;
-                if (stack.getItem() == inItem) craftingContainer.setSlotContentsAt(x, y, null);
+                if (stack.getItem() == inItem) containerCrafting.setSlotContentsAt(x, y, null);
                 if (stack.getItem() == materialStack.getItem()) {
                     ItemStack replacementStack;
                     if (repairCost <= 0) return returnStack;
@@ -105,7 +105,7 @@ public class RecipeEntryRepairableStackable extends RecipeEntryCraftingDynamic {
                         replacementStack = new ItemStack(stack.getItem(), stack.stackSize - repairCost);
                     }
                     repairCost = repairCost - stack.stackSize;
-                    craftingContainer.setSlotContentsAt(x, y, replacementStack);
+                    containerCrafting.setSlotContentsAt(x, y, replacementStack);
                 }
             }
         }
diff --git a/src/main/java/net/minecraft/core/data/registry/recipe/entry/RecipeEntryScrap.java b/src/main/java/net/minecraft/core/data/registry/recipe/entry/RecipeEntryScrap.java
index 45c18bc6c..e22e36324 100644
--- a/src/main/java/net/minecraft/core/data/registry/recipe/entry/RecipeEntryScrap.java
+++ b/src/main/java/net/minecraft/core/data/registry/recipe/entry/RecipeEntryScrap.java
@@ -10,7 +10,7 @@ import net.minecraft.core.data.registry.recipe.adapter.RecipeEntryScrapJsonAdapt
 import net.minecraft.core.data.registry.recipe.adapter.RecipeJsonAdapter;
 import net.minecraft.core.item.Item;
 import net.minecraft.core.item.ItemStack;
-import net.minecraft.core.player.inventory.container.CraftingContainer;
+import net.minecraft.core.player.inventory.container.ContainerCrafting;
 
 import java.util.List;
 import java.util.Objects;
@@ -34,14 +34,14 @@ public class RecipeEntryScrap extends RecipeEntryCraftingDynamic implements HasJ
     }
 
     @Override
-    public boolean matches(CraftingContainer craftingContainer)
+    public boolean matches(ContainerCrafting containerCrafting)
     {
         int itemToScrapCount = 0;
         for (int x = 0; x < 3; x++)
         {
             for (int y = 0; y < 3; y++)
             {
-                ItemStack stack = craftingContainer.getItemStackAt(x, y);
+                ItemStack stack = containerCrafting.getItemStackAt(x, y);
                 if (stack == null) continue;
                 if (stack.itemID == itemToScrap.id)
                 {
@@ -139,7 +139,7 @@ public class RecipeEntryScrap extends RecipeEntryCraftingDynamic implements HasJ
     }
 
     @Override
-    public ItemStack getCraftingResult(CraftingContainer craftingContainer)
+    public ItemStack getCraftingResult(ContainerCrafting containerCrafting)
     {
         float itemToScrapDamage = 0;
         float itemMaxDamage = 0;
@@ -149,7 +149,7 @@ public class RecipeEntryScrap extends RecipeEntryCraftingDynamic implements HasJ
         {
             for (int y = 0; y < 3; y++)
             {
-                ItemStack stack = craftingContainer.getItemStackAt(x, y);
+                ItemStack stack = containerCrafting.getItemStackAt(x, y);
                 if (stack == null) continue;
                 if (stack.itemID == itemToScrap.id)
                 {
@@ -165,12 +165,12 @@ public class RecipeEntryScrap extends RecipeEntryCraftingDynamic implements HasJ
     }
 
     @Override
-    public ItemStack[] onCraftResult(CraftingContainer craftingContainer){
+    public ItemStack[] onCraftResult(ContainerCrafting containerCrafting){
         ItemStack[] returnStack = new ItemStack[9];
         for(int x = 0; x < 3; x++)
         {
             for(int y = 0; y < 3; y++) {
-                ItemStack stack = craftingContainer.getItemStackAt(x, y);
+                ItemStack stack = containerCrafting.getItemStackAt(x, y);
                 if (stack == null) continue;
                 ItemStack stack2;
                 if(stack.stackSize-1 == 0)
@@ -178,7 +178,7 @@ public class RecipeEntryScrap extends RecipeEntryCraftingDynamic implements HasJ
                 else {
                     stack2 = new ItemStack(stack.getItem(), stack.stackSize - 1);
                 }
-                craftingContainer.setSlotContentsAt(x, y, stack2);
+                containerCrafting.setSlotContentsAt(x, y, stack2);
             }
         }
         return returnStack;
diff --git a/src/main/java/net/minecraft/core/data/registry/recipe/entry/RecipeEntryUndyeing.java b/src/main/java/net/minecraft/core/data/registry/recipe/entry/RecipeEntryUndyeing.java
index 8653a6d12..a66d4cd20 100644
--- a/src/main/java/net/minecraft/core/data/registry/recipe/entry/RecipeEntryUndyeing.java
+++ b/src/main/java/net/minecraft/core/data/registry/recipe/entry/RecipeEntryUndyeing.java
@@ -10,7 +10,7 @@ import net.minecraft.core.data.registry.recipe.SearchQuery;
 import net.minecraft.core.data.registry.recipe.adapter.RecipeEntryUndyeingJsonAdapter;
 import net.minecraft.core.data.registry.recipe.adapter.RecipeJsonAdapter;
 import net.minecraft.core.item.ItemStack;
-import net.minecraft.core.player.inventory.container.CraftingContainer;
+import net.minecraft.core.player.inventory.container.ContainerCrafting;
 
 import java.util.List;
 import java.util.Objects;
@@ -28,11 +28,11 @@ public class RecipeEntryUndyeing extends RecipeEntryCraftingDynamic implements H
     }
 
     @Override
-    public boolean matches(CraftingContainer craftingContainer) {
+    public boolean matches(ContainerCrafting containerCrafting) {
         boolean hasSponge = false;
         boolean hasItem = false;
         for (int i = 0; i < 9; i++) {
-            ItemStack stack = craftingContainer.getItem(i);
+            ItemStack stack = containerCrafting.getItem(i);
             if (stack != null && stack.getItem() == Blocks.SPONGE_WET.asItem()) {
                 if (hasSponge) return false;
                 hasSponge = true;
@@ -126,10 +126,10 @@ public class RecipeEntryUndyeing extends RecipeEntryCraftingDynamic implements H
     }
 
     @Override
-    public ItemStack getCraftingResult(CraftingContainer craftingContainer) {
+    public ItemStack getCraftingResult(ContainerCrafting containerCrafting) {
         int items = 0;
-        for (int i = 0; i < craftingContainer.getContainerSize(); i++) {
-            ItemStack itemstack1 = craftingContainer.getItem(i);
+        for (int i = 0; i < containerCrafting.getContainerSize(); i++) {
+            ItemStack itemstack1 = containerCrafting.getItem(i);
             if (itemstack1 == null || itemstack1.getItem() == Blocks.SPONGE_WET.asItem()) {
                 continue;
             }
@@ -144,14 +144,14 @@ public class RecipeEntryUndyeing extends RecipeEntryCraftingDynamic implements H
     }
 
     @Override
-    public ItemStack[] onCraftResult(CraftingContainer craftingContainer) {
+    public ItemStack[] onCraftResult(ContainerCrafting containerCrafting) {
         ItemStack[] returnStack = new ItemStack[9];
-        for (int i = 0; i < craftingContainer.getContainerSize(); i++) {
-            ItemStack itemstack1 = craftingContainer.getItem(i);
+        for (int i = 0; i < containerCrafting.getContainerSize(); i++) {
+            ItemStack itemstack1 = containerCrafting.getItem(i);
             if (itemstack1 == null || itemstack1.getItem() == Blocks.SPONGE_WET.asItem()) {
                 continue;
             }
-            craftingContainer.removeItem(i, 1);
+            containerCrafting.removeItem(i, 1);
         }
         return returnStack;
     }
diff --git a/src/main/java/net/minecraft/core/entity/ConsumedFood.java b/src/main/java/net/minecraft/core/entity/ConsumedFood.java
index c691678fa..084965b8e 100644
--- a/src/main/java/net/minecraft/core/entity/ConsumedFood.java
+++ b/src/main/java/net/minecraft/core/entity/ConsumedFood.java
@@ -1,14 +1,14 @@
 package net.minecraft.core.entity;
 
-import net.minecraft.core.item.FoodItem;
+import net.minecraft.core.item.ItemFood;
 
 public class ConsumedFood {
     private final Mob entity;
-    private final FoodItem food;
+    private final ItemFood food;
     private int healRemaining;
     private int tickCounter = 0;
 
-    public ConsumedFood(Mob entity, FoodItem food) {
+    public ConsumedFood(Mob entity, ItemFood food) {
         this.entity = entity;
         this.food = food;
 
diff --git a/src/main/java/net/minecraft/core/entity/Entity.java b/src/main/java/net/minecraft/core/entity/Entity.java
index aaefe2bf4..383456ce8 100644
--- a/src/main/java/net/minecraft/core/entity/Entity.java
+++ b/src/main/java/net/minecraft/core/entity/Entity.java
@@ -3,6 +3,7 @@ package net.minecraft.core.entity;
 import java.util.List;
 import java.util.Random;
 
+import net.minecraft.core.block.BlockFluid;
 import net.minecraft.core.util.helper.DyeColor;
 import net.minecraft.core.world.ICarriable;
 import org.jetbrains.annotations.Nullable;
@@ -16,7 +17,6 @@ import net.minecraft.client.gui.guidebook.mobs.MobInfoRegistry;
 import net.minecraft.client.render.LightmapHelper;
 import net.minecraft.core.Global;
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.FluidBlock;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.block.tag.BlockTags;
 import net.minecraft.core.entity.player.Player;
@@ -776,7 +776,7 @@ public abstract class Entity
         int l = world.getBlockId(i, j, k);
         if(l != 0 && Block.blocksList[l].blockMaterial == material)
         {
-            float f = FluidBlock.getWaterVolume(world.getBlockMetadata(i, j, k)) - 0.2F;
+            float f = BlockFluid.getWaterVolume(world.getBlockMetadata(i, j, k)) - 0.2F;
             float f1 = (float)(j + 1) - f;
             return d < (double)f1;
         } else
@@ -1128,19 +1128,19 @@ public abstract class Entity
         return bbHeight / 2.0F;
     }
 
-    public ItemEntity spawnAtLocation(int itemId, int stackSize)
+    public EntityItem spawnAtLocation(int itemId, int stackSize)
     {
         return spawnAtLocation(itemId, stackSize, 0.0F);
     }
 
-    public ItemEntity spawnAtLocation(int itemId, int stackSize, float verticalOffset)
+    public EntityItem spawnAtLocation(int itemId, int stackSize, float verticalOffset)
     {
         return spawnAtLocation(new ItemStack(itemId, stackSize, 0), verticalOffset);
     }
 
-    public ItemEntity spawnAtLocation(ItemStack itemStack, float verticalOffset)
+    public EntityItem spawnAtLocation(ItemStack itemStack, float verticalOffset)
     {
-        ItemEntity entityitem = new ItemEntity(world, x, y + verticalOffset, z, itemStack);
+        EntityItem entityitem = new EntityItem(world, x, y + verticalOffset, z, itemStack);
         entityitem.pickupDelay = 10;
         world.entityJoinedWorld(entityitem);
         return entityitem;
@@ -1366,7 +1366,7 @@ public abstract class Entity
         }
     }
 
-    public void thunderHit(LightningEntity bolt)
+    public void thunderHit(EntityLightning bolt)
     {
         burn(5);
         remainingFireTicks++;
diff --git a/src/main/java/net/minecraft/core/entity/EntityDispatcher.java b/src/main/java/net/minecraft/core/entity/EntityDispatcher.java
index b4952ef09..eca67a8d4 100644
--- a/src/main/java/net/minecraft/core/entity/EntityDispatcher.java
+++ b/src/main/java/net/minecraft/core/entity/EntityDispatcher.java
@@ -137,39 +137,39 @@ public class EntityDispatcher
 
     static 
     {
-        addMapping(ItemEntity.class, "Item", 1);
-        addMapping(LightningEntity.class, "Lightning", 8);
-        addMapping(PaintingEntity.class, "Painting", 9);
-        addMapping(ArrowProjectile.class, "Arrow", 10);
-        addMapping(SnowballProjectile.class, "Snowball", 11);
-        addMapping(FireballProjectile.class, "Fireball", 12);
-        addMapping(TNTPrimedEntity.class, "PrimedTnt", 20);
-        addMapping(FallingBlockEntity.class, "FallingSand", 21);
+        addMapping(EntityItem.class, "Item", 1);
+        addMapping(EntityLightning.class, "Lightning", 8);
+        addMapping(EntityPainting.class, "Painting", 9);
+        addMapping(ProjectileArrow.class, "Arrow", 10);
+        addMapping(ProjectileSnowball.class, "Snowball", 11);
+        addMapping(ProjectileFireball.class, "Fireball", 12);
+        addMapping(EntityPrimedTNT.class, "PrimedTnt", 20);
+        addMapping(EntityFallingBlock.class, "FallingSand", 21);
         addMapping(MinecartEntity.class, "Minecart", 40);
         addMapping(BoatEntity.class, "Boat", 41);
-        addMapping(ZombieArmoredMob.class, "ArmouredZombie", 42);
-        addMapping(GoldenArrowProjectile.class, "ArrowGolden", 43);
-        addMapping(CannonballProjectile.class, "Cannonball", 44);
-        addMapping(PurpleArrowProjectile.class, "ArrowPurple", 45);
-        addMapping(PebbleProjectile.class, "Pebble", 46);
-        addMapping(FireflyClusterMob.class, "FireflyCluster", 47);
+        addMapping(MobZombieArmored.class, "ArmouredZombie", 42);
+        addMapping(ProjectileArrowGolden.class, "ArrowGolden", 43);
+        addMapping(ProjectileCannonball.class, "Cannonball", 44);
+        addMapping(ProjectileArrowPurple.class, "ArrowPurple", 45);
+        addMapping(ProjectilePebble.class, "Pebble", 46);
+        addMapping(MobFireflyCluster.class, "FireflyCluster", 47);
         addMapping(Mob.class, "Mob", 48);
-        addMapping(HumanMob.class, "Monster", 49);
-        addMapping(CreeperMob.class, "Creeper", 50);
-        addMapping(SkeletonMob.class, "Skeleton", 51);
-        addMapping(SpiderMob.class, "Spider", 52);
-        addMapping(GiantMob.class, "Giant", 53);
-        addMapping(ZombieMob.class, "Zombie", 54);
-        addMapping(SlimeMob.class, "Slime", 55);
-        addMapping(GhastMob.class, "Ghast", 56);
-        addMapping(ZombiePigMob.class, "PigZombie", 57);
-        addMapping(SnowmanMob.class, "Snowman", 58);
-        addMapping(ScorpionMob.class, "Scorpion", 59);
-        addMapping(PigMob.class, "Pig", 90);
-        addMapping(SheepMob.class, "Sheep", 91);
-        addMapping(CowMob.class, "Cow", 92);
-        addMapping(ChickenMob.class, "Chicken", 93);
-        addMapping(SquidMob.class, "Squid", 94);
-        addMapping(WolfMob.class, "Wolf", 95);
+        addMapping(MobHuman.class, "MobMonster", 49);
+        addMapping(MobCreeper.class, "Creeper", 50);
+        addMapping(MobSkeleton.class, "Skeleton", 51);
+        addMapping(MobSpider.class, "Spider", 52);
+        addMapping(MobGiant.class, "Giant", 53);
+        addMapping(MobZombie.class, "Zombie", 54);
+        addMapping(MobSlime.class, "Slime", 55);
+        addMapping(MobGhast.class, "Ghast", 56);
+        addMapping(MobZombiePig.class, "PigZombie", 57);
+        addMapping(MobSnowman.class, "Snowman", 58);
+        addMapping(MobScorpion.class, "Scorpion", 59);
+        addMapping(MobPig.class, "Pig", 90);
+        addMapping(MobSheep.class, "Sheep", 91);
+        addMapping(MobCow.class, "Cow", 92);
+        addMapping(MobChicken.class, "Chicken", 93);
+        addMapping(MobSquid.class, "Squid", 94);
+        addMapping(MobWolf.class, "Wolf", 95);
     }
 }
diff --git a/src/main/java/net/minecraft/core/entity/FallingBlockEntity.java b/src/main/java/net/minecraft/core/entity/EntityFallingBlock.java
similarity index 83%
rename from src/main/java/net/minecraft/core/entity/FallingBlockEntity.java
rename to src/main/java/net/minecraft/core/entity/EntityFallingBlock.java
index e8e02854f..de8ffe0e4 100644
--- a/src/main/java/net/minecraft/core/entity/FallingBlockEntity.java
+++ b/src/main/java/net/minecraft/core/entity/EntityFallingBlock.java
@@ -2,14 +2,14 @@ package net.minecraft.core.entity;
 
 
 // Referenced classes of package net.minecraft.src:
-//            Entity, MathHelper, World, SandBlock,
+//            Entity, MathHelper, World, BlockSand,
 //            NBTTagCompound
 
 import net.minecraft.core.block.Block;
+import net.minecraft.core.block.BlockSand;
 import net.minecraft.core.block.Blocks;
-import net.minecraft.core.block.SandBlock;
-import net.minecraft.core.block.entity.BlockEntity;
-import net.minecraft.core.block.entity.BlockEntityDispatcher;
+import net.minecraft.core.block.entity.TileEntity;
+import net.minecraft.core.block.entity.TileEntityDispatcher;
 import net.minecraft.core.block.motion.CarriedBlock;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.item.ItemStack;
@@ -20,26 +20,26 @@ import net.minecraft.core.world.IVehicle;
 import net.minecraft.core.world.World;
 import org.jetbrains.annotations.Nullable;
 
-public class FallingBlockEntity extends Entity
+public class EntityFallingBlock extends Entity
 {
     public CarriedBlock carriedBlock;
     public int fallTime;
     public boolean hasRemovedBlock = false;
 
-    public FallingBlockEntity(World world)
+    public EntityFallingBlock(World world)
     {
         super(world);
         carriedBlock = new CarriedBlock(this, Blocks.SAND, 0, null);
         fallTime = 0;
     }
 
-    public FallingBlockEntity(World world, double x, double y, double z, int blockId, int blockMeta, @Nullable BlockEntity blockEntity) {
+    public EntityFallingBlock(World world, double x, double y, double z, int blockId, int blockMeta, @Nullable TileEntity tileEntity) {
         super(world);
         fallTime = 0;
-        carriedBlock = new CarriedBlock(this, blockId, blockMeta, blockEntity);
-        if (blockEntity != null) {
-            blockEntity.worldObj = null;
-            blockEntity.carriedBlock = carriedBlock;
+        carriedBlock = new CarriedBlock(this, blockId, blockMeta, tileEntity);
+        if (tileEntity != null) {
+            tileEntity.worldObj = null;
+            tileEntity.carriedBlock = carriedBlock;
         }
         blocksBuilding = true;
         setSize(1F, 1F);
@@ -85,12 +85,12 @@ public class FallingBlockEntity extends Entity
         }
         if (isOnFire() && carriedBlock.blockId == Blocks.TNT.id) {
             remove();
-            TNTPrimedEntity tntPrimedEntity = new TNTPrimedEntity(world, x, y, z);
-            tntPrimedEntity.xd = this.xd;
-            tntPrimedEntity.yd = this.yd;
-            tntPrimedEntity.zd = this.zd;
-            tntPrimedEntity.pushTime = this.pushTime;
-            world.entityJoinedWorld(tntPrimedEntity);
+            EntityPrimedTNT entityPrimedTNT = new EntityPrimedTNT(world, x, y, z);
+            entityPrimedTNT.xd = this.xd;
+            entityPrimedTNT.yd = this.yd;
+            entityPrimedTNT.zd = this.zd;
+            entityPrimedTNT.pushTime = this.pushTime;
+            world.entityJoinedWorld(entityPrimedTNT);
             return;
         }
         xo = x;
@@ -130,7 +130,7 @@ public class FallingBlockEntity extends Entity
                 Entity rider = getPassenger();
                 ejectRider();
                 remove();
-                if((!world.canBlockBePlacedAt(carriedBlock.blockId, x, y, z, true, Side.TOP) || SandBlock.canFallBelow(world, x, y - 1, z) || !world.setBlock(x, y, z, carriedBlock.blockId)) && !world.isClientSide)
+                if((!world.canBlockBePlacedAt(carriedBlock.blockId, x, y, z, true, Side.TOP) || BlockSand.canFallBelow(world, x, y - 1, z) || !world.setBlock(x, y, z, carriedBlock.blockId)) && !world.isClientSide)
                 {
                     if(hasRemovedBlock) {
                         drop();
@@ -138,7 +138,7 @@ public class FallingBlockEntity extends Entity
                 } else if (!world.isClientSide) {
                     world.setBlockMetadata(x, y, z, carriedBlock.metadata);
                     if (carriedBlock.entity != null) {
-                        BlockEntity oldEnt = world.getBlockEntity(x, y, z);
+                        TileEntity oldEnt = world.getBlockEntity(x, y, z);
                         if (oldEnt != null) {
                             oldEnt.invalidate();
                         }
@@ -153,7 +153,7 @@ public class FallingBlockEntity extends Entity
                     world.notifyBlockChange(x, y, z, carriedBlock.blockId);
                 }
                 if (rider != null) {
-                    BlockEntity te = world.getBlockEntity(x, y, z);
+                    TileEntity te = world.getBlockEntity(x, y, z);
                     if (te instanceof IVehicle) rider.startRiding((IVehicle) te);
                 }
             } else if(fallTime > 600 && !world.isClientSide) {
@@ -204,7 +204,7 @@ public class FallingBlockEntity extends Entity
         carriedBlock = new CarriedBlock(this,
             tag.getShort("Tile") & 0x3fff,
             tag.getShort("TileData") & 0xff,
-            tag.containsKey("TileEntity") ? BlockEntityDispatcher.createAndLoadEntity(tag.getCompound("TileEntity")) : null);
+            tag.containsKey("TileEntity") ? TileEntityDispatcher.createAndLoadEntity(tag.getCompound("TileEntity")) : null);
     }
 
     @Override
diff --git a/src/main/java/net/minecraft/core/entity/FishingBobberEntity.java b/src/main/java/net/minecraft/core/entity/EntityFishingBobber.java
similarity index 96%
rename from src/main/java/net/minecraft/core/entity/FishingBobberEntity.java
rename to src/main/java/net/minecraft/core/entity/EntityFishingBobber.java
index 8c02a1a67..07c83dbfb 100644
--- a/src/main/java/net/minecraft/core/entity/FishingBobberEntity.java
+++ b/src/main/java/net/minecraft/core/entity/EntityFishingBobber.java
@@ -16,7 +16,7 @@ import net.minecraft.core.util.helper.DamageType;
 
 import java.util.List;
 
-public class FishingBobberEntity extends Entity
+public class EntityFishingBobber extends Entity
 {
     public static final int ID_BOBBER_BITFIELD = 2;
     private int xTile;
@@ -36,7 +36,7 @@ public class FishingBobberEntity extends Entity
     private double velocityY;
     private double velocityZ;
 
-    public FishingBobberEntity(World world)
+    public EntityFishingBobber(World world)
     {
         super(world);
         ticksInAir = 0;
@@ -46,14 +46,14 @@ public class FishingBobberEntity extends Entity
         ignoreFrustumCheck = true;
     }
 
-    public FishingBobberEntity(World world, double x, double y, double z)
+    public EntityFishingBobber(World world, double x, double y, double z)
     {
         this(world);
         setPos(x, y, z);
         ignoreFrustumCheck = true;
     }
 
-    public FishingBobberEntity(World world, Player owner)
+    public EntityFishingBobber(World world, Player owner)
     {
         super(world);
         ticksInAir = 0;
@@ -178,8 +178,8 @@ public class FishingBobberEntity extends Entity
                     x = hookedEntity.x;
                     y = hookedEntity.bb.minY + (double) hookedEntity.bbHeight * 0.8D;
                     z = hookedEntity.z;
-                    if(hookedEntity instanceof PathfinderMob){
-                        ((PathfinderMob) hookedEntity).target = owner;
+                    if(hookedEntity instanceof MobPathfinder){
+                        ((MobPathfinder) hookedEntity).target = owner;
                     }
                     double dx = owner.x - x;
                     double dy = owner.y - y;
@@ -353,8 +353,8 @@ public class FishingBobberEntity extends Entity
     @Override
     public void remove()
     {
-        if(hookedEntity instanceof PathfinderMob){
-            ((PathfinderMob) hookedEntity).target = null;
+        if(hookedEntity instanceof MobPathfinder){
+            ((MobPathfinder) hookedEntity).target = null;
         }
         super.remove();
     }
@@ -410,7 +410,7 @@ public class FishingBobberEntity extends Entity
         }
         else if(ticksCatchable > 0)
         {
-            ItemEntity entityitem = new ItemEntity(world, x, y, z, new ItemStack(Items.FOOD_FISH_RAW));
+            EntityItem entityitem = new EntityItem(world, x, y, z, new ItemStack(Items.FOOD_FISH_RAW));
             double dx = owner.x - x;
             double dy = owner.y - y;
             double dz = owner.z - z;
diff --git a/src/main/java/net/minecraft/core/entity/ItemEntity.java b/src/main/java/net/minecraft/core/entity/EntityItem.java
similarity index 86%
rename from src/main/java/net/minecraft/core/entity/ItemEntity.java
rename to src/main/java/net/minecraft/core/entity/EntityItem.java
index 048f47f69..5cf1915b5 100644
--- a/src/main/java/net/minecraft/core/entity/ItemEntity.java
+++ b/src/main/java/net/minecraft/core/entity/EntityItem.java
@@ -13,19 +13,18 @@ import net.minecraft.core.achievement.Achievements;
 import net.minecraft.core.achievement.stat.StatList;
 import net.minecraft.core.block.Block;
 import net.minecraft.core.block.Blocks;
-import net.minecraft.core.block.LogBlock;
+import net.minecraft.core.block.BlockLog;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.entity.player.Player;
-import net.minecraft.core.item.Item;
+import net.minecraft.core.item.ItemDiscMusic;
 import net.minecraft.core.item.Items;
 import net.minecraft.core.item.ItemStack;
-import net.minecraft.core.item.MusicDiscItem;
 import net.minecraft.core.util.helper.DamageType;
 import net.minecraft.core.util.helper.MathHelper;
 import net.minecraft.core.util.phys.AABB;
 import net.minecraft.core.world.World;
 
-public class ItemEntity extends Entity
+public class EntityItem extends Entity
 {
     private static final int LIFETIME = 6000;
     public ItemStack item;
@@ -36,7 +35,7 @@ public class ItemEntity extends Entity
     public int basketPickupDelay = 0;
     public static boolean enableItemClumping = true;
 
-    public ItemEntity(World world, double x, double y, double z, ItemStack itemstack) {
+    public EntityItem(World world, double x, double y, double z, ItemStack itemstack) {
         super(world);
         age = 0;
         health = 8;
@@ -50,7 +49,7 @@ public class ItemEntity extends Entity
         yd = 0.2D;
         zd = (float)(Math.random() * 0.2D - 0.1D);
         if(itemstack == null) {
-        	System.err.println("Created ItemEntity with no item!");
+        	System.err.println("Created EntityItem with no item!");
         	Thread.dumpStack();
         }
     }
@@ -61,7 +60,7 @@ public class ItemEntity extends Entity
         return false;
     }
 
-    public ItemEntity(World world)
+    public EntityItem(World world)
     {
         super(world);
         age = 0;
@@ -81,7 +80,7 @@ public class ItemEntity extends Entity
     {
         super.tick();
         if(item == null) {
-            System.err.println("Removing ItemEntity with no item!");
+            System.err.println("Removing EntityItem with no item!");
             Thread.dumpStack();
             remove();
             return;
@@ -208,7 +207,7 @@ public class ItemEntity extends Entity
 
 			if(item.stackSize < previousStackSize) {
 				if(item.itemID < 16384) {
-					if(Block.blocksList[item.itemID] instanceof LogBlock) {
+					if(Block.blocksList[item.itemID] instanceof BlockLog) {
 						player.triggerAchievement(Achievements.MINE_WOOD);
 					}
 				}
@@ -242,7 +241,7 @@ public class ItemEntity extends Entity
 					}
 				}
 
-                if (item.getItem() instanceof MusicDiscItem) {
+                if (item.getItem() instanceof ItemDiscMusic) {
                     if( player.getStat(Items.RECORD_13.getStat(StatList.STAT_PICKED_UP)) > 0 &&
                         player.getStat(Items.RECORD_CAT.getStat(StatList.STAT_PICKED_UP)) > 0 &&
                         player.getStat(Items.RECORD_BLOCKS.getStat(StatList.STAT_PICKED_UP)) > 0 &&
@@ -269,36 +268,36 @@ public class ItemEntity extends Entity
 
     public void clumpToNearbyStack() {
     	AABB boundingBox = this.bb.grow(0.5, 0.0, 0.5);
-    	List<Entity> entities = world.getEntitiesWithinAABB(ItemEntity.class, boundingBox);
+    	List<Entity> entities = world.getEntitiesWithinAABB(EntityItem.class, boundingBox);
     	
     	for(Entity otherEntity : entities) {
-    		if(otherEntity == this || !(otherEntity instanceof ItemEntity) || !otherEntity.isAlive() || !this.isAlive()) {
+    		if(otherEntity == this || !(otherEntity instanceof EntityItem) || !otherEntity.isAlive() || !this.isAlive()) {
     			continue;
     		}
-    		ItemEntity otherItemEntity = (ItemEntity) otherEntity;
+    		EntityItem otherEntityItem = (EntityItem) otherEntity;
     		
     		ItemStack thisItemStack = this.item;
-    		ItemStack otherItemStack = otherItemEntity.item;
+    		ItemStack otherItemStack = otherEntityItem.item;
     		
-    		if(this.item.canStackWith(otherItemEntity.item)) {
+    		if(this.item.canStackWith(otherEntityItem.item)) {
     			if(thisItemStack.stackSize + otherItemStack.stackSize > 64) {
     				continue;
     			}
     			
     			if(otherItemStack.stackSize > thisItemStack.stackSize) {
-    				combineItems(otherItemEntity, this);
+    				combineItems(otherEntityItem, this);
     			}else {
-    				combineItems(this, otherItemEntity);
+    				combineItems(this, otherEntityItem);
     			}
     		}
     	}
     }
     
-    private static void combineItems(ItemEntity itemEntity1, ItemEntity itemEntity2) {
-    	itemEntity1.item.stackSize += itemEntity2.item.stackSize;
-    	itemEntity2.item.stackSize = 0;
-    	itemEntity1.age = Math.min(itemEntity1.age, itemEntity2.age);
-    	itemEntity1.pickupDelay = Math.max(itemEntity1.pickupDelay, itemEntity2.pickupDelay);
-    	itemEntity2.remove();
+    private static void combineItems(EntityItem entityItem1, EntityItem entityItem2) {
+    	entityItem1.item.stackSize += entityItem2.item.stackSize;
+    	entityItem2.item.stackSize = 0;
+    	entityItem1.age = Math.min(entityItem1.age, entityItem2.age);
+    	entityItem1.pickupDelay = Math.max(entityItem1.pickupDelay, entityItem2.pickupDelay);
+    	entityItem2.remove();
     }
 }
diff --git a/src/main/java/net/minecraft/core/entity/LightningEntity.java b/src/main/java/net/minecraft/core/entity/EntityLightning.java
similarity index 94%
rename from src/main/java/net/minecraft/core/entity/LightningEntity.java
rename to src/main/java/net/minecraft/core/entity/EntityLightning.java
index 6c9b2afdb..25360e394 100644
--- a/src/main/java/net/minecraft/core/entity/LightningEntity.java
+++ b/src/main/java/net/minecraft/core/entity/EntityLightning.java
@@ -13,19 +13,19 @@ import java.util.List;
 
 // Referenced classes of package net.minecraft.src:
 //            EntityWeatherEffect, World, MathHelper, Block, 
-//            FireBlock, AxisAlignedBB, Entity, NBTTagCompound,
+//            BlockFire, AxisAlignedBB, Entity, NBTTagCompound,
 //            Vec3D
 
-public class LightningEntity extends Entity
+public class EntityLightning extends Entity
 {
     private int life;
     public long seed;
     private int flashes;
-    public LightningEntity(World world){
+    public EntityLightning(World world){
         this(world,0, 0, 0);
     }
 
-    public LightningEntity(World world, double x, double y, double z)
+    public EntityLightning(World world, double x, double y, double z)
     {
         super(world);
         seed = 0L;
diff --git a/src/main/java/net/minecraft/core/entity/PaintingEntity.java b/src/main/java/net/minecraft/core/entity/EntityPainting.java
similarity index 94%
rename from src/main/java/net/minecraft/core/entity/PaintingEntity.java
rename to src/main/java/net/minecraft/core/entity/EntityPainting.java
index 25efce7e9..f40331605 100644
--- a/src/main/java/net/minecraft/core/entity/PaintingEntity.java
+++ b/src/main/java/net/minecraft/core/entity/EntityPainting.java
@@ -17,10 +17,10 @@ import java.util.*;
 
 // Referenced classes of package net.minecraft.src:
 //            Entity, ArtType, AxisAlignedBB, World,
-//            ItemEntity, ItemStack, Item, MathHelper,
+//            EntityItem, ItemStack, Item, MathHelper,
 //            Material, NBTTagCompound
 
-public class PaintingEntity extends Entity
+public class EntityPainting extends Entity
 {
     public static final int DATA_ITEM_ID = 16;
     public static final int DATA_ITEM_METADATA_ID = 17;
@@ -32,7 +32,7 @@ public class PaintingEntity extends Entity
     public int blockZ;
     public ArtType art;
 
-    public PaintingEntity(World world)
+    public EntityPainting(World world)
     {
         super(world);
         updateCounter = 0;
@@ -48,7 +48,7 @@ public class PaintingEntity extends Entity
         return true;
     }
 
-    public PaintingEntity(World world, int x, int y, int z, int side, String motive)
+    public EntityPainting(World world, int x, int y, int z, int side, String motive)
     {
         this(world);
         blockX = x;
@@ -153,9 +153,9 @@ public class PaintingEntity extends Entity
             if(!canStay())
             {
                 remove();
-                world.entityJoinedWorld(new ItemEntity(world, x, y, z, new ItemStack(Items.PAINTING)));
+                world.entityJoinedWorld(new EntityItem(world, x, y, z, new ItemStack(Items.PAINTING)));
                 if (getBorderStack() != null){
-                    this.world.entityJoinedWorld(new ItemEntity(this.world, this.x, this.y, this.z, getBorderStack()));
+                    this.world.entityJoinedWorld(new EntityItem(this.world, this.x, this.y, this.z, getBorderStack()));
                 }
             }
         }
@@ -213,7 +213,7 @@ public class PaintingEntity extends Entity
         List<Entity> entities = world.getEntitiesWithinAABBExcludingEntity(this, bb);
         for (Entity entity : entities)
         {
-            if (entity instanceof PaintingEntity)
+            if (entity instanceof EntityPainting)
             {
                 return false;
             }
@@ -237,9 +237,9 @@ public class PaintingEntity extends Entity
             markHurt();
             if (!(entity instanceof Player) || ((Player) entity).getGamemode().dropBlockOnBreak())
             {
-                world.entityJoinedWorld(new ItemEntity(world, x, y, z, new ItemStack(Items.PAINTING)));
+                world.entityJoinedWorld(new EntityItem(world, x, y, z, new ItemStack(Items.PAINTING)));
                 if (getBorderStack() != null){
-                    this.world.entityJoinedWorld(new ItemEntity(this.world, this.x, this.y, this.z, getBorderStack()));
+                    this.world.entityJoinedWorld(new EntityItem(this.world, this.x, this.y, this.z, getBorderStack()));
                 }
             }
             world.playBlockSoundEffect(null, this.x, this.y + heightOffset, this.z, Blocks.PLANKS_OAK, EnumBlockSoundEffectType.MINE);
@@ -290,7 +290,7 @@ public class PaintingEntity extends Entity
         if(!world.isClientSide && xd * xd + yd * yd + zd * zd > 0.0D)
         {
             remove();
-            world.entityJoinedWorld(new ItemEntity(world, x, y, z, new ItemStack(Items.PAINTING)));
+            world.entityJoinedWorld(new EntityItem(world, x, y, z, new ItemStack(Items.PAINTING)));
         }
     }
 
@@ -300,7 +300,7 @@ public class PaintingEntity extends Entity
         if(!world.isClientSide && x * x + y * y + z * z > 0.0D)
         {
             remove();
-            world.entityJoinedWorld(new ItemEntity(world, this.x, this.y, this.z, new ItemStack(Items.PAINTING)));
+            world.entityJoinedWorld(new EntityItem(world, this.x, this.y, this.z, new ItemStack(Items.PAINTING)));
         }
     }
 
diff --git a/src/main/java/net/minecraft/core/entity/TNTPrimedEntity.java b/src/main/java/net/minecraft/core/entity/EntityPrimedTNT.java
similarity index 93%
rename from src/main/java/net/minecraft/core/entity/TNTPrimedEntity.java
rename to src/main/java/net/minecraft/core/entity/EntityPrimedTNT.java
index 760af4625..d0f85b1f5 100644
--- a/src/main/java/net/minecraft/core/entity/TNTPrimedEntity.java
+++ b/src/main/java/net/minecraft/core/entity/EntityPrimedTNT.java
@@ -8,11 +8,11 @@ import net.minecraft.core.util.helper.MathHelper;
 import com.mojang.nbt.CompoundTag;
 import net.minecraft.core.world.World;
 
-public class TNTPrimedEntity extends Entity
+public class EntityPrimedTNT extends Entity
 {
     public int fuse;
 
-    public TNTPrimedEntity(World world)
+    public EntityPrimedTNT(World world)
     {
         super(world);
         fuse = 0;
@@ -21,7 +21,7 @@ public class TNTPrimedEntity extends Entity
         heightOffset = bbHeight / 2.0F;
     }
 
-    public TNTPrimedEntity(World world, double x, double y, double z)
+    public EntityPrimedTNT(World world, double x, double y, double z)
     {
         this(world);
         setPos(x, y, z);
diff --git a/src/main/java/net/minecraft/core/entity/Mob.java b/src/main/java/net/minecraft/core/entity/Mob.java
index efa11e189..1c500d5a9 100644
--- a/src/main/java/net/minecraft/core/entity/Mob.java
+++ b/src/main/java/net/minecraft/core/entity/Mob.java
@@ -3,6 +3,7 @@ package net.minecraft.core.entity;
 import com.b100.utils.StringUtils;
 import com.mojang.nbt.CompoundTag;
 import net.minecraft.core.Global;
+import net.minecraft.core.item.ItemFood;
 import net.minecraft.core.util.phys.HitResult;
 import net.minecraft.core.WeightedRandomLootObject;
 import net.minecraft.core.block.Block;
@@ -14,7 +15,6 @@ import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.enums.EnumBlockSoundEffectType;
 import net.minecraft.core.enums.PlacementMode;
 import net.minecraft.core.item.Items;
-import net.minecraft.core.item.FoodItem;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.net.command.TextFormatting;
 import net.minecraft.core.util.collection.NamespaceID;
@@ -40,7 +40,7 @@ public abstract class Mob extends Entity
 {
     public static final int DATA_VARIANT = 1;
     public static final int DATA_HEALTH = 2;
-    protected Map<FoodItem, ConsumedFood> consumedFood = new HashMap<FoodItem, ConsumedFood>();
+    protected Map<ItemFood, ConsumedFood> consumedFood = new HashMap<ItemFood, ConsumedFood>();
     public int heartsHalvesLife;
 //    public float timeOffs;
 //    public float rotA;
@@ -308,14 +308,14 @@ public abstract class Mob extends Entity
 
             }
         }
-        List<FoodItem> finishedFood = new ArrayList<>();
-        for (Map.Entry<FoodItem, ConsumedFood> entry : consumedFood.entrySet()) {
+        List<ItemFood> finishedFood = new ArrayList<>();
+        for (Map.Entry<ItemFood, ConsumedFood> entry : consumedFood.entrySet()) {
             entry.getValue().tick();
             if (entry.getValue().isFinished()) {
                 finishedFood.add(entry.getKey());
             }
         }
-        for (FoodItem food : finishedFood) {
+        for (ItemFood food : finishedFood) {
             consumedFood.remove(food);
         }
         prevRotationUnused = unusedRotation1;
@@ -480,7 +480,7 @@ public abstract class Mob extends Entity
         return totalHealingRemaining;
     }
 
-    public void eatFood(FoodItem food) {
+    public void eatFood(ItemFood food) {
         if (food == null) return;
         if (food.getTicksPerHeal() == 0 || world.getGameRuleValue(GameRules.INSTANT_HEALING)) {
             heal(food.getHealAmount());
diff --git a/src/main/java/net/minecraft/core/entity/FlyingMob.java b/src/main/java/net/minecraft/core/entity/MobFlying.java
similarity index 97%
rename from src/main/java/net/minecraft/core/entity/FlyingMob.java
rename to src/main/java/net/minecraft/core/entity/MobFlying.java
index 908d7bf25..f17358ada 100644
--- a/src/main/java/net/minecraft/core/entity/FlyingMob.java
+++ b/src/main/java/net/minecraft/core/entity/MobFlying.java
@@ -9,10 +9,10 @@ import net.minecraft.core.block.Block;
 import net.minecraft.core.util.helper.MathHelper;
 import net.minecraft.core.world.World;
 
-public class FlyingMob extends Mob
+public class MobFlying extends Mob
 {
 
-    public FlyingMob(World world)
+    public MobFlying(World world)
     {
         super(world);
     }
diff --git a/src/main/java/net/minecraft/core/entity/PathfinderMob.java b/src/main/java/net/minecraft/core/entity/MobPathfinder.java
similarity index 97%
rename from src/main/java/net/minecraft/core/entity/PathfinderMob.java
rename to src/main/java/net/minecraft/core/entity/MobPathfinder.java
index a14a3ab55..8c6987f04 100644
--- a/src/main/java/net/minecraft/core/entity/PathfinderMob.java
+++ b/src/main/java/net/minecraft/core/entity/MobPathfinder.java
@@ -4,7 +4,7 @@ package net.minecraft.core.entity;
 //            Mob, World, Entity, AxisAlignedBB,
 //            MathHelper, PathEntity, Vec3D
 
-import net.minecraft.core.entity.animal.FireflyClusterMob;
+import net.minecraft.core.entity.animal.MobFireflyCluster;
 import net.minecraft.core.util.helper.MathHelper;
 import net.minecraft.core.util.phys.AABB;
 import net.minecraft.core.util.phys.Vec3;
@@ -12,7 +12,7 @@ import net.minecraft.core.world.pathfinder.Path;
 import net.minecraft.core.world.World;
 import java.util.List;
 
-public abstract class PathfinderMob extends Mob
+public abstract class MobPathfinder extends Mob
 {
     private static final int MAX_TURN = 30;
     protected Path pathToEntity;
@@ -20,7 +20,7 @@ public abstract class PathfinderMob extends Mob
     protected Entity closestFireflyEntity;
     protected boolean hasAttacked;
 
-    public PathfinderMob(World world)
+    public MobPathfinder(World world)
     {
         super(world);
         hasAttacked = false;
@@ -145,7 +145,7 @@ public abstract class PathfinderMob extends Mob
     }
 
     protected Entity getClosestFireflyToEntity (int x, int y, int z, float radius){
-        List<Entity> nearbyFireflies = world.getEntitiesWithinAABB(FireflyClusterMob.class, AABB.getTemporaryBB(this.x, this.y, this.z, this.x + 1.0D, this.y + 1.0D, this.z + 1.0D).grow(radius, 4D, radius));
+        List<Entity> nearbyFireflies = world.getEntitiesWithinAABB(MobFireflyCluster.class, AABB.getTemporaryBB(this.x, this.y, this.z, this.x + 1.0D, this.y + 1.0D, this.z + 1.0D).grow(radius, 4D, radius));
 
         double closestDistance = -1D;
         Entity cluster = null;
diff --git a/src/main/java/net/minecraft/core/entity/animal/Animal.java b/src/main/java/net/minecraft/core/entity/animal/MobAnimal.java
similarity index 95%
rename from src/main/java/net/minecraft/core/entity/animal/Animal.java
rename to src/main/java/net/minecraft/core/entity/animal/MobAnimal.java
index e9e69ab05..14486242a 100644
--- a/src/main/java/net/minecraft/core/entity/animal/Animal.java
+++ b/src/main/java/net/minecraft/core/entity/animal/MobAnimal.java
@@ -6,7 +6,7 @@ package net.minecraft.core.entity.animal;
 //            MathHelper, AxisAlignedBB, NBTTagCompound
 
 import net.minecraft.core.block.tag.BlockTags;
-import net.minecraft.core.entity.PathfinderMob;
+import net.minecraft.core.entity.MobPathfinder;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.util.helper.MathHelper;
@@ -16,11 +16,11 @@ import net.minecraft.core.block.Block;
 import net.minecraft.core.block.Blocks;
 import net.minecraft.core.world.season.Seasons;
 
-public abstract class Animal extends PathfinderMob
+public abstract class MobAnimal extends MobPathfinder
 	implements Creature
 {
 
-    public Animal(World world)
+    public MobAnimal(World world)
     {
         super(world);
         scoreValue = 10;
diff --git a/src/main/java/net/minecraft/core/entity/animal/ChickenMob.java b/src/main/java/net/minecraft/core/entity/animal/MobChicken.java
similarity index 97%
rename from src/main/java/net/minecraft/core/entity/animal/ChickenMob.java
rename to src/main/java/net/minecraft/core/entity/animal/MobChicken.java
index 58338031b..90015196e 100644
--- a/src/main/java/net/minecraft/core/entity/animal/ChickenMob.java
+++ b/src/main/java/net/minecraft/core/entity/animal/MobChicken.java
@@ -8,7 +8,7 @@ import net.minecraft.core.item.tag.ItemTags;
 import net.minecraft.core.util.collection.NamespaceID;
 import net.minecraft.core.world.World;
 
-public class ChickenMob extends Animal
+public class MobChicken extends MobAnimal
 {
     public float flap;
     public float flapSpeed;
@@ -17,7 +17,7 @@ public class ChickenMob extends Animal
     public float flapping;
     public int eggTimer;
 
-    public ChickenMob(World world)
+    public MobChicken(World world)
     {
         super(world);
         flap = 0.0F;
diff --git a/src/main/java/net/minecraft/core/entity/animal/CowMob.java b/src/main/java/net/minecraft/core/entity/animal/MobCow.java
similarity index 88%
rename from src/main/java/net/minecraft/core/entity/animal/CowMob.java
rename to src/main/java/net/minecraft/core/entity/animal/MobCow.java
index 361b271f8..c002d5394 100644
--- a/src/main/java/net/minecraft/core/entity/animal/CowMob.java
+++ b/src/main/java/net/minecraft/core/entity/animal/MobCow.java
@@ -2,23 +2,23 @@ package net.minecraft.core.entity.animal;
 
 
 // Referenced classes of package net.minecraft.src:
-//            Animal, Item, Player, InventoryPlayer,
+//            MobAnimal, Item, Player, InventoryPlayer,
 //            ItemStack, World, NBTTagCompound
 
 import net.minecraft.core.WeightedRandomLootObject;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.item.Items;
-import net.minecraft.core.item.EmptyBucketItem;
+import net.minecraft.core.item.ItemBucketEmpty;
 import net.minecraft.core.item.ItemStack;
 import com.mojang.nbt.CompoundTag;
 import net.minecraft.core.item.tag.ItemTags;
 import net.minecraft.core.util.collection.NamespaceID;
 import net.minecraft.core.world.World;
 
-public class CowMob extends Animal
+public class MobCow extends MobAnimal
 {
 
-    public CowMob(World world)
+    public MobCow(World world)
     {
         super(world);
         textureIdentifier = new NamespaceID("minecraft", "cow");
@@ -68,7 +68,7 @@ public class CowMob extends Animal
         ItemStack itemstack = entityplayer.inventory.getCurrentItem();
         if(itemstack != null && itemstack.itemID == Items.BUCKET.id)
         {
-            EmptyBucketItem.useBucket(entityplayer, new ItemStack(Items.BUCKET_MILK));
+            ItemBucketEmpty.useBucket(entityplayer, new ItemStack(Items.BUCKET_MILK));
             return true;
         }
         return super.interact(entityplayer);
diff --git a/src/main/java/net/minecraft/core/entity/animal/FireflyClusterMob.java b/src/main/java/net/minecraft/core/entity/animal/MobFireflyCluster.java
similarity index 97%
rename from src/main/java/net/minecraft/core/entity/animal/FireflyClusterMob.java
rename to src/main/java/net/minecraft/core/entity/animal/MobFireflyCluster.java
index 7bd199314..a86d846ed 100644
--- a/src/main/java/net/minecraft/core/entity/animal/FireflyClusterMob.java
+++ b/src/main/java/net/minecraft/core/entity/animal/MobFireflyCluster.java
@@ -4,7 +4,7 @@ import com.mojang.nbt.CompoundTag;
 import net.minecraft.core.block.Block;
 import net.minecraft.core.block.tag.BlockTags;
 import net.minecraft.core.entity.Entity;
-import net.minecraft.core.entity.FlyingMob;
+import net.minecraft.core.entity.MobFlying;
 import net.minecraft.core.enums.LightLayer;
 import net.minecraft.core.util.helper.DamageType;
 import net.minecraft.core.util.helper.MathHelper;
@@ -17,7 +17,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-public class FireflyClusterMob extends FlyingMob
+public class MobFireflyCluster extends MobFlying
         implements Creature
 {
 	public static final int DATA_COLOR_ID = 16;
@@ -39,7 +39,7 @@ public class FireflyClusterMob extends FlyingMob
     private int slowUpdateCooldown;
     
     
-    public FireflyClusterMob(World world)
+    public MobFireflyCluster(World world)
     {
         super(world);
         if(world == null || world.isClientSide) {
@@ -369,10 +369,10 @@ public class FireflyClusterMob extends FlyingMob
 		
 		for(int i=0; i < nearbyCount; i++) {
 			Entity entity = nearbyFireflies.get(i);
-			if(entity == this || !(entity instanceof FireflyClusterMob)) {
+			if(entity == this || !(entity instanceof MobFireflyCluster)) {
 				continue;
 			}
-			FireflyClusterMob fireflyCluster = (FireflyClusterMob) entity;
+			MobFireflyCluster fireflyCluster = (MobFireflyCluster) entity;
 			if(fireflyCluster.getColor() != this.getColor()) {
 				continue;
 			}
@@ -390,7 +390,7 @@ public class FireflyClusterMob extends FlyingMob
 		}
 	}
 	
-	private void merge(FireflyClusterMob from, FireflyClusterMob to) {
+	private void merge(MobFireflyCluster from, MobFireflyCluster to) {
 		if(from.getFireflyCount() + to.getFireflyCount() < maxFireflyCountPerCluster) {
 			to.setFireflyCount(to.getFireflyCount() + from.getFireflyCount());
 			from.remove();
diff --git a/src/main/java/net/minecraft/core/entity/animal/PigMob.java b/src/main/java/net/minecraft/core/entity/animal/MobPig.java
similarity index 88%
rename from src/main/java/net/minecraft/core/entity/animal/PigMob.java
rename to src/main/java/net/minecraft/core/entity/animal/MobPig.java
index ddae7d80f..d69980f50 100644
--- a/src/main/java/net/minecraft/core/entity/animal/PigMob.java
+++ b/src/main/java/net/minecraft/core/entity/animal/MobPig.java
@@ -2,17 +2,16 @@ package net.minecraft.core.entity.animal;
 
 
 // Referenced classes of package net.minecraft.src:
-//            Animal, DataWatcher, NBTTagCompound, World,
-//            Player, Item, ZombiePigMob, Achievements,
-//            LightningEntity
+//            MobAnimal, DataWatcher, NBTTagCompound, World,
+//            Player, Item, MobZombiePig, Achievements,
+//            EntityLightning
 
 import net.minecraft.core.WeightedRandomLootObject;
 import net.minecraft.core.achievement.Achievements;
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.Blocks;
 import net.minecraft.core.block.tag.BlockTags;
-import net.minecraft.core.entity.LightningEntity;
-import net.minecraft.core.entity.monster.ZombiePigMob;
+import net.minecraft.core.entity.EntityLightning;
+import net.minecraft.core.entity.monster.MobZombiePig;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.item.Items;
@@ -23,11 +22,11 @@ import net.minecraft.core.world.World;
 import java.util.ArrayList;
 import java.util.List;
 
-public class PigMob extends Animal
+public class MobPig extends MobAnimal
 {
     public static final int DATA_SADDLE_ID = 16;
 
-    public PigMob(World world)
+    public MobPig(World world)
     {
         super(world);
         textureIdentifier = new NamespaceID("minecraft", "pig");
@@ -126,10 +125,10 @@ public class PigMob extends Animal
     }
 
     @Override
-	public void thunderHit(LightningEntity bolt)
+	public void thunderHit(EntityLightning bolt)
     {
         if (!world.isClientSide) {
-            ZombiePigMob entitypigzombie = new ZombiePigMob(world);
+            MobZombiePig entitypigzombie = new MobZombiePig(world);
             entitypigzombie.moveTo(x, y, z, yRot, xRot);
             world.entityJoinedWorld(entitypigzombie);
             remove();
diff --git a/src/main/java/net/minecraft/core/entity/animal/SheepMob.java b/src/main/java/net/minecraft/core/entity/animal/MobSheep.java
similarity index 93%
rename from src/main/java/net/minecraft/core/entity/animal/SheepMob.java
rename to src/main/java/net/minecraft/core/entity/animal/MobSheep.java
index ffbbafb9b..78ad081b8 100644
--- a/src/main/java/net/minecraft/core/entity/animal/SheepMob.java
+++ b/src/main/java/net/minecraft/core/entity/animal/MobSheep.java
@@ -4,11 +4,11 @@ import com.mojang.nbt.CompoundTag;
 import net.minecraft.core.block.Block;
 import net.minecraft.core.block.Blocks;
 import net.minecraft.core.block.tag.BlockTags;
-import net.minecraft.core.entity.ItemEntity;
+import net.minecraft.core.entity.EntityItem;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.enums.EnumBlockSoundEffectType;
 import net.minecraft.core.item.ItemStack;
-import net.minecraft.core.item.ToolShearsItem;
+import net.minecraft.core.item.tool.ItemToolShears;
 import net.minecraft.core.util.collection.NamespaceID;
 import net.minecraft.core.util.helper.DyeColor;
 import net.minecraft.core.util.helper.MathHelper;
@@ -17,14 +17,14 @@ import net.minecraft.core.world.World;
 
 import java.util.Random;
 
-public class SheepMob extends Animal
+public class MobSheep extends MobAnimal
 {
     public static final int DATA_WOOL_STATE_ID = 16;
     public static final int MASK_WOOL_COLOR = 0b0000_1111;
     public static final int MASK_SHEARED = 0b0001_0000;
     public static final int DATA_EATING_ID = 17;
 
-    public SheepMob(World world)
+    public MobSheep(World world)
     {
         super(world);
         textureIdentifier = new NamespaceID("minecraft", "sheep");
@@ -60,12 +60,12 @@ public class SheepMob extends Animal
         ItemStack itemstack = entityplayer.inventory.getCurrentItem();
         if(itemstack != null)
         {
-            if (itemstack.getItem() instanceof ToolShearsItem && !getSheared()){
+            if (itemstack.getItem() instanceof ItemToolShears && !getSheared()){
                 if(!world.isClientSide) {
                     setSheared(true);
                     int count = 2 + random.nextInt(3);
                     for (int j = 0; j < count; j++) {
-                        ItemEntity entityitem = spawnAtLocation(new ItemStack(Blocks.WOOL.id, 1, getFleeceColor().blockMeta), 1.0F);
+                        EntityItem entityitem = spawnAtLocation(new ItemStack(Blocks.WOOL.id, 1, getFleeceColor().blockMeta), 1.0F);
                         entityitem.yd += random.nextFloat() * 0.05F;
                         entityitem.xd += (random.nextFloat() - random.nextFloat()) * 0.1F;
                         entityitem.zd += (random.nextFloat() - random.nextFloat()) * 0.1F;
@@ -82,15 +82,15 @@ public class SheepMob extends Animal
     }
 
     public void onItemInteract(ItemStack itemStack) {
-        if (itemStack.getItem() instanceof ToolShearsItem && !getSheared()){
+        if (itemStack.getItem() instanceof ItemToolShears && !getSheared()){
             if(!world.isClientSide) {
                 setSheared(true);
                 int count = 2 + random.nextInt(3);
                 for (int j = 0; j < count; j++) {
-                    ItemEntity itemEntity = spawnAtLocation(new ItemStack(Blocks.WOOL.id, 1, getFleeceColor().blockMeta), 1.0F);
-                    itemEntity.yd += random.nextFloat() * 0.05F;
-                    itemEntity.xd += (random.nextFloat() - random.nextFloat()) * 0.1F;
-                    itemEntity.zd += (random.nextFloat() - random.nextFloat()) * 0.1F;
+                    EntityItem entityItem = spawnAtLocation(new ItemStack(Blocks.WOOL.id, 1, getFleeceColor().blockMeta), 1.0F);
+                    entityItem.yd += random.nextFloat() * 0.05F;
+                    entityItem.xd += (random.nextFloat() - random.nextFloat()) * 0.1F;
+                    entityItem.zd += (random.nextFloat() - random.nextFloat()) * 0.1F;
                 }
             }
             itemStack.damageItem(1, null);
diff --git a/src/main/java/net/minecraft/core/entity/animal/SquidMob.java b/src/main/java/net/minecraft/core/entity/animal/MobSquid.java
similarity index 98%
rename from src/main/java/net/minecraft/core/entity/animal/SquidMob.java
rename to src/main/java/net/minecraft/core/entity/animal/MobSquid.java
index 3f2357284..94c5155a6 100644
--- a/src/main/java/net/minecraft/core/entity/animal/SquidMob.java
+++ b/src/main/java/net/minecraft/core/entity/animal/MobSquid.java
@@ -5,7 +5,6 @@ package net.minecraft.core.entity.animal;
 //            Material, World, MathHelper, NBTTagCompound, 
 //            Player
 
-import net.minecraft.core.MD5String;
 import net.minecraft.core.WeightedRandomLootObject;
 import net.minecraft.core.block.Block;
 import net.minecraft.core.block.material.Material;
@@ -16,7 +15,7 @@ import net.minecraft.core.util.helper.DamageType;
 import net.minecraft.core.util.helper.MathHelper;
 import net.minecraft.core.world.World;
 
-public class SquidMob extends WaterAnimal
+public class MobSquid extends MobWaterAnimal
 {
     public float xBodyRot;
     public float xBodyRotO;
@@ -33,7 +32,7 @@ public class SquidMob extends WaterAnimal
     private float ty;
     private float tz;
 
-    public SquidMob(World world)
+    public MobSquid(World world)
     {
         super(world);
         xBodyRot = 0.0F;
diff --git a/src/main/java/net/minecraft/core/entity/animal/WaterAnimal.java b/src/main/java/net/minecraft/core/entity/animal/MobWaterAnimal.java
similarity index 85%
rename from src/main/java/net/minecraft/core/entity/animal/WaterAnimal.java
rename to src/main/java/net/minecraft/core/entity/animal/MobWaterAnimal.java
index 7d2f316b4..0e06804b0 100644
--- a/src/main/java/net/minecraft/core/entity/animal/WaterAnimal.java
+++ b/src/main/java/net/minecraft/core/entity/animal/MobWaterAnimal.java
@@ -4,15 +4,15 @@ package net.minecraft.core.entity.animal;
 // Referenced classes of package net.minecraft.src:
 //            EntityCreature, World, NBTTagCompound
 
-import net.minecraft.core.entity.PathfinderMob;
+import net.minecraft.core.entity.MobPathfinder;
 import com.mojang.nbt.CompoundTag;
 import net.minecraft.core.world.World;
 
-public class WaterAnimal extends PathfinderMob
+public class MobWaterAnimal extends MobPathfinder
 	implements Creature
 {
 
-    public WaterAnimal(World world)
+    public MobWaterAnimal(World world)
     {
         super(world);
         scoreValue = 10;
diff --git a/src/main/java/net/minecraft/core/entity/animal/WolfMob.java b/src/main/java/net/minecraft/core/entity/animal/MobWolf.java
similarity index 94%
rename from src/main/java/net/minecraft/core/entity/animal/WolfMob.java
rename to src/main/java/net/minecraft/core/entity/animal/MobWolf.java
index 2d8d8d53b..aaebe0192 100644
--- a/src/main/java/net/minecraft/core/entity/animal/WolfMob.java
+++ b/src/main/java/net/minecraft/core/entity/animal/MobWolf.java
@@ -1,11 +1,11 @@
 package net.minecraft.core.entity.animal;
 
 import net.minecraft.core.entity.Entity;
-import net.minecraft.core.entity.ItemEntity;
+import net.minecraft.core.entity.EntityItem;
 import net.minecraft.core.entity.Mob;
 import net.minecraft.core.entity.player.Player;
-import net.minecraft.core.entity.projectile.ArrowProjectile;
-import net.minecraft.core.item.FoodItem;
+import net.minecraft.core.entity.projectile.ProjectileArrow;
+import net.minecraft.core.item.ItemFood;
 import net.minecraft.core.item.IArmorItem;
 import net.minecraft.core.item.Item;
 import net.minecraft.core.item.Items;
@@ -23,12 +23,12 @@ import net.minecraft.core.util.helper.DamageType;
 import java.util.*;
 
 // Referenced classes of package net.minecraft.src:
-//            Animal, DataWatcher, NBTTagCompound, World,
-//            Player, SheepMob, AxisAlignedBB, Entity,
-//            InventoryPlayer, ItemStack, Item, FoodItem,
-//            MathHelper, ArrowProjectile, Mob
+//            MobAnimal, DataWatcher, NBTTagCompound, World,
+//            Player, MobSheep, AxisAlignedBB, Entity,
+//            InventoryPlayer, ItemStack, Item, ItemFood,
+//            MathHelper, ProjectileArrow, Mob
 
-public class WolfMob extends Animal
+public class MobWolf extends MobAnimal
 {
     public static final Map<ArmorMaterial, IArmorItem> ARMOR_MATERIALS = new HashMap<>();
     static {
@@ -57,7 +57,7 @@ public class WolfMob extends Animal
     private float prevTimeWolfIsShaking;
     private ItemStack armor = null;
 
-    public WolfMob(World world)
+    public MobWolf(World world)
     {
         super(world);
         looksWithInterest = false;
@@ -304,7 +304,7 @@ public class WolfMob extends Animal
     {
         super.updateAI();
 
-        if (getTarget() instanceof ItemEntity)
+        if (getTarget() instanceof EntityItem)
         {
             if (getTarget().isInWater() || getTarget().isInLava() || getTarget().isInWall() || !getTarget().onGround || getTarget().isRemoved())
             {
@@ -331,7 +331,7 @@ public class WolfMob extends Animal
         if(target == null && !hasPath())
         {
             if(!isWolfTamed() && world.rand.nextInt(100) == 0){
-                List<Entity> nearbySheep = world.getEntitiesWithinAABB(SheepMob.class, AABB.getTemporaryBB(x, y, z, x + 1.0D, y + 1.0D, z + 1.0D).grow(16D, 4D, 16D));
+                List<Entity> nearbySheep = world.getEntitiesWithinAABB(MobSheep.class, AABB.getTemporaryBB(x, y, z, x + 1.0D, y + 1.0D, z + 1.0D).grow(16D, 4D, 16D));
                 if (!nearbySheep.isEmpty()) {
                     setTarget((Entity) nearbySheep.get(world.rand.nextInt(nearbySheep.size())));
                 }
@@ -340,11 +340,11 @@ public class WolfMob extends Animal
         ItemStack heldItemSlot = getWolfHeldItem();
         if((heldItemSlot == null || heldItemSlot.itemID <= 0)) {
             List<Entity> triedItems = new ArrayList<>();
-            List<Entity> nearbyItems = world.getEntitiesWithinAABB(ItemEntity.class, AABB.getTemporaryBB(x, y, z, x + 1.0D, y + 1.0D, z + 1.0D).grow(16D, 4D, 16D));
+            List<Entity> nearbyItems = world.getEntitiesWithinAABB(EntityItem.class, AABB.getTemporaryBB(x, y, z, x + 1.0D, y + 1.0D, z + 1.0D).grow(16D, 4D, 16D));
             if (!nearbyItems.isEmpty()) {
                 while (triedItems.size() != nearbyItems.size())
                 {
-                    ItemEntity item = (ItemEntity) nearbyItems.get(world.rand.nextInt(nearbyItems.size()));
+                    EntityItem item = (EntityItem) nearbyItems.get(world.rand.nextInt(nearbyItems.size()));
                     if (triedItems.contains(item))
                     {
                         continue;
@@ -386,9 +386,9 @@ public class WolfMob extends Animal
                     {
                         looksWithInterest = true;
                     } else
-                    if(isWolfTamed() && (Item.itemsList[itemstack.itemID] instanceof FoodItem))
+                    if(isWolfTamed() && (Item.itemsList[itemstack.itemID] instanceof ItemFood))
                     {
-                        looksWithInterest = ((FoodItem)Item.itemsList[itemstack.itemID]).getIsWolfsFavoriteMeat();
+                        looksWithInterest = ((ItemFood)Item.itemsList[itemstack.itemID]).getIsWolfsFavoriteMeat();
                     }
                 }
             }
@@ -417,12 +417,12 @@ public class WolfMob extends Animal
         if(entitiesNearWolf != null && entitiesNearWolf.size() > 0 && isAlive())
         {
             for (Entity entity : entitiesNearWolf) {
-                if(entity instanceof ItemEntity && (this.getWolfHeldItem() == null || this.getWolfHeldItem().getItem() == null)){
-                    ItemEntity itemEntity = (ItemEntity) entity;
+                if(entity instanceof EntityItem && (this.getWolfHeldItem() == null || this.getWolfHeldItem().getItem() == null)){
+                    EntityItem entityItem = (EntityItem) entity;
 
-                    if (itemEntity.item != null && itemEntity.item.stackSize > 0) {
-                        setWolfHeldItem(itemEntity.item.copy());
-                        itemEntity.item.stackSize = 0;
+                    if (entityItem.item != null && entityItem.item.stackSize > 0) {
+                        setWolfHeldItem(entityItem.item.copy());
+                        entityItem.item.stackSize = 0;
                         entity.outOfWorld();
 
                         break;
@@ -565,7 +565,7 @@ public class WolfMob extends Animal
     public boolean hurt(Entity attacker, int i, DamageType type)
     {
         setWolfSitting(false);
-        if(attacker != null && !(attacker instanceof Player) && !(attacker instanceof ArrowProjectile))
+        if(attacker != null && !(attacker instanceof Player) && !(attacker instanceof ProjectileArrow))
         {
             i = (i + 1) / 2;
         }
@@ -578,13 +578,13 @@ public class WolfMob extends Animal
                     setWolfAngry(true);
                     target = attacker;
                 }
-                if((attacker instanceof ArrowProjectile) && ((ArrowProjectile) attacker).owner != null)
+                if((attacker instanceof ProjectileArrow) && ((ProjectileArrow) attacker).owner != null)
                 {
-                    attacker = ((ArrowProjectile) attacker).owner;
+                    attacker = ((ProjectileArrow) attacker).owner;
                 }
                 if(attacker instanceof Mob)
                 {
-                    List<Entity> list = world.getEntitiesWithinAABB(WolfMob.class, AABB.getTemporaryBB(x, y, z, x + 1.0D, y + 1.0D, z + 1.0D).grow(16D, 4D, 16D));
+                    List<Entity> list = world.getEntitiesWithinAABB(MobWolf.class, AABB.getTemporaryBB(x, y, z, x + 1.0D, y + 1.0D, z + 1.0D).grow(16D, 4D, 16D));
                     Iterator<Entity> iterator = list.iterator();
                     do
                     {
@@ -593,7 +593,7 @@ public class WolfMob extends Animal
                             break;
                         }
                         Entity entity1 = iterator.next();
-                        WolfMob entitywolf = (WolfMob)entity1;
+                        MobWolf entitywolf = (MobWolf)entity1;
                         if(!entitywolf.isWolfTamed() && entitywolf.target == null)
                         {
                             entitywolf.target = attacker;
@@ -635,7 +635,7 @@ public class WolfMob extends Animal
     @Override
 	protected void attackEntity(Entity entity, float distance)
     {
-        if(entity instanceof ItemEntity)
+        if(entity instanceof EntityItem)
             return;
         if(distance > 2.0F && distance < 6F && random.nextInt(10) == 0)
         {
@@ -738,9 +738,9 @@ public class WolfMob extends Animal
             }
         } else
         {
-            if(itemstack != null && (Item.itemsList[itemstack.itemID] instanceof FoodItem))
+            if(itemstack != null && (Item.itemsList[itemstack.itemID] instanceof ItemFood))
             {
-                FoodItem itemfood = (FoodItem)Item.itemsList[itemstack.itemID];
+                ItemFood itemfood = (ItemFood)Item.itemsList[itemstack.itemID];
                 if(itemfood.getIsWolfsFavoriteMeat() && getHealth() < getMaxHealth())
                 {
                 	if (entityplayer.getGamemode().consumeBlocks())
@@ -751,7 +751,7 @@ public class WolfMob extends Animal
                 			entityplayer.inventory.setItem(entityplayer.inventory.getCurrentItemIndex(), null);
                 		}                		
                 	}
-                    heal(((FoodItem)Items.FOOD_PORKCHOP_RAW).getHealAmount());
+                    heal(((ItemFood)Items.FOOD_PORKCHOP_RAW).getHealAmount());
                     return true;
                 }
             }
diff --git a/src/main/java/net/minecraft/core/entity/monster/CreeperMob.java b/src/main/java/net/minecraft/core/entity/monster/MobCreeper.java
similarity index 95%
rename from src/main/java/net/minecraft/core/entity/monster/CreeperMob.java
rename to src/main/java/net/minecraft/core/entity/monster/MobCreeper.java
index c405fc289..8093cebb4 100644
--- a/src/main/java/net/minecraft/core/entity/monster/CreeperMob.java
+++ b/src/main/java/net/minecraft/core/entity/monster/MobCreeper.java
@@ -2,17 +2,17 @@ package net.minecraft.core.entity.monster;
 
 import net.minecraft.core.WeightedRandomLootObject;
 import net.minecraft.core.entity.Entity;
-import net.minecraft.core.entity.LightningEntity;
+import net.minecraft.core.entity.EntityLightning;
 import net.minecraft.core.item.Items;
 import com.mojang.nbt.CompoundTag;
 import net.minecraft.core.util.collection.NamespaceID;
 import net.minecraft.core.world.World;
 
-public class CreeperMob extends Monster
+public class MobCreeper extends MobMonster
 {
     public static final int DATA_CREEPER_STATE = 16;
     public static final int DATA_POWERED = 17;
-    public CreeperMob(World world)
+    public MobCreeper(World world)
     {
         super(world);
         textureIdentifier = new NamespaceID("minecraft", "creeper");
@@ -107,7 +107,7 @@ public class CreeperMob extends Monster
 	public void onDeath(Entity entityKilledBy)
     {
         super.onDeath(entityKilledBy);
-        if(entityKilledBy instanceof SkeletonMob)
+        if(entityKilledBy instanceof MobSkeleton)
         {
             spawnAtLocation(Items.RECORD_13.id + random.nextInt(11), 1);
         }
@@ -175,7 +175,7 @@ public class CreeperMob extends Monster
     }
 
     @Override
-	public void thunderHit(LightningEntity bolt)
+	public void thunderHit(EntityLightning bolt)
     {
         super.thunderHit(bolt);
         entityData.set(DATA_POWERED, (byte) 1);
diff --git a/src/main/java/net/minecraft/core/entity/monster/GhastMob.java b/src/main/java/net/minecraft/core/entity/monster/MobGhast.java
similarity index 95%
rename from src/main/java/net/minecraft/core/entity/monster/GhastMob.java
rename to src/main/java/net/minecraft/core/entity/monster/MobGhast.java
index f7725159b..2ae0f5969 100644
--- a/src/main/java/net/minecraft/core/entity/monster/GhastMob.java
+++ b/src/main/java/net/minecraft/core/entity/monster/MobGhast.java
@@ -1,24 +1,24 @@
 package net.minecraft.core.entity.monster;
 
 // Referenced classes of package net.minecraft.src:
-//            FlyingMob, IMob, DataWatcher, World,
-//            MathHelper, Entity, AxisAlignedBB, FireballProjectile,
+//            MobFlying, IMob, DataWatcher, World,
+//            MathHelper, Entity, AxisAlignedBB, ProjectileFireball,
 //            Vec3D, Item
 
 import net.minecraft.core.WeightedRandomLootObject;
+import net.minecraft.core.entity.MobFlying;
 import net.minecraft.core.entity.player.Player;
-import net.minecraft.core.entity.projectile.FireballProjectile;
+import net.minecraft.core.entity.projectile.ProjectileFireball;
 import net.minecraft.core.util.collection.NamespaceID;
 import net.minecraft.core.util.phys.Vec3;
 import net.minecraft.core.entity.Entity;
-import net.minecraft.core.entity.FlyingMob;
 import net.minecraft.core.item.Items;
 import net.minecraft.core.util.helper.MathHelper;
 import net.minecraft.core.world.World;
 import net.minecraft.core.util.phys.AABB;
 import net.minecraft.core.util.helper.DamageType;
 
-public class GhastMob extends FlyingMob
+public class MobGhast extends MobFlying
     implements Enemy
 {
     public static final int DATA_CHARGING = 16;
@@ -32,7 +32,7 @@ public class GhastMob extends FlyingMob
     public int attackCharge;
 
 
-    public GhastMob(World world)
+    public MobGhast(World world)
     {
         super(world);
         courseChangeCooldown = 0;
@@ -181,7 +181,7 @@ public class GhastMob extends FlyingMob
                 if(attackCharge == 20)
                 {
                     world.playSoundAtEntity(null, this, "mob.ghast.fireball", getSoundVolume(), (random.nextFloat() - random.nextFloat()) * 0.2F + 1.0F);
-                    FireballProjectile fireball = new FireballProjectile(world, this, vX, vY, vZ);
+                    ProjectileFireball fireball = new ProjectileFireball(world, this, vX, vY, vZ);
 
                     fireball.x = x + vec3.x * d8;
                     fireball.y = y + (double)(bbHeight / 2.0F) + 0.5D;
diff --git a/src/main/java/net/minecraft/core/entity/monster/GiantMob.java b/src/main/java/net/minecraft/core/entity/monster/MobGiant.java
similarity index 90%
rename from src/main/java/net/minecraft/core/entity/monster/GiantMob.java
rename to src/main/java/net/minecraft/core/entity/monster/MobGiant.java
index 85fb3d2f1..cb7862550 100644
--- a/src/main/java/net/minecraft/core/entity/monster/GiantMob.java
+++ b/src/main/java/net/minecraft/core/entity/monster/MobGiant.java
@@ -7,10 +7,10 @@ package net.minecraft.core.entity.monster;
 import net.minecraft.core.util.collection.NamespaceID;
 import net.minecraft.core.world.World;
 
-public class GiantMob extends Monster
+public class MobGiant extends MobMonster
 {
 
-    public GiantMob(World world)
+    public MobGiant(World world)
     {
         super(world);
         textureIdentifier = new NamespaceID("minecraft", "zombie");
diff --git a/src/main/java/net/minecraft/core/entity/monster/HumanMob.java b/src/main/java/net/minecraft/core/entity/monster/MobHuman.java
similarity index 91%
rename from src/main/java/net/minecraft/core/entity/monster/HumanMob.java
rename to src/main/java/net/minecraft/core/entity/monster/MobHuman.java
index 330b5975d..ba0fdbd85 100644
--- a/src/main/java/net/minecraft/core/entity/monster/HumanMob.java
+++ b/src/main/java/net/minecraft/core/entity/monster/MobHuman.java
@@ -6,9 +6,9 @@ import net.minecraft.core.util.helper.GetMonsterSkinUrlThread;
 import net.minecraft.core.world.World;
 
 
-public class HumanMob extends Monster
+public class MobHuman extends MobMonster
 {
-    public HumanMob(World world)
+    public MobHuman(World world)
     {
         super(world);
 
diff --git a/src/main/java/net/minecraft/core/entity/monster/Monster.java b/src/main/java/net/minecraft/core/entity/monster/MobMonster.java
similarity index 96%
rename from src/main/java/net/minecraft/core/entity/monster/Monster.java
rename to src/main/java/net/minecraft/core/entity/monster/MobMonster.java
index 4c7860151..4c227bc26 100644
--- a/src/main/java/net/minecraft/core/entity/monster/Monster.java
+++ b/src/main/java/net/minecraft/core/entity/monster/MobMonster.java
@@ -5,7 +5,7 @@ package net.minecraft.core.entity.monster;
 //            AxisAlignedBB, MathHelper, EnumSkyBlock, NBTTagCompound
 
 import net.minecraft.core.entity.Entity;
-import net.minecraft.core.entity.PathfinderMob;
+import net.minecraft.core.entity.MobPathfinder;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.enums.LightLayer;
 import net.minecraft.core.util.helper.MathHelper;
@@ -15,11 +15,11 @@ import net.minecraft.core.world.World;
 import net.minecraft.core.util.helper.DamageType;
 import net.minecraft.core.world.season.Seasons;
 
-public abstract class Monster extends PathfinderMob
+public abstract class MobMonster extends MobPathfinder
     implements Enemy
 {
 
-    public Monster(World world)
+    public MobMonster(World world)
     {
         super(world);
         attackStrength = 2;
diff --git a/src/main/java/net/minecraft/core/entity/monster/ScorpionMob.java b/src/main/java/net/minecraft/core/entity/monster/MobScorpion.java
similarity index 95%
rename from src/main/java/net/minecraft/core/entity/monster/ScorpionMob.java
rename to src/main/java/net/minecraft/core/entity/monster/MobScorpion.java
index fdbd71f39..e0d35c519 100644
--- a/src/main/java/net/minecraft/core/entity/monster/ScorpionMob.java
+++ b/src/main/java/net/minecraft/core/entity/monster/MobScorpion.java
@@ -13,11 +13,11 @@ import net.minecraft.core.item.Items;
 import com.mojang.nbt.CompoundTag;
 import net.minecraft.core.world.World;
 
-public class ScorpionMob extends Monster
+public class MobScorpion extends MobMonster
 {
     public static final int DATA_UNKNOWN = 16; // No clue why this exists
 
-    public ScorpionMob(World world)
+    public MobScorpion(World world)
     {
         super(world);
         textureIdentifier = new NamespaceID("minecraft", "scorpion");
@@ -39,7 +39,7 @@ public class ScorpionMob extends Monster
     {
         super.defineSynchedData();
         if(world.getDifficulty().canHostileMobsSpawn() && random.nextInt(100 / world.getDifficulty().id()) == 0) {
-            SkeletonMob entityskeleton = new SkeletonMob(world);
+            MobSkeleton entityskeleton = new MobSkeleton(world);
             entityskeleton.moveTo(x, y, z, yRot, 0.0F);
             world.entityJoinedWorld(entityskeleton);
             entityskeleton.startRiding(this);
diff --git a/src/main/java/net/minecraft/core/entity/monster/SkeletonMob.java b/src/main/java/net/minecraft/core/entity/monster/MobSkeleton.java
similarity index 92%
rename from src/main/java/net/minecraft/core/entity/monster/SkeletonMob.java
rename to src/main/java/net/minecraft/core/entity/monster/MobSkeleton.java
index cb6960d9e..89ce34c38 100644
--- a/src/main/java/net/minecraft/core/entity/monster/SkeletonMob.java
+++ b/src/main/java/net/minecraft/core/entity/monster/MobSkeleton.java
@@ -2,11 +2,11 @@ package net.minecraft.core.entity.monster;
 
 // Referenced classes of package net.minecraft.src:
 //            EntityMob, World, MathHelper, Entity, 
-//            ArrowProjectile, Item, ItemStack, NBTTagCompound
+//            ProjectileArrow, Item, ItemStack, NBTTagCompound
 
 import net.minecraft.core.WeightedRandomLootObject;
 import net.minecraft.core.entity.Entity;
-import net.minecraft.core.entity.projectile.ArrowProjectile;
+import net.minecraft.core.entity.projectile.ProjectileArrow;
 import net.minecraft.core.item.Items;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.util.collection.NamespaceID;
@@ -15,11 +15,11 @@ import com.mojang.nbt.CompoundTag;
 import net.minecraft.core.world.World;
 import net.minecraft.core.world.weather.Weathers;
 
-public class SkeletonMob extends Monster
+public class MobSkeleton extends MobMonster
 {
     public static final int DATA_ATTACK_TIME = 15;
 
-    public SkeletonMob(World world)
+    public MobSkeleton(World world)
     {
         super(world);
         textureIdentifier = new NamespaceID("minecraft", "skeleton");
@@ -82,7 +82,7 @@ public class SkeletonMob extends Monster
             if(attackTime == 0)
             {
                 if(!world.isClientSide) {
-                    ArrowProjectile arrow = new ArrowProjectile(world, this, false, 0);
+                    ProjectileArrow arrow = new ProjectileArrow(world, this, false, 0);
 //                    arrow.y += 1.3999999761581421D;
                     double d2 = (entity.y + (double) entity.getHeadHeight()) - 0.2D - arrow.y;
                     float f1 = MathHelper.sqrt(d * d + d1 * d1) * 0.2F;
diff --git a/src/main/java/net/minecraft/core/entity/monster/SlimeMob.java b/src/main/java/net/minecraft/core/entity/monster/MobSlime.java
similarity index 95%
rename from src/main/java/net/minecraft/core/entity/monster/SlimeMob.java
rename to src/main/java/net/minecraft/core/entity/monster/MobSlime.java
index 9b655a930..cd8bfcfb2 100644
--- a/src/main/java/net/minecraft/core/entity/monster/SlimeMob.java
+++ b/src/main/java/net/minecraft/core/entity/monster/MobSlime.java
@@ -18,12 +18,12 @@ import net.minecraft.core.util.helper.DamageType;
 
 import java.util.List;
 
-public class SlimeMob extends Mob
+public class MobSlime extends Mob
     implements Enemy
 {
     public static final int DATA_SLIME_SIZE = 16;
 
-    public SlimeMob(World world)
+    public MobSlime(World world)
     {
         super(world);
         jumpDelay = 0;
@@ -34,7 +34,7 @@ public class SlimeMob extends Mob
         this.hasSlimeSplit = false;
         mobDrops.add(new WeightedRandomLootObject(Items.SLIMEBALL.getDefaultStack(), 0, 2));
     }
-    public SlimeMob(World world, boolean isSplit)
+    public MobSlime(World world, boolean isSplit)
     {
         super(world);
         jumpDelay = 0;
@@ -181,10 +181,10 @@ public class SlimeMob extends Mob
             {
                 float f = (((float)(j % 2) - 0.5F) * (float)size) / 4F;
                 float f1 = (((float)(j / 2) - 0.5F) * (float)size) / 4F;
-                SlimeMob slimeMob = new SlimeMob(world, true);
-                slimeMob.setSlimeSize(size / 2);
-                slimeMob.moveTo(x + (double)f, y + 0.5D, z + (double)f1, random.nextFloat() * 360F, 0.0F);
-                world.entityJoinedWorld(slimeMob);
+                MobSlime mobSlime = new MobSlime(world, true);
+                mobSlime.setSlimeSize(size / 2);
+                mobSlime.moveTo(x + (double)f, y + 0.5D, z + (double)f1, random.nextFloat() * 360F, 0.0F);
+                world.entityJoinedWorld(mobSlime);
             }
 
         }
diff --git a/src/main/java/net/minecraft/core/entity/monster/SnowmanMob.java b/src/main/java/net/minecraft/core/entity/monster/MobSnowman.java
similarity index 87%
rename from src/main/java/net/minecraft/core/entity/monster/SnowmanMob.java
rename to src/main/java/net/minecraft/core/entity/monster/MobSnowman.java
index b60f78e83..c1f8705cf 100644
--- a/src/main/java/net/minecraft/core/entity/monster/SnowmanMob.java
+++ b/src/main/java/net/minecraft/core/entity/monster/MobSnowman.java
@@ -6,7 +6,7 @@ package net.minecraft.core.entity.monster;
 import net.minecraft.core.WeightedRandomLootObject;
 import net.minecraft.core.block.Blocks;
 import net.minecraft.core.entity.Entity;
-import net.minecraft.core.entity.projectile.SnowballProjectile;
+import net.minecraft.core.entity.projectile.ProjectileSnowball;
 import net.minecraft.core.util.collection.NamespaceID;
 import net.minecraft.core.util.helper.MathHelper;
 import net.minecraft.core.item.Items;
@@ -16,10 +16,10 @@ import net.minecraft.core.world.biome.Biomes;
 import net.minecraft.core.world.season.Seasons;
 import net.minecraft.core.world.weather.Weathers;
 
-public class SnowmanMob extends Monster
+public class MobSnowman extends MobMonster
 {
 
-    public SnowmanMob(World world)
+    public MobSnowman(World world)
     {
         super(world);
         textureIdentifier = new NamespaceID("minecraft", "snowman");
@@ -54,17 +54,17 @@ public class SnowmanMob extends Monster
             if(attackTime == 0)
             {
                 if(!world.isClientSide) {
-                    SnowballProjectile snowballProjectile = new SnowballProjectile(world, this);
+                    ProjectileSnowball projectileSnowball = new ProjectileSnowball(world, this);
                     if (world.getBlockId((int) x, (int) y - 1, (int) z) == Blocks.GRAVEL.id)
                     {
-                        snowballProjectile.damage = 1;
+                        projectileSnowball.damage = 1;
                     }
-                    snowballProjectile.y += 1.4D;
-                    double d2 = (entity.y + (double) entity.getHeadHeight()) - 0.2D - snowballProjectile.y;
+                    projectileSnowball.y += 1.4D;
+                    double d2 = (entity.y + (double) entity.getHeadHeight()) - 0.2D - projectileSnowball.y;
                     float f1 = MathHelper.sqrt(dX * dX + dZ * dZ) * 0.2F;
                     world.playSoundAtEntity(null, this, "random.bow", 0.5F, 0.4F / (random.nextFloat() * 0.4F + 0.8F));
-                    world.entityJoinedWorld(snowballProjectile);
-                    snowballProjectile.setHeadingPrecise(dX, d2 + (double) f1, dZ, 0.6F);
+                    world.entityJoinedWorld(projectileSnowball);
+                    projectileSnowball.setHeadingPrecise(dX, d2 + (double) f1, dZ, 0.6F);
                 }
                 attackTime = 30;
             }
diff --git a/src/main/java/net/minecraft/core/entity/monster/SpiderMob.java b/src/main/java/net/minecraft/core/entity/monster/MobSpider.java
similarity index 92%
rename from src/main/java/net/minecraft/core/entity/monster/SpiderMob.java
rename to src/main/java/net/minecraft/core/entity/monster/MobSpider.java
index 6173d85d3..441d83d91 100644
--- a/src/main/java/net/minecraft/core/entity/monster/SpiderMob.java
+++ b/src/main/java/net/minecraft/core/entity/monster/MobSpider.java
@@ -13,11 +13,11 @@ import net.minecraft.core.util.helper.MathHelper;
 import com.mojang.nbt.CompoundTag;
 import net.minecraft.core.world.World;
 
-public class SpiderMob extends Monster
+public class MobSpider extends MobMonster
 {
     public static final int DATA_UNKNOWN = 16; // No clue why this exists
 
-    public SpiderMob(World world)
+    public MobSpider(World world)
     {
         super(world);
         textureIdentifier = new NamespaceID("minecraft", "spider");
@@ -38,10 +38,10 @@ public class SpiderMob extends Monster
     {
         super.defineSynchedData();
         if (world.getDifficulty().canHostileMobsSpawn() && random.nextInt(100 / world.getDifficulty().id()) == 0) {
-            SkeletonMob skeletonMob = new SkeletonMob(world);
-            skeletonMob.moveTo(x, y, z, yRot, 0.0F);
-            world.entityJoinedWorld(skeletonMob);
-            skeletonMob.startRiding(this);
+            MobSkeleton mobSkeleton = new MobSkeleton(world);
+            mobSkeleton.moveTo(x, y, z, yRot, 0.0F);
+            world.entityJoinedWorld(mobSkeleton);
+            mobSkeleton.startRiding(this);
         }
     }
 
diff --git a/src/main/java/net/minecraft/core/entity/monster/ZombieMob.java b/src/main/java/net/minecraft/core/entity/monster/MobZombie.java
similarity index 95%
rename from src/main/java/net/minecraft/core/entity/monster/ZombieMob.java
rename to src/main/java/net/minecraft/core/entity/monster/MobZombie.java
index f6251782f..994e8ae20 100644
--- a/src/main/java/net/minecraft/core/entity/monster/ZombieMob.java
+++ b/src/main/java/net/minecraft/core/entity/monster/MobZombie.java
@@ -10,10 +10,10 @@ import net.minecraft.core.util.helper.MathHelper;
 import net.minecraft.core.world.World;
 import net.minecraft.core.world.weather.Weathers;
 
-public class ZombieMob extends Monster
+public class MobZombie extends MobMonster
 {
 
-    public ZombieMob(World world)
+    public MobZombie(World world)
     {
         super(world);
         textureIdentifier = new NamespaceID("minecraft", "zombie");
diff --git a/src/main/java/net/minecraft/core/entity/monster/ZombieArmoredMob.java b/src/main/java/net/minecraft/core/entity/monster/MobZombieArmored.java
similarity index 96%
rename from src/main/java/net/minecraft/core/entity/monster/ZombieArmoredMob.java
rename to src/main/java/net/minecraft/core/entity/monster/MobZombieArmored.java
index 94b97e7be..5334a1697 100644
--- a/src/main/java/net/minecraft/core/entity/monster/ZombieArmoredMob.java
+++ b/src/main/java/net/minecraft/core/entity/monster/MobZombieArmored.java
@@ -6,7 +6,7 @@ package net.minecraft.core.entity.monster;
 
 import com.mojang.nbt.CompoundTag;
 import net.minecraft.core.entity.Entity;
-import net.minecraft.core.entity.ItemEntity;
+import net.minecraft.core.entity.EntityItem;
 import net.minecraft.core.item.Items;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.util.collection.NamespaceID;
@@ -17,13 +17,13 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Random;
 
-public class ZombieArmoredMob extends ZombieMob
+public class MobZombieArmored extends MobZombie
 {
     public static final int DATA_BREAK_POINTS = 6;
     public static final int DATA_BREAK_ORDER = 7;
     public static final int DATA_GENERIC_FLAGS = 8;
     public static final int MASK_FLAG_SWORD = 0b0000_0001;
-    public ZombieArmoredMob(World world)
+    public MobZombieArmored(World world)
     {
         super(world);
         textureIdentifier = new NamespaceID("minecraft", "zombie_armored");
@@ -85,7 +85,7 @@ public class ZombieArmoredMob extends ZombieMob
                 int numChainlinks = random.nextInt(2);
                 for (int k = 0; k < numChainlinks; k++)
                 {
-                    ItemEntity entityitem = spawnAtLocation(new ItemStack(Items.CHAINLINK), 1.0F);
+                    EntityItem entityitem = spawnAtLocation(new ItemStack(Items.CHAINLINK), 1.0F);
                     entityitem.yd += random.nextFloat() * 0.05F;
                     entityitem.xd += (random.nextFloat() - random.nextFloat()) * 0.1F;
                     entityitem.zd += (random.nextFloat() - random.nextFloat()) * 0.1F;
diff --git a/src/main/java/net/minecraft/core/entity/monster/ZombiePigMob.java b/src/main/java/net/minecraft/core/entity/monster/MobZombiePig.java
similarity index 94%
rename from src/main/java/net/minecraft/core/entity/monster/ZombiePigMob.java
rename to src/main/java/net/minecraft/core/entity/monster/MobZombiePig.java
index 74a05b3bf..accba6dde 100644
--- a/src/main/java/net/minecraft/core/entity/monster/ZombiePigMob.java
+++ b/src/main/java/net/minecraft/core/entity/monster/MobZombiePig.java
@@ -19,13 +19,13 @@ import java.util.ArrayList;
 import java.util.List;
 
 // Referenced classes of package net.minecraft.src:
-//            ZombieMob, World, NBTTagCompound, Player,
+//            MobZombie, World, NBTTagCompound, Player,
 //            AxisAlignedBB, Entity, Item, ItemStack
 
-public class ZombiePigMob extends ZombieMob
+public class MobZombiePig extends MobZombie
 {
 
-    public ZombiePigMob(World world)
+    public MobZombiePig(World world)
     {
         super(world);
         angerLevel = 0;
@@ -43,7 +43,7 @@ public class ZombiePigMob extends ZombieMob
         if (tickCount % 200 == 0 && target instanceof Player && ((Player) target).getStat(Achievements.MOST_WANTED) <= 0) {
             int agroNumber = 1;
             for (Entity e : world.loadedEntityList) {
-                if (e instanceof ZombiePigMob && ((ZombiePigMob) e).target == this.target) {
+                if (e instanceof MobZombiePig && ((MobZombiePig) e).target == this.target) {
                     agroNumber++;
                 }
                 if (agroNumber >= 20) {
@@ -112,9 +112,9 @@ public class ZombiePigMob extends ZombieMob
             for(int j = 0; j < list.size(); j++)
             {
                 Entity entity1 = (Entity)list.get(j);
-                if(entity1 instanceof ZombiePigMob)
+                if(entity1 instanceof MobZombiePig)
                 {
-                    ZombiePigMob entitypigzombie = (ZombiePigMob)entity1;
+                    MobZombiePig entitypigzombie = (MobZombiePig)entity1;
                     entitypigzombie.becomeAngryAt(attacker);
                 }
             }
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 b49898282..666ef8a20 100644
--- a/src/main/java/net/minecraft/core/entity/player/Player.java
+++ b/src/main/java/net/minecraft/core/entity/player/Player.java
@@ -2,45 +2,45 @@ package net.minecraft.core.entity.player;
 
 import com.mojang.nbt.CompoundTag;
 import com.mojang.nbt.ListTag;
-import net.minecraft.core.block.entity.ActivatorBlockEntity;
+import net.minecraft.core.block.BlockBed;
+import net.minecraft.core.block.entity.TileEntityActivator;
+import net.minecraft.core.block.entity.TileEntitySign;
+import net.minecraft.core.entity.EntityItem;
+import net.minecraft.core.entity.animal.MobPig;
+import net.minecraft.core.entity.animal.MobWolf;
+import net.minecraft.core.entity.monster.MobCreeper;
+import net.minecraft.core.entity.monster.MobSlime;
+import net.minecraft.core.entity.monster.MobSpider;
+import net.minecraft.core.entity.monster.MobZombiePig;
+import net.minecraft.core.entity.projectile.ProjectileArrow;
 import net.minecraft.core.enums.Difficulty;
 import net.minecraft.core.achievement.Achievements;
 import net.minecraft.core.achievement.stat.Stat;
 import net.minecraft.core.achievement.stat.StatList;
-import net.minecraft.core.block.BedBlock;
 import net.minecraft.core.block.Block;
 import net.minecraft.core.block.Blocks;
-import net.minecraft.core.block.entity.BlockEntity;
-import net.minecraft.core.block.entity.DispenserBlockEntity;
-import net.minecraft.core.block.entity.FlagBlockEntity;
-import net.minecraft.core.block.entity.FurnaceBlockEntity;
-import net.minecraft.core.block.entity.SignBlockEntity;
-import net.minecraft.core.block.entity.TrommelBlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
+import net.minecraft.core.block.entity.TileEntityDispenser;
+import net.minecraft.core.block.entity.TileEntityFlag;
+import net.minecraft.core.block.entity.TileEntityFurnace;
+import net.minecraft.core.block.entity.TileEntityTrommel;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.data.gamerule.GameRules;
 import net.minecraft.core.entity.Entity;
 import net.minecraft.core.entity.EntityDispatcher;
-import net.minecraft.core.entity.FishingBobberEntity;
-import net.minecraft.core.entity.ItemEntity;
-import net.minecraft.core.entity.LightningEntity;
+import net.minecraft.core.entity.EntityFishingBobber;
+import net.minecraft.core.entity.EntityLightning;
 import net.minecraft.core.entity.Mob;
-import net.minecraft.core.entity.TNTPrimedEntity;
-import net.minecraft.core.entity.animal.PigMob;
-import net.minecraft.core.entity.animal.WolfMob;
-import net.minecraft.core.entity.monster.CreeperMob;
-import net.minecraft.core.entity.monster.GhastMob;
-import net.minecraft.core.entity.monster.GiantMob;
-import net.minecraft.core.entity.monster.Monster;
-import net.minecraft.core.entity.monster.SkeletonMob;
-import net.minecraft.core.entity.monster.SlimeMob;
-import net.minecraft.core.entity.monster.SnowmanMob;
-import net.minecraft.core.entity.monster.SpiderMob;
-import net.minecraft.core.entity.monster.ZombieMob;
-import net.minecraft.core.entity.monster.ZombiePigMob;
-import net.minecraft.core.entity.projectile.ArrowProjectile;
-import net.minecraft.core.entity.projectile.CannonballProjectile;
-import net.minecraft.core.entity.projectile.FireballProjectile;
-import net.minecraft.core.entity.projectile.GoldenArrowProjectile;
+import net.minecraft.core.entity.EntityPrimedTNT;
+import net.minecraft.core.entity.monster.MobGhast;
+import net.minecraft.core.entity.monster.MobGiant;
+import net.minecraft.core.entity.monster.MobMonster;
+import net.minecraft.core.entity.monster.MobSkeleton;
+import net.minecraft.core.entity.monster.MobSnowman;
+import net.minecraft.core.entity.monster.MobZombie;
+import net.minecraft.core.entity.projectile.ProjectileCannonball;
+import net.minecraft.core.entity.projectile.ProjectileFireball;
+import net.minecraft.core.entity.projectile.ProjectileArrowGolden;
 import net.minecraft.core.entity.vehicle.BoatEntity;
 import net.minecraft.core.entity.vehicle.MinecartEntity;
 import net.minecraft.core.enums.ArtType;
@@ -50,14 +50,14 @@ import net.minecraft.core.item.IArmorItem;
 import net.minecraft.core.item.Item;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.item.Items;
-import net.minecraft.core.item.tool.SwordToolItem;
+import net.minecraft.core.item.tool.ItemToolSword;
 import net.minecraft.core.lang.I18n;
 import net.minecraft.core.net.command.TextFormatting;
 import net.minecraft.core.player.gamemode.Gamemode;
 import net.minecraft.core.player.inventory.container.Container;
-import net.minecraft.core.player.inventory.container.Inventory;
-import net.minecraft.core.player.inventory.menu.AbstractContainerMenu;
-import net.minecraft.core.player.inventory.menu.InventoryMenu;
+import net.minecraft.core.player.inventory.container.ContainerInventory;
+import net.minecraft.core.player.inventory.menu.MenuAbstract;
+import net.minecraft.core.player.inventory.menu.MenuInventory;
 import net.minecraft.core.util.collection.NamespaceID;
 import net.minecraft.core.util.helper.DamageType;
 import net.minecraft.core.util.helper.DyeColor;
@@ -69,7 +69,7 @@ import net.minecraft.core.world.World;
 import net.minecraft.core.world.chunk.ChunkCoordinates;
 import net.minecraft.core.world.chunk.provider.IChunkProvider;
 import net.minecraft.core.world.weather.Weathers;
-import net.minecraft.server.entity.player.ServerPlayer;
+import net.minecraft.server.entity.player.PlayerServer;
 import org.jetbrains.annotations.Nullable;
 
 import java.util.ArrayList;
@@ -83,9 +83,9 @@ public abstract class Player extends Mob
     public static final int DATA_SELECTED_ART = 17;
     public static final int DATA_HELD_ARROW = 18;
     public static final TextFormatting deathMsgColor = TextFormatting.RED;
-    public Inventory inventory;
-    public AbstractContainerMenu inventorySlots;
-    public AbstractContainerMenu craftingInventory;
+    public ContainerInventory inventory;
+    public MenuAbstract inventorySlots;
+    public MenuAbstract craftingInventory;
     public Gamemode gamemode = Gamemode.survival;
     //    public byte userType;
     public int score;
@@ -117,7 +117,7 @@ public abstract class Player extends Mob
     public float timeInPortal;
     public float prevTimeInPortal;
     private final int damageRemainder;
-    public @Nullable FishingBobberEntity bobberEntity;
+    public @Nullable EntityFishingBobber bobberEntity;
     protected @Nullable ICarriable heldObject;
     public volatile String skinURL;
     public volatile String capeURL;
@@ -132,7 +132,7 @@ public abstract class Player extends Mob
     public Player(World world)
     {
         super(world);
-        inventory = new Inventory(this);
+        inventory = new ContainerInventory(this);
 //        userType = 0;
         score = 0;
         isSwinging = false;
@@ -140,7 +140,7 @@ public abstract class Player extends Mob
         timeUntilPortal = 20;
         inPortal = false;
         bobberEntity = null;
-        inventorySlots = new InventoryMenu(inventory, !world.isClientSide);
+        inventorySlots = new MenuInventory(inventory, !world.isClientSide);
         craftingInventory = inventorySlots;
         heightOffset = 1.62F;
         ChunkCoordinates chunkcoordinates = world.getSpawnPoint();
@@ -458,9 +458,9 @@ public abstract class Player extends Mob
         {
             return getDisplayName() + deathMsgColor + " was killed by Herobrine.";
         }
-        if (entityKilledBy instanceof ZombieMob)
+        if (entityKilledBy instanceof MobZombie)
         {
-            if (entityKilledBy instanceof ZombiePigMob)
+            if (entityKilledBy instanceof MobZombiePig)
             {
                 return getDisplayName() + deathMsgColor + " discovered mob mentality.";
             }
@@ -469,103 +469,103 @@ public abstract class Player extends Mob
                 return getDisplayName() + deathMsgColor + " became a zombie.";
             }
         }
-        if (entityKilledBy instanceof CreeperMob)
+        if (entityKilledBy instanceof MobCreeper)
         {
             return deathMsgColor + "Aw man, " + getDisplayName() + deathMsgColor + " didn't see the creeper.";
         }
-        if (entityKilledBy instanceof SkeletonMob)
+        if (entityKilledBy instanceof MobSkeleton)
         {
             return getDisplayName() + deathMsgColor + " was a victim of aimbot.";
         }
-        if (entityKilledBy instanceof SpiderMob)
+        if (entityKilledBy instanceof MobSpider)
         {
             return getDisplayName() + deathMsgColor + " spent too much time on the web.";
         }
-        if (entityKilledBy instanceof GhastMob)
+        if (entityKilledBy instanceof MobGhast)
         {
             return getDisplayName() + deathMsgColor + " didn't return the serve.";
         }
-        if (entityKilledBy instanceof SlimeMob)
+        if (entityKilledBy instanceof MobSlime)
         {
             return getDisplayName() + deathMsgColor + " was slimed.";
         }
-        if (entityKilledBy instanceof WolfMob)
+        if (entityKilledBy instanceof MobWolf)
         {
             return getDisplayName() + deathMsgColor + " got what they deserved.";
         }
-        if (entityKilledBy instanceof GoldenArrowProjectile)
+        if (entityKilledBy instanceof ProjectileArrowGolden)
         {
-            if (((GoldenArrowProjectile) entityKilledBy).owner instanceof ServerPlayer)
+            if (((ProjectileArrowGolden) entityKilledBy).owner instanceof PlayerServer)
             {
-                if (((ServerPlayer) ((GoldenArrowProjectile) entityKilledBy).owner).uuid.equals(uuid))
+                if (((PlayerServer) ((ProjectileArrowGolden) entityKilledBy).owner).uuid.equals(uuid))
                 {
                     return getDisplayName() + deathMsgColor + " got gold in their eye.";
                 }
                 return getDisplayName() + deathMsgColor + " got pierced by " +
-                    ((ArrowProjectile) entityKilledBy).owner.getDisplayName() + deathMsgColor + ".";
+                    ((ProjectileArrow) entityKilledBy).owner.getDisplayName() + deathMsgColor + ".";
             }
             else
             {
                 return getDisplayName() + deathMsgColor + " is Swiss cheese.";
             }
         }
-        if (entityKilledBy instanceof ArrowProjectile)
+        if (entityKilledBy instanceof ProjectileArrow)
         {
-            if (((ArrowProjectile) entityKilledBy).owner instanceof SkeletonMob)
+            if (((ProjectileArrow) entityKilledBy).owner instanceof MobSkeleton)
             {
                 return getDisplayName() + deathMsgColor + " was a victim of aimbot.";
             }
-            else if (((ArrowProjectile) entityKilledBy).owner instanceof ServerPlayer)
+            else if (((ProjectileArrow) entityKilledBy).owner instanceof PlayerServer)
             {
-                if (((ServerPlayer) ((ArrowProjectile) entityKilledBy).owner).uuid.equals(uuid))
+                if (((PlayerServer) ((ProjectileArrow) entityKilledBy).owner).uuid.equals(uuid))
                 {
                     return getDisplayName() + deathMsgColor + " lost a game of Russian roulette.";
                 }
                 return getDisplayName() + deathMsgColor + " got 360 noscoped by " +
-                    ((ArrowProjectile) entityKilledBy).owner.getDisplayName() + deathMsgColor + ".";
+                    ((ProjectileArrow) entityKilledBy).owner.getDisplayName() + deathMsgColor + ".";
             }
             else
             {
                 return getDisplayName() + deathMsgColor + " is a pincushion.";
             }
         }
-        if (entityKilledBy instanceof CannonballProjectile)
+        if (entityKilledBy instanceof ProjectileCannonball)
         {
-            if (((CannonballProjectile) entityKilledBy).owner instanceof ServerPlayer)
+            if (((ProjectileCannonball) entityKilledBy).owner instanceof PlayerServer)
             {
-                if (((ServerPlayer) ((CannonballProjectile) entityKilledBy).owner).uuid.equals(uuid))
+                if (((PlayerServer) ((ProjectileCannonball) entityKilledBy).owner).uuid.equals(uuid))
                 {
                     return getDisplayName() + deathMsgColor + " jumped too high.";
                 }
                 return getDisplayName() + deathMsgColor + " was fragmented by " +
-                    ((CannonballProjectile) entityKilledBy).owner.getDisplayName() + deathMsgColor + ".";
+                    ((ProjectileCannonball) entityKilledBy).owner.getDisplayName() + deathMsgColor + ".";
             }
             else
             {
                 return getDisplayName() + deathMsgColor + " was detonated remotely.";
             }
         }
-        if (entityKilledBy instanceof FireballProjectile)
+        if (entityKilledBy instanceof ProjectileFireball)
         {
             return getDisplayName() + deathMsgColor + " didn't return the serve.";
         }
-        if (entityKilledBy instanceof GiantMob)
+        if (entityKilledBy instanceof MobGiant)
         {
             return getDisplayName() + deathMsgColor + " was killed by- wait, what?!";
         }
-        if (entityKilledBy instanceof LightningEntity)
+        if (entityKilledBy instanceof EntityLightning)
         {
             return getDisplayName() + deathMsgColor + " was grounded.";
         }
-        if (entityKilledBy instanceof TNTPrimedEntity)
+        if (entityKilledBy instanceof EntityPrimedTNT)
         {
             return getDisplayName() + deathMsgColor + " was killed by Popbob.";
         }
-        if (entityKilledBy instanceof ServerPlayer)
+        if (entityKilledBy instanceof PlayerServer)
         {
-            return getDisplayName() + deathMsgColor + " was backstabbed by " + ((ServerPlayer) entityKilledBy).getDisplayName() + deathMsgColor + ".";
+            return getDisplayName() + deathMsgColor + " was backstabbed by " + ((PlayerServer) entityKilledBy).getDisplayName() + deathMsgColor + ".";
         }
-        if (entityKilledBy instanceof PigMob)
+        if (entityKilledBy instanceof MobPig)
         {
             return getDisplayName() + deathMsgColor + " is *really* bad at Minecraft.";
         }
@@ -675,7 +675,7 @@ public abstract class Player extends Mob
         {
             return;
         }
-        ItemEntity entityitem = new ItemEntity(world, x, (y - 0.30000001192092896D) + (double) this.getHeadHeight(), z, itemstack);
+        EntityItem entityitem = new EntityItem(world, x, (y - 0.30000001192092896D) + (double) this.getHeadHeight(), z, itemstack);
         entityitem.pickupDelay = 40;
         float f = 0.1F;
         if(flag)
@@ -702,7 +702,7 @@ public abstract class Player extends Mob
         addStat(StatList.dropStat, 1);
     }
 
-    protected void joinEntityItemWithWorld(ItemEntity entityitem)
+    protected void joinEntityItemWithWorld(EntityItem entityitem)
     {
         world.entityJoinedWorld(entityitem);
     }
@@ -710,7 +710,7 @@ public abstract class Player extends Mob
     public float getCurrentPlayerStrVsBlock(Block block)
     {
         float f = inventory.getStrVsBlock(block);
-        float defaultBreakSpeed = (inventory.getCurrentItem() != null && inventory.getCurrentItem().getItem() instanceof SwordToolItem) ? 1.51f : 1.01f;
+        float defaultBreakSpeed = (inventory.getCurrentItem() != null && inventory.getCurrentItem().getItem() instanceof ItemToolSword) ? 1.51f : 1.01f;
         if (this.getGamemode().doesRequireToolToBreak() && f <= defaultBreakSpeed) return 0; // Requires to break and not effective against block
         if(isUnderLiquid(Material.water))
         {
@@ -733,7 +733,7 @@ public abstract class Player extends Mob
 	public void readAdditionalSaveData(CompoundTag tag)
     {
         super.readAdditionalSaveData(tag);
-        ListTag nbttaglist = tag.getList("Inventory");
+        ListTag nbttaglist = tag.getList("ContainerInventory");
         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("Inventory", inventory.writeToNBT(new ListTag()));
+        tag.put("ContainerInventory", inventory.writeToNBT(new ListTag()));
         tag.putInt("CurrentItem", inventory.getCurrentItemIndex());
         tag.putInt("HotbarOffset", inventory.getHotbarOffset());
         tag.putInt("Dimension", dimension);
@@ -874,7 +874,7 @@ public abstract class Player extends Mob
         {
             wakeUpPlayer(true, true);
         }
-        if((attacker instanceof Monster) || (attacker instanceof ArrowProjectile))
+        if((attacker instanceof MobMonster) || (attacker instanceof ProjectileArrow))
         {
             switch (world.getDifficulty()) {
                 case PEACEFUL: {
@@ -892,13 +892,13 @@ public abstract class Player extends Mob
             }
         }
         Entity blamedAttacker = attacker;
-        if (damage == 0 && !(attacker instanceof SnowmanMob))
+        if (damage == 0 && !(attacker instanceof MobSnowman))
         {
             return false;
         }
-        if((blamedAttacker instanceof ArrowProjectile) && ((ArrowProjectile)blamedAttacker).owner != null)
+        if((blamedAttacker instanceof ProjectileArrow) && ((ProjectileArrow)blamedAttacker).owner != null)
         {
-            blamedAttacker = ((ArrowProjectile)blamedAttacker).owner;
+            blamedAttacker = ((ProjectileArrow)blamedAttacker).owner;
         }
         if(blamedAttacker instanceof Mob)
         {
@@ -920,13 +920,13 @@ public abstract class Player extends Mob
 
     protected void alertWolves(Mob attacker, boolean flag)
     {
-        if((attacker instanceof CreeperMob) || (attacker instanceof GhastMob))
+        if((attacker instanceof MobCreeper) || (attacker instanceof MobGhast))
         {
             return;
         }
-        if(attacker instanceof WolfMob)
+        if(attacker instanceof MobWolf)
         {
-            WolfMob wolf = (WolfMob)attacker;
+            MobWolf wolf = (MobWolf)attacker;
             if(wolf.isWolfTamed() && uuid.equals(wolf.getWolfOwner()))
             {
                 return;
@@ -936,9 +936,9 @@ public abstract class Player extends Mob
         {
             return;
         }
-        List<Entity> list = world.getEntitiesWithinAABB(WolfMob.class, AABB.getTemporaryBB(x, y, z, x + 1.0D, y + 1.0D, z + 1.0D).grow(16D, 4D, 16D));
+        List<Entity> list = world.getEntitiesWithinAABB(MobWolf.class, AABB.getTemporaryBB(x, y, z, x + 1.0D, y + 1.0D, z + 1.0D).grow(16D, 4D, 16D));
         for (Entity entity : list) {
-            WolfMob wolf = (WolfMob) entity;
+            MobWolf wolf = (MobWolf) entity;
             if (wolf.isWolfTamed() && wolf.getTarget() == null && uuid.equals(wolf.getWolfOwner()) && (!flag || !wolf.isWolfSitting())) {
                 wolf.setTarget(attacker);
             }
@@ -989,27 +989,27 @@ public abstract class Player extends Mob
         }
     }
     
-    public void displayFurnaceScreen(FurnaceBlockEntity blockEntity)
+    public void displayFurnaceScreen(TileEntityFurnace blockEntity)
     {
     }
 
-    public void displayTrommelScreen(TrommelBlockEntity blockEntity)
+    public void displayTrommelScreen(TileEntityTrommel blockEntity)
     {
     }
 
-    public void displayDispenserScreen(DispenserBlockEntity blockEntity)
+    public void displayDispenserScreen(TileEntityDispenser blockEntity)
     {
     }
 
-    public void displayActivatorScreen(ActivatorBlockEntity blockEntity)
+    public void displayActivatorScreen(TileEntityActivator blockEntity)
     {
     }
 
-    public void displaySignEditorScreen(SignBlockEntity blockEntity)
+    public void displaySignEditorScreen(TileEntitySign blockEntity)
     {
     }
 
-    public void displayFlagEditorScreen(FlagBlockEntity blockEntity)
+    public void displayFlagEditorScreen(TileEntityFlag blockEntity)
     {
     }
 
@@ -1163,7 +1163,7 @@ public abstract class Player extends Mob
         if(world.isBlockLoaded(x, y, z))
         {
             int meta = world.getBlockMetadata(x, y, z);
-            int dir = BedBlock.getDirection(meta);
+            int dir = BlockBed.getDirection(meta);
             float xOff = 0.5F;
             float zOff = 0.5F;
             
@@ -1221,10 +1221,10 @@ public abstract class Player extends Mob
         setSize(0.6F, 1.8F);
         resetHeight();
         ChunkCoordinates chunkcoordinates = bedChunkCoordinates;
-        if(chunkcoordinates != null && world.getBlock(chunkcoordinates.x, chunkcoordinates.y, chunkcoordinates.z) instanceof BedBlock)
+        if(chunkcoordinates != null && world.getBlock(chunkcoordinates.x, chunkcoordinates.y, chunkcoordinates.z) instanceof BlockBed)
         {
-            BedBlock.setBedOccupied(world, chunkcoordinates.x, chunkcoordinates.y, chunkcoordinates.z, false);
-            ChunkCoordinates chunkcoordinates2 = BedBlock.getNearestEmptyChunkCoordinates(world, chunkcoordinates.x, chunkcoordinates.y, chunkcoordinates.z, 0);
+            BlockBed.setBedOccupied(world, chunkcoordinates.x, chunkcoordinates.y, chunkcoordinates.z, false);
+            ChunkCoordinates chunkcoordinates2 = BlockBed.getNearestEmptyChunkCoordinates(world, chunkcoordinates.x, chunkcoordinates.y, chunkcoordinates.z, 0);
             if(chunkcoordinates2 == null)
             {
                 chunkcoordinates2 = new ChunkCoordinates(chunkcoordinates.x, chunkcoordinates.y + 1, chunkcoordinates.z);
@@ -1247,7 +1247,7 @@ public abstract class Player extends Mob
 
     private boolean isInBed()
     {
-        return world.getBlock(bedChunkCoordinates.x, bedChunkCoordinates.y, bedChunkCoordinates.z) instanceof BedBlock;
+        return world.getBlock(bedChunkCoordinates.x, bedChunkCoordinates.y, bedChunkCoordinates.z) instanceof BlockBed;
     }
 
     public static ChunkCoordinates getValidBedSpawnCoordinates(World world, ChunkCoordinates coords)
@@ -1258,8 +1258,8 @@ public abstract class Player extends Mob
         chunkProvider.prepareChunk(coords.x + 3 >> 4, coords.z - 3 >> 4);
         chunkProvider.prepareChunk(coords.x - 3 >> 4, coords.z + 3 >> 4);
         chunkProvider.prepareChunk(coords.x + 3 >> 4, coords.z + 3 >> 4);
-        if (world.getBlock(coords.x, coords.y, coords.z) instanceof BedBlock) {
-            return BedBlock.getNearestEmptyChunkCoordinates(world, coords.x, coords.y, coords.z, 0);
+        if (world.getBlock(coords.x, coords.y, coords.z) instanceof BlockBed) {
+            return BlockBed.getNearestEmptyChunkCoordinates(world, coords.x, coords.y, coords.z, 0);
         } else {
             return null;
         }
@@ -1270,7 +1270,7 @@ public abstract class Player extends Mob
         if(bedChunkCoordinates != null)
         {
             int i = world.getBlockMetadata(bedChunkCoordinates.x, bedChunkCoordinates.y, bedChunkCoordinates.z);
-            int j = BedBlock.getDirection(i);
+            int j = BlockBed.getDirection(i);
             switch(j)
             {
             case 0: // '\0'
@@ -1451,7 +1451,7 @@ public abstract class Player extends Mob
                 {
                     addStat(StatList.distanceByBoatStat, i);
                 } else
-                if(vehicle instanceof PigMob)
+                if(vehicle instanceof MobPig)
                 {
                     addStat(StatList.distanceByPigStat, i);
                 }
@@ -1472,7 +1472,7 @@ public abstract class Player extends Mob
     @Override
 	public void killed(Mob entityliving)
     {
-        if(entityliving instanceof Monster)
+        if(entityliving instanceof MobMonster)
         {
             triggerAchievement(Achievements.KILL_ENEMY);
         }
@@ -1509,7 +1509,7 @@ public abstract class Player extends Mob
     {
         this.gamemode = gamemode;
 
-        InventoryMenu newContainer = gamemode.getContainer(this.inventory, !world.isClientSide);
+        MenuInventory newContainer = gamemode.getContainer(this.inventory, !world.isClientSide);
         if (craftingInventory == inventorySlots)
         {
             craftingInventory = newContainer;
@@ -1554,8 +1554,8 @@ public abstract class Player extends Mob
     		return;
     	}
     	
-    	BlockEntity blockEntity = world.getBlockEntity(x, y, z);
-    	ItemStack[] result = block.getBreakResult(world, EnumDropCause.PICK_BLOCK, x, y, z, meta, blockEntity);
+    	TileEntity tileEntity = world.getBlockEntity(x, y, z);
+    	ItemStack[] result = block.getBreakResult(world, EnumDropCause.PICK_BLOCK, x, y, z, meta, tileEntity);
     	ItemStack selectItem = result != null ? result[0] : null;
     	
     	if(selectItem == null) {
diff --git a/src/main/java/net/minecraft/core/entity/projectile/ArrowProjectile.java b/src/main/java/net/minecraft/core/entity/projectile/ProjectileArrow.java
similarity index 94%
rename from src/main/java/net/minecraft/core/entity/projectile/ArrowProjectile.java
rename to src/main/java/net/minecraft/core/entity/projectile/ProjectileArrow.java
index 4cd0e03ed..6eb8cd34b 100644
--- a/src/main/java/net/minecraft/core/entity/projectile/ArrowProjectile.java
+++ b/src/main/java/net/minecraft/core/entity/projectile/ProjectileArrow.java
@@ -1,7 +1,6 @@
 package net.minecraft.core.entity.projectile;
 
 import com.mojang.nbt.CompoundTag;
-import net.minecraft.core.achievement.Achievement;
 import net.minecraft.core.achievement.Achievements;
 import net.minecraft.core.entity.Mob;
 import net.minecraft.core.entity.player.Player;
@@ -21,7 +20,7 @@ import net.minecraft.core.world.World;
 //            MovingObjectPosition, NBTTagCompound, ItemStack, Item, 
 //            InventoryPlayer
 
-public class ArrowProjectile extends Projectile
+public class ProjectileArrow extends Projectile
 {
     public static final int TYPE_NORMAL = 0;
     public static final int TYPE_PURPLE = 1;
@@ -45,23 +44,23 @@ public class ArrowProjectile extends Projectile
     protected boolean inGround = false;
     protected boolean doesArrowBelongToPlayer = false;
 
-	public ArrowProjectile(World world) {
+	public ProjectileArrow(World world) {
 		this(world, TYPE_NORMAL);
 	}
 	
-    public ArrowProjectile(World world, int arrowType)
+    public ProjectileArrow(World world, int arrowType)
     {
         super(world);
         this.arrowType = arrowType;
     }
 
-    public ArrowProjectile(World world, double d, double d1, double d2, int arrowType)
+    public ProjectileArrow(World world, double d, double d1, double d2, int arrowType)
     {
         super(world, d, d1, d2);
         this.arrowType = arrowType;
     }
 
-    public ArrowProjectile(World world, Mob entityliving, boolean doesArrowBelongToPlayer, int arrowType)
+    public ProjectileArrow(World world, Mob entityliving, boolean doesArrowBelongToPlayer, int arrowType)
     {
         super(world, entityliving);
         setDoesArrowBelongToPlayer(doesArrowBelongToPlayer);
@@ -153,7 +152,7 @@ public class ArrowProjectile extends Projectile
             }
             return;
         }
-        else if(this instanceof GoldenArrowProjectile)
+        else if(this instanceof ProjectileArrowGolden)
         {
             world.spawnParticle("arrowtrail", x, y, z, xd * 0.05D, yd * 0.05D - 0.1D, zd * 0.05D, 0);
             world.spawnParticle("arrowtrail", x + xd * 0.5D, y + yd * 0.5D, z + zd * 0.5D, xd * 0.05D, yd * 0.05D - 0.1D, zd * 0.05D, 0);
@@ -175,7 +174,7 @@ public class ArrowProjectile extends Projectile
                 if(!world.isClientSide) {
                 	world.playSoundAtEntity(null, this, "random.drr", 1.0F, 1.2F / (random.nextFloat() * 0.2F + 0.9F));
                 }
-                if(!(this instanceof GoldenArrowProjectile))
+                if(!(this instanceof ProjectileArrowGolden))
                 {
                     remove();
                 } else {
@@ -183,7 +182,7 @@ public class ArrowProjectile extends Projectile
                         ((Player) owner).addStat(Achievements.TRIPLE_HIT, 1);
                     }
                 }
-            } else if(!(this instanceof GoldenArrowProjectile))
+            } else if(!(this instanceof ProjectileArrowGolden))
             {
                 xd *= -0.1D;
                 yd *= -0.1D;
diff --git a/src/main/java/net/minecraft/core/entity/projectile/GoldenArrowProjectile.java b/src/main/java/net/minecraft/core/entity/projectile/ProjectileArrowGolden.java
similarity index 85%
rename from src/main/java/net/minecraft/core/entity/projectile/GoldenArrowProjectile.java
rename to src/main/java/net/minecraft/core/entity/projectile/ProjectileArrowGolden.java
index a16b3ad88..5b1eeae44 100644
--- a/src/main/java/net/minecraft/core/entity/projectile/GoldenArrowProjectile.java
+++ b/src/main/java/net/minecraft/core/entity/projectile/ProjectileArrowGolden.java
@@ -12,24 +12,24 @@ import net.minecraft.core.item.Items;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.world.World;
 
-public class GoldenArrowProjectile extends ArrowProjectile
+public class ProjectileArrowGolden extends ProjectileArrow
 {
 
-    public GoldenArrowProjectile(World world)
+    public ProjectileArrowGolden(World world)
     {
         super(world, TYPE_GOLDEN);
         this.noPhysics = true;
         stack = new ItemStack(Items.AMMO_ARROW_GOLD);
     }
 
-    public GoldenArrowProjectile(World world, double x, double y, double z)
+    public ProjectileArrowGolden(World world, double x, double y, double z)
     {
         super(world, x, y, z, TYPE_GOLDEN);
         this.noPhysics = true;
         stack = new ItemStack(Items.AMMO_ARROW_GOLD);
     }
 
-    public GoldenArrowProjectile(World world, Mob owner, boolean doesArrowBelongToPlayer)
+    public ProjectileArrowGolden(World world, Mob owner, boolean doesArrowBelongToPlayer)
     {
         super(world, owner, doesArrowBelongToPlayer, TYPE_GOLDEN);
         this.noPhysics = true;
diff --git a/src/main/java/net/minecraft/core/entity/projectile/PurpleArrowProjectile.java b/src/main/java/net/minecraft/core/entity/projectile/ProjectileArrowPurple.java
similarity index 83%
rename from src/main/java/net/minecraft/core/entity/projectile/PurpleArrowProjectile.java
rename to src/main/java/net/minecraft/core/entity/projectile/ProjectileArrowPurple.java
index ce9c9780e..a61e17827 100644
--- a/src/main/java/net/minecraft/core/entity/projectile/PurpleArrowProjectile.java
+++ b/src/main/java/net/minecraft/core/entity/projectile/ProjectileArrowPurple.java
@@ -10,20 +10,20 @@ import net.minecraft.core.world.World;
 //            MovingObjectPosition, NBTTagCompound, ItemStack, Item, 
 //            InventoryPlayer
 
-public class PurpleArrowProjectile extends ArrowProjectile
+public class ProjectileArrowPurple extends ProjectileArrow
 {
 
-    public PurpleArrowProjectile(World world)
+    public ProjectileArrowPurple(World world)
     {
         super(world, TYPE_PURPLE);
     }
 
-    public PurpleArrowProjectile(World world, double x, double y, double z)
+    public ProjectileArrowPurple(World world, double x, double y, double z)
     {
         super(world, x, y, z, TYPE_PURPLE);
     }
 
-    public PurpleArrowProjectile(World world, Mob owner, boolean doesArrowBelongToPlayer)
+    public ProjectileArrowPurple(World world, Mob owner, boolean doesArrowBelongToPlayer)
     {
         super(world, owner, doesArrowBelongToPlayer, TYPE_PURPLE);
     }
diff --git a/src/main/java/net/minecraft/core/entity/projectile/CannonballProjectile.java b/src/main/java/net/minecraft/core/entity/projectile/ProjectileCannonball.java
similarity index 79%
rename from src/main/java/net/minecraft/core/entity/projectile/CannonballProjectile.java
rename to src/main/java/net/minecraft/core/entity/projectile/ProjectileCannonball.java
index c0438a8a5..c632efc92 100644
--- a/src/main/java/net/minecraft/core/entity/projectile/CannonballProjectile.java
+++ b/src/main/java/net/minecraft/core/entity/projectile/ProjectileCannonball.java
@@ -4,20 +4,20 @@ import net.minecraft.core.util.phys.HitResult;
 import net.minecraft.core.entity.Mob;
 import net.minecraft.core.world.World;
 
-public class CannonballProjectile extends Projectile
+public class ProjectileCannonball extends Projectile
 {
 
-    public CannonballProjectile(World world)
+    public ProjectileCannonball(World world)
     {
         super(world);
     }
 
-    public CannonballProjectile(World world, Mob owner)
+    public ProjectileCannonball(World world, Mob owner)
     {
         super(world, owner);
     }
 
-    public CannonballProjectile(World world, double x, double y, double z)
+    public ProjectileCannonball(World world, double x, double y, double z)
     {
         super(world, x, y, z);
     }
diff --git a/src/main/java/net/minecraft/core/entity/projectile/CannonballBouncyProjectile.java b/src/main/java/net/minecraft/core/entity/projectile/ProjectileCannonballBouncy.java
similarity index 96%
rename from src/main/java/net/minecraft/core/entity/projectile/CannonballBouncyProjectile.java
rename to src/main/java/net/minecraft/core/entity/projectile/ProjectileCannonballBouncy.java
index eae86b8ac..f4b2abd9a 100644
--- a/src/main/java/net/minecraft/core/entity/projectile/CannonballBouncyProjectile.java
+++ b/src/main/java/net/minecraft/core/entity/projectile/ProjectileCannonballBouncy.java
@@ -11,11 +11,11 @@ import net.minecraft.core.world.World;
 
 import java.util.List;
 
-public class CannonballBouncyProjectile extends CannonballProjectile
+public class ProjectileCannonballBouncy extends ProjectileCannonball
 {
     private int fuse = 50;
 
-    public CannonballBouncyProjectile(World world, Mob owner)
+    public ProjectileCannonballBouncy(World world, Mob owner)
     {
         super(world, owner);
         x += xd;
@@ -25,7 +25,7 @@ public class CannonballBouncyProjectile extends CannonballProjectile
         this.defaultGravity = 0.06f;
     }
 
-    public CannonballBouncyProjectile(World world, double x, double y, double z)
+    public ProjectileCannonballBouncy(World world, double x, double y, double z)
     {
         super(world, x, y, z);
         this.defaultGravity = 0.06f;
diff --git a/src/main/java/net/minecraft/core/entity/projectile/EggProjectile.java b/src/main/java/net/minecraft/core/entity/projectile/ProjectileEgg.java
similarity index 75%
rename from src/main/java/net/minecraft/core/entity/projectile/EggProjectile.java
rename to src/main/java/net/minecraft/core/entity/projectile/ProjectileEgg.java
index 4aba7d342..9a71174f4 100644
--- a/src/main/java/net/minecraft/core/entity/projectile/EggProjectile.java
+++ b/src/main/java/net/minecraft/core/entity/projectile/ProjectileEgg.java
@@ -1,27 +1,27 @@
 package net.minecraft.core.entity.projectile;
 
 import net.minecraft.core.entity.Mob;
-import net.minecraft.core.entity.animal.ChickenMob;
+import net.minecraft.core.entity.animal.MobChicken;
 import net.minecraft.core.item.Items;
 import net.minecraft.core.util.phys.HitResult;
 import net.minecraft.core.world.World;
 
-public class EggProjectile extends Projectile
+public class ProjectileEgg extends Projectile
 {
 
-    public EggProjectile(World world)
+    public ProjectileEgg(World world)
     {
         super(world);
         this.modelItem = Items.EGG_CHICKEN;
     }
 
-    public EggProjectile(World world, Mob owner)
+    public ProjectileEgg(World world, Mob owner)
     {
         super(world, owner);
         this.modelItem = Items.EGG_CHICKEN;
     }
 
-    public EggProjectile(World world, double x, double y, double z)
+    public ProjectileEgg(World world, double x, double y, double z)
     {
         super(world, x, y, z);
         this.modelItem = Items.EGG_CHICKEN;
@@ -38,7 +38,7 @@ public class EggProjectile extends Projectile
             }
             for(int k = 0; k < byte0; k++)
             {
-                ChickenMob entitychicken = new ChickenMob(world);
+                MobChicken entitychicken = new MobChicken(world);
                 entitychicken.moveTo(x, y, z, yRot, 0.0F);
                 world.entityJoinedWorld(entitychicken);
             }
diff --git a/src/main/java/net/minecraft/core/entity/projectile/FireballProjectile.java b/src/main/java/net/minecraft/core/entity/projectile/ProjectileFireball.java
similarity index 92%
rename from src/main/java/net/minecraft/core/entity/projectile/FireballProjectile.java
rename to src/main/java/net/minecraft/core/entity/projectile/ProjectileFireball.java
index 6a0baca1c..fa7230218 100644
--- a/src/main/java/net/minecraft/core/entity/projectile/FireballProjectile.java
+++ b/src/main/java/net/minecraft/core/entity/projectile/ProjectileFireball.java
@@ -2,7 +2,7 @@ package net.minecraft.core.entity.projectile;
 
 import net.minecraft.core.achievement.Achievements;
 import net.minecraft.core.entity.Mob;
-import net.minecraft.core.entity.monster.GhastMob;
+import net.minecraft.core.entity.monster.MobGhast;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.util.phys.HitResult;
 import net.minecraft.core.util.phys.Vec3;
@@ -15,17 +15,17 @@ import net.minecraft.core.util.helper.DamageType;
 //            Entity, AxisAlignedBB, MathHelper, Mob,
 //            World, Vec3D, MovingObjectPosition, NBTTagCompound
 
-public class FireballProjectile extends Projectile
+public class ProjectileFireball extends Projectile
 {
     public static final double FIREBALL_SPEED = 1d;
 
-    public FireballProjectile(World world)
+    public ProjectileFireball(World world)
     {
         super(world);
         setSize(1.0F, 1.0F);
     }
 
-    public FireballProjectile(World world, double x, double y, double z,
+    public ProjectileFireball(World world, double x, double y, double z,
                               double vX, double vY, double vZ)
     {
         super(world);
@@ -34,7 +34,7 @@ public class FireballProjectile extends Projectile
         setPos(x, y, z);
         setVelocity(vX, vY, vZ, FIREBALL_SPEED);
     }
-    public FireballProjectile(World world, Mob owner, double vX, double vY, double vZ)
+    public ProjectileFireball(World world, Mob owner, double vX, double vY, double vZ)
     {
         super(world);
         setSize(1.0F, 1.0F);
@@ -81,7 +81,7 @@ public class FireballProjectile extends Projectile
             {
                 if(result.entity != null)
                 {
-                    if (result.entity instanceof GhastMob){
+                    if (result.entity instanceof MobGhast){
                         result.entity.hurt(owner, 20, DamageType.COMBAT);
                     } else {
                         result.entity.hurt(owner, damage, DamageType.COMBAT);
diff --git a/src/main/java/net/minecraft/core/entity/projectile/PebbleProjectile.java b/src/main/java/net/minecraft/core/entity/projectile/ProjectilePebble.java
similarity index 83%
rename from src/main/java/net/minecraft/core/entity/projectile/PebbleProjectile.java
rename to src/main/java/net/minecraft/core/entity/projectile/ProjectilePebble.java
index 8ea779de1..d1c9b657e 100644
--- a/src/main/java/net/minecraft/core/entity/projectile/PebbleProjectile.java
+++ b/src/main/java/net/minecraft/core/entity/projectile/ProjectilePebble.java
@@ -1,7 +1,7 @@
 package net.minecraft.core.entity.projectile;
 
+import net.minecraft.core.entity.EntityItem;
 import net.minecraft.core.util.phys.HitResult;
-import net.minecraft.core.entity.ItemEntity;
 import net.minecraft.core.entity.Mob;
 import net.minecraft.core.item.Items;
 import net.minecraft.core.item.ItemStack;
@@ -13,21 +13,21 @@ import net.minecraft.core.world.World;
 //            World, Vec3D, MovingObjectPosition, NBTTagCompound, 
 //            Player, ItemStack, Item, InventoryPlayer
 
-public class PebbleProjectile extends Projectile
+public class ProjectilePebble extends Projectile
 {
     private boolean firstBounce = true;
 
-    public PebbleProjectile(World world)
+    public ProjectilePebble(World world)
     {
         super(world);
     }
 
-    public PebbleProjectile(World world, Mob owner)
+    public ProjectilePebble(World world, Mob owner)
     {
         super(world, owner);
     }
 
-    public PebbleProjectile(World world, double x, double y, double z)
+    public ProjectilePebble(World world, double x, double y, double z)
     {
         super(world, x, y, z);
     }
@@ -45,7 +45,7 @@ public class PebbleProjectile extends Projectile
 
         if(!world.isClientSide)
         {
-            ItemEntity item = new ItemEntity(world, x, y, z, new ItemStack(Items.AMMO_PEBBLE, 1));
+            EntityItem item = new EntityItem(world, x, y, z, new ItemStack(Items.AMMO_PEBBLE, 1));
             world.entityJoinedWorld(item);
         }
 
diff --git a/src/main/java/net/minecraft/core/entity/projectile/SnowballProjectile.java b/src/main/java/net/minecraft/core/entity/projectile/ProjectileSnowball.java
similarity index 72%
rename from src/main/java/net/minecraft/core/entity/projectile/SnowballProjectile.java
rename to src/main/java/net/minecraft/core/entity/projectile/ProjectileSnowball.java
index 31a6a1ae3..4bca556fe 100644
--- a/src/main/java/net/minecraft/core/entity/projectile/SnowballProjectile.java
+++ b/src/main/java/net/minecraft/core/entity/projectile/ProjectileSnowball.java
@@ -1,7 +1,6 @@
 package net.minecraft.core.entity.projectile;
 
 import net.minecraft.core.entity.Mob;
-import net.minecraft.core.item.Item;
 import net.minecraft.core.item.Items;
 import net.minecraft.core.world.World;
 
@@ -10,22 +9,22 @@ import net.minecraft.core.world.World;
 //            World, Vec3D, MovingObjectPosition, NBTTagCompound, 
 //            Player, ItemStack, Item, InventoryPlayer
 
-public class SnowballProjectile extends Projectile
+public class ProjectileSnowball extends Projectile
 {
 
-    public SnowballProjectile(World world)
+    public ProjectileSnowball(World world)
     {
         super(world);
         this.modelItem = Items.AMMO_SNOWBALL;
     }
 
-    public SnowballProjectile(World world, Mob owner)
+    public ProjectileSnowball(World world, Mob owner)
     {
         super(world, owner);
         this.modelItem = Items.AMMO_SNOWBALL;
     }
 
-    public SnowballProjectile(World world, double x, double y, double z)
+    public ProjectileSnowball(World world, double x, double y, double z)
     {
         super(world, x, y, z);
         this.modelItem = Items.AMMO_SNOWBALL;
diff --git a/src/main/java/net/minecraft/core/entity/vehicle/BoatEntity.java b/src/main/java/net/minecraft/core/entity/vehicle/BoatEntity.java
index bcdba4599..b374d8362 100644
--- a/src/main/java/net/minecraft/core/entity/vehicle/BoatEntity.java
+++ b/src/main/java/net/minecraft/core/entity/vehicle/BoatEntity.java
@@ -1,11 +1,11 @@
 package net.minecraft.core.entity.vehicle;
 
 import com.mojang.nbt.CompoundTag;
-import net.minecraft.client.entity.player.MultiplayerLocalPlayer;
-import net.minecraft.client.entity.player.LocalPlayer;
+import net.minecraft.client.entity.player.PlayerLocalMultiplayer;
+import net.minecraft.client.entity.player.PlayerLocal;
 import net.minecraft.core.block.Block;
 import net.minecraft.core.block.Blocks;
-import net.minecraft.core.block.entity.FlagBlockEntity;
+import net.minecraft.core.block.entity.TileEntityFlag;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.block.tag.BlockTags;
 import net.minecraft.core.entity.Entity;
@@ -20,7 +20,7 @@ import net.minecraft.core.util.helper.MathHelper;
 import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.util.phys.AABB;
 import net.minecraft.core.world.World;
-import net.minecraft.server.entity.player.ServerPlayer;
+import net.minecraft.server.entity.player.PlayerServer;
 
 import java.util.List;
 
@@ -53,7 +53,7 @@ public class BoatEntity extends Entity
     private double pendingXDChange;
     private double pendingZDChange;
     private ItemStack flag = null;
-    public FlagBlockEntity tileEntityFlag = null;
+    public TileEntityFlag tileEntityFlag = null;
 
 
     public BoatEntity(World world)
@@ -71,7 +71,7 @@ public class BoatEntity extends Entity
     private void createTileEntity()
     {
         if (this.flag == null) return;
-        this.tileEntityFlag = new FlagBlockEntity();
+        this.tileEntityFlag = new TileEntityFlag();
         CompoundTag flagData = this.flag.getData().getCompoundOrDefault("FlagData", null);
         if (flagData != null)
         {
@@ -212,7 +212,7 @@ public class BoatEntity extends Entity
         boatPitch = xRot;
         lerpTicks = i;
         // Don't interpolate velocity from server when controlling the boat
-        if (passenger instanceof LocalPlayer) return;
+        if (passenger instanceof PlayerLocal) return;
         lerpYRot = yRot;
         xd = velocityX;
         yd = velocityY;
@@ -223,7 +223,7 @@ public class BoatEntity extends Entity
 	public void lerpMotion(double xd, double yd, double zd)
     {
         // Don't interpolate velocity from server when controlling the boat
-        if (passenger instanceof LocalPlayer) return;
+        if (passenger instanceof PlayerLocal) return;
         velocityX = this.xd = xd;
         velocityY = this.yd = yd;
         velocityZ = this.zd = zd;
@@ -265,7 +265,7 @@ public class BoatEntity extends Entity
                 double lerpY = y + (this.lerpY - y) / (double) lerpTicks;
                 double lerpZ = z + (this.lerpZ - z) / (double) lerpTicks;
                 xRot += (boatPitch - xRot) / lerpTicks;
-                if (!(passenger instanceof MultiplayerLocalPlayer)){
+                if (!(passenger instanceof PlayerLocalMultiplayer)){
                     float lerpYRot;
                     lerpYRot = MathHelper.normalizeRotation(this.lerpYRot - yRot);
                     yRot += lerpYRot / lerpTicks;
@@ -333,7 +333,7 @@ public class BoatEntity extends Entity
 
         }
 
-        if (!(passenger instanceof ServerPlayer)){
+        if (!(passenger instanceof PlayerServer)){
             xd *= 0.99D;
             yd *= 0.95D;
             zd *= 0.99D;
@@ -388,9 +388,9 @@ public class BoatEntity extends Entity
         double xdOff;
         double zdOff;
         currentBoatSpeed = Math.hypot(xd, zd);
-        if(passenger != null && passenger instanceof LocalPlayer)
+        if(passenger != null && passenger instanceof PlayerLocal)
         {
-            LocalPlayer sp = (LocalPlayer) passenger;
+            PlayerLocal sp = (PlayerLocal) passenger;
             controlBoat(-sp.input.moveForward, -sp.input.moveStrafe);
         }
         yRot += pendingYRot;
@@ -411,8 +411,8 @@ public class BoatEntity extends Entity
         xd += xdOff;
         zd += zdOff;
 
-        if (passenger instanceof MultiplayerLocalPlayer){
-            ((MultiplayerLocalPlayer)passenger).sendQueue.addToSendQueue(new BoatControlPacket(this));
+        if (passenger instanceof PlayerLocalMultiplayer){
+            ((PlayerLocalMultiplayer)passenger).sendQueue.addToSendQueue(new BoatControlPacket(this));
         }
 
         // Cap max speed properly
diff --git a/src/main/java/net/minecraft/core/entity/vehicle/MinecartEntity.java b/src/main/java/net/minecraft/core/entity/vehicle/MinecartEntity.java
index ddb05f295..61f9ef542 100644
--- a/src/main/java/net/minecraft/core/entity/vehicle/MinecartEntity.java
+++ b/src/main/java/net/minecraft/core/entity/vehicle/MinecartEntity.java
@@ -3,15 +3,14 @@ package net.minecraft.core.entity.vehicle;
 import com.mojang.nbt.CompoundTag;
 import com.mojang.nbt.ListTag;
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.RailBlock;
+import net.minecraft.core.block.BlockRail;
 import net.minecraft.core.block.Blocks;
-import net.minecraft.core.block.entity.BlockEntity;
-import net.minecraft.core.block.entity.ChestBlockEntity;
+import net.minecraft.core.block.entity.TileEntityChest;
 import net.minecraft.core.block.logic.RailDirection;
 import net.minecraft.core.block.motion.CarriedBlock;
 import net.minecraft.core.crafting.LookupFuelFurnace;
 import net.minecraft.core.entity.Entity;
-import net.minecraft.core.entity.ItemEntity;
+import net.minecraft.core.entity.EntityItem;
 import net.minecraft.core.entity.Mob;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.item.ItemStack;
@@ -232,13 +231,13 @@ public class MinecartEntity extends Entity implements Container {
                 double x1 = (double) (random.nextFloat() * range) + (double) (1.0F - range) * 0.5D;
                 double y1 = (double) (random.nextFloat() * range) + (double) (1.0F - range) * 0.5D;
                 double z1 = (double) (random.nextFloat() * range) + (double) (1.0F - range) * 0.5D;
-                ItemEntity itemEntity = new ItemEntity(world, x + x1, y + y1, z + z1, itemStack);
-                itemEntity.pickupDelay = 10;
-                world.entityJoinedWorld(itemEntity);
-                itemEntity.xd *= 0.5;
-                itemEntity.yd *= 0.5;
-                itemEntity.zd *= 0.5;
-                itemEntity.pickupDelay = 0;
+                EntityItem entityItem = new EntityItem(world, x + x1, y + y1, z + z1, itemStack);
+                entityItem.pickupDelay = 10;
+                world.entityJoinedWorld(entityItem);
+                entityItem.xd *= 0.5;
+                entityItem.yd *= 0.5;
+                entityItem.zd *= 0.5;
+                entityItem.pickupDelay = 0;
             }
         }
 
@@ -288,15 +287,15 @@ public class MinecartEntity extends Entity implements Container {
         int blockX = MathHelper.floor(x);
         int blockY = MathHelper.floor(y);
         int blockZ = MathHelper.floor(z);
-        if(RailBlock.isRailBlockAt(world, blockX, blockY - 1, blockZ)) {
+        if(BlockRail.isRailBlockAt(world, blockX, blockY - 1, blockZ)) {
             blockY--;
         }
         final double maxSpeed = 0.4D;
         boolean didFurnacePush = false;
         final double d5 = 0.0078125D;
         Block block = world.getBlock(blockX, blockY, blockZ);
-        if(block instanceof RailBlock) {
-            RailBlock rail = (RailBlock) block;
+        if(block instanceof BlockRail) {
+            BlockRail rail = (BlockRail) block;
             Vec3 vec3d = getPos(x, y, z);
             y = blockY;
             boolean onPoweredPoweredRail = false;
@@ -519,14 +518,14 @@ public class MinecartEntity extends Entity implements Container {
         int blockX = MathHelper.floor(x);
         int blockY = MathHelper.floor(y);
         int blockZ = MathHelper.floor(z);
-        if(RailBlock.isRailBlockAt(world, blockX, blockY - 1, blockZ)) {
+        if(BlockRail.isRailBlockAt(world, blockX, blockY - 1, blockZ)) {
             blockY--;
         }
 
         Block block = world.getBlock(blockX, blockY, blockZ);
-        if (!(block instanceof RailBlock)) { return null; }
+        if (!(block instanceof BlockRail)) { return null; }
 
-        RailBlock rail = (RailBlock) block;
+        BlockRail rail = (BlockRail) block;
         int meta = world.getBlockMetadata(blockX, blockY, blockZ);
         if(rail.getIsPowered()) {
             meta &= 0b111;
@@ -560,13 +559,13 @@ public class MinecartEntity extends Entity implements Container {
         int blockY = MathHelper.floor(y);
         int blockZ = MathHelper.floor(z);
 
-        if(RailBlock.isRailBlockAt(world, blockX, blockY - 1, blockZ)) {
+        if(BlockRail.isRailBlockAt(world, blockX, blockY - 1, blockZ)) {
             blockY--;
         }
         Block block = world.getBlock(blockX, blockY, blockZ);
-        if (!(block instanceof RailBlock)) { return null; }
+        if (!(block instanceof BlockRail)) { return null; }
 
-        RailBlock rail = (RailBlock) block;
+        BlockRail rail = (BlockRail) block;
         RailDirection direction = rail.getRailDirection(world, blockX, blockY, blockZ);
 
         int[][] offsetMap = EXITS[direction.meta];
@@ -705,8 +704,8 @@ public class MinecartEntity extends Entity implements Container {
             case PASSENGER_CART:
                 if (!world.isClientSide && passenger == null && player.isSneaking() && player.getHeldObject() instanceof CarriedBlock) {
                     CarriedBlock carriedBlock = (CarriedBlock) player.getHeldObject();
-                    if (carriedBlock.entity instanceof ChestBlockEntity) {
-                        ChestBlockEntity chest = (ChestBlockEntity) carriedBlock.entity;
+                    if (carriedBlock.entity instanceof TileEntityChest) {
+                        TileEntityChest chest = (TileEntityChest) carriedBlock.entity;
                         this.type = CHEST_CART;
                         if (carriedBlock.blockId == Blocks.CHEST_PLANKS_OAK_PAINTED.id) {
                             this.typeMeta = carriedBlock.metadata & TYPE_MASK_COLOR | TYPE_MASK_PAINTED_CHEST;
@@ -731,7 +730,7 @@ public class MinecartEntity extends Entity implements Container {
             case CHEST_CART:
                 if(!world.isClientSide) {
                     if (player.isSneaking() && player.inventory.getCurrentItem() == null && player.getHeldObject() == null) {
-                        ChestBlockEntity blockEntity = new ChestBlockEntity();
+                        TileEntityChest blockEntity = new TileEntityChest();
                         for (int i = 0; i < this.getContainerSize(); i++) {
                             blockEntity.setItem(i, this.getItem(i));
                             this.setItem(i, null);
@@ -816,7 +815,7 @@ public class MinecartEntity extends Entity implements Container {
                 break;
         }
     }
-    // Inventory Stuff
+    // ContainerInventory Stuff
 
 
     @Override
diff --git a/src/main/java/net/minecraft/core/enums/MobCategory.java b/src/main/java/net/minecraft/core/enums/MobCategory.java
index 4ac9289a7..dcaa347ee 100644
--- a/src/main/java/net/minecraft/core/enums/MobCategory.java
+++ b/src/main/java/net/minecraft/core/enums/MobCategory.java
@@ -1,16 +1,16 @@
 package net.minecraft.core.enums;
 
 import net.minecraft.core.entity.Entity;
-import net.minecraft.core.entity.animal.Animal;
-import net.minecraft.core.entity.animal.WaterAnimal;
+import net.minecraft.core.entity.animal.MobAnimal;
+import net.minecraft.core.entity.animal.MobWaterAnimal;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.entity.monster.Enemy;
 
 public enum MobCategory {
 
 	monster("monster", 0, Enemy.class, 70, Material.air, false),
-    creature("creature", 1, Animal.class, 15, Material.air, true),
-    waterCreature("waterCreature", 2, WaterAnimal.class, 5, Material.water, true),
+    creature("creature", 1, MobAnimal.class, 15, Material.air, true),
+    waterCreature("waterCreature", 2, MobWaterAnimal.class, 5, Material.water, true),
     ambientCreature("ambient", 3, Entity.class, 2, Material.air, true);
 	
 	private final Class<?> baseClass;
diff --git a/src/main/java/net/minecraft/core/item/Item.java b/src/main/java/net/minecraft/core/item/Item.java
index 4dc0b3dd1..ad227b48c 100644
--- a/src/main/java/net/minecraft/core/item/Item.java
+++ b/src/main/java/net/minecraft/core/item/Item.java
@@ -5,7 +5,7 @@ import net.minecraft.core.achievement.stat.Stat;
 import net.minecraft.core.achievement.stat.StatItem;
 import net.minecraft.core.achievement.stat.StatList;
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.entity.ActivatorBlockEntity;
+import net.minecraft.core.block.entity.TileEntityActivator;
 import net.minecraft.core.data.tag.ITaggable;
 import net.minecraft.core.data.tag.Tag;
 import net.minecraft.core.entity.Entity;
@@ -162,7 +162,7 @@ public class Item implements ITaggable<Item>, IItemConvertible
         return false;
     }
 
-    public void onUseByActivator(ItemStack itemStack, ActivatorBlockEntity activatorBlock, World world, Random random, int blockX, int blockY, int blockZ, double offX, double offY, double offZ, Direction direction) {
+    public void onUseByActivator(ItemStack itemStack, TileEntityActivator activatorBlock, World world, Random random, int blockX, int blockY, int blockZ, double offX, double offY, double offZ, Direction direction) {
     }
 
     public float getStrVsBlock(ItemStack itemstack, Block block)
diff --git a/src/main/java/net/minecraft/core/item/ArmorItem.java b/src/main/java/net/minecraft/core/item/ItemArmor.java
similarity index 81%
rename from src/main/java/net/minecraft/core/item/ArmorItem.java
rename to src/main/java/net/minecraft/core/item/ItemArmor.java
index 7f86ad5b6..d7305ec5a 100644
--- a/src/main/java/net/minecraft/core/item/ArmorItem.java
+++ b/src/main/java/net/minecraft/core/item/ItemArmor.java
@@ -2,10 +2,10 @@ package net.minecraft.core.item;
 
 import net.minecraft.core.item.material.ArmorMaterial;
 
-public class ArmorItem extends Item implements IArmorItem {
+public class ItemArmor extends Item implements IArmorItem {
 	private final ArmorMaterial material;
 	private final int armorPiece;
-	public ArmorItem(String name, String namespaceId, int id, ArmorMaterial material, int armorPiece) {
+	public ItemArmor(String name, String namespaceId, int id, ArmorMaterial material, int armorPiece) {
 		super(name, namespaceId, id);
 		this.material = material;
 		this.armorPiece = armorPiece;
diff --git a/src/main/java/net/minecraft/core/item/BedItem.java b/src/main/java/net/minecraft/core/item/ItemBed.java
similarity index 89%
rename from src/main/java/net/minecraft/core/item/BedItem.java
rename to src/main/java/net/minecraft/core/item/ItemBed.java
index 910657533..96e074e6e 100644
--- a/src/main/java/net/minecraft/core/item/BedItem.java
+++ b/src/main/java/net/minecraft/core/item/ItemBed.java
@@ -1,10 +1,10 @@
 package net.minecraft.core.item;
 
-import net.minecraft.core.block.BedBlock;
+import net.minecraft.core.block.BlockBed;
 import net.minecraft.core.block.Blocks;
 
 // Referenced classes of package net.minecraft.src:
-//            Item, Block, BedBlock, Player,
+//            Item, Block, BlockBed, Player,
 //            MathHelper, World, ItemStack
 
 import net.minecraft.core.entity.player.Player;
@@ -12,10 +12,10 @@ import net.minecraft.core.enums.EnumBlockSoundEffectType;
 import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.world.World;
 
-public class BedItem extends Item
+public class ItemBed extends Item
 {
 
-    public BedItem(String name, String namespaceId, int id)
+    public ItemBed(String name, String namespaceId, int id)
     {
         super(name, namespaceId, id);
     }
@@ -28,7 +28,7 @@ public class BedItem extends Item
     		blockY += side.getOffsetY();
     		blockZ += side.getOffsetZ();
     	}
-        BedBlock blockbed = (BedBlock) Blocks.BED;
+        BlockBed blockbed = (BlockBed) Blocks.BED;
         int i1 = entityplayer.getHorizontalPlacementDirection(null).getOpposite().getHorizontalIndex();
         byte byte0 = 0;
         byte byte1 = 0;
diff --git a/src/main/java/net/minecraft/core/item/BoatItem.java b/src/main/java/net/minecraft/core/item/ItemBoat.java
similarity index 88%
rename from src/main/java/net/minecraft/core/item/BoatItem.java
rename to src/main/java/net/minecraft/core/item/ItemBoat.java
index a90562476..3e07eeeb2 100644
--- a/src/main/java/net/minecraft/core/item/BoatItem.java
+++ b/src/main/java/net/minecraft/core/item/ItemBoat.java
@@ -6,7 +6,7 @@ package net.minecraft.core.item;
 //            World, MovingObjectPosition, EnumMovingObjectType, Block, 
 //            BoatEntity, ItemStack
 
-import net.minecraft.core.block.entity.ActivatorBlockEntity;
+import net.minecraft.core.block.entity.TileEntityActivator;
 import net.minecraft.core.entity.vehicle.BoatEntity;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.block.Blocks;
@@ -18,10 +18,10 @@ import net.minecraft.core.world.World;
 
 import java.util.Random;
 
-public class BoatItem extends Item
+public class ItemBoat extends Item
 {
 
-    public BoatItem(String name, String namespaceId, int id)
+    public ItemBoat(String name, String namespaceId, int id)
     {
         super(name, namespaceId, id);
         maxStackSize = 1;
@@ -71,7 +71,7 @@ public class BoatItem extends Item
     }
 
     @Override
-    public void onUseByActivator(ItemStack itemStack, ActivatorBlockEntity activatorBlock, World world, Random random, int blockX, int blockY, int blockZ, double offX, double offY, double offZ, Direction direction) {
+    public void onUseByActivator(ItemStack itemStack, TileEntityActivator activatorBlock, World world, Random random, int blockX, int blockY, int blockZ, double offX, double offY, double offZ, Direction direction) {
         double x = blockX + offX + direction.getOffsetX();
         double y = blockY + offY + direction.getOffsetY();
         double z = blockZ + offZ + direction.getOffsetZ();
diff --git a/src/main/java/net/minecraft/core/item/BowItem.java b/src/main/java/net/minecraft/core/item/ItemBow.java
similarity index 77%
rename from src/main/java/net/minecraft/core/item/BowItem.java
rename to src/main/java/net/minecraft/core/item/ItemBow.java
index 317f63c33..426616de3 100644
--- a/src/main/java/net/minecraft/core/item/BowItem.java
+++ b/src/main/java/net/minecraft/core/item/ItemBow.java
@@ -3,18 +3,18 @@ package net.minecraft.core.item;
 
 // Referenced classes of package net.minecraft.src:
 //            Item, Player, InventoryPlayer, World,
-//            ArrowProjectile, ItemStack
+//            ProjectileArrow, ItemStack
 
-import net.minecraft.core.entity.projectile.ArrowProjectile;
-import net.minecraft.core.entity.projectile.GoldenArrowProjectile;
-import net.minecraft.core.entity.projectile.PurpleArrowProjectile;
+import net.minecraft.core.entity.projectile.ProjectileArrow;
+import net.minecraft.core.entity.projectile.ProjectileArrowGolden;
+import net.minecraft.core.entity.projectile.ProjectileArrowPurple;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.world.World;
 
-public class BowItem extends Item
+public class ItemBow extends Item
 {
 
-    public BowItem(String name, String namespaceId, int id)
+    public ItemBow(String name, String namespaceId, int id)
     {
         super(name, namespaceId, id);
         maxStackSize = 1;
@@ -30,14 +30,14 @@ public class BowItem extends Item
             itemstack.damageItem(1, entityplayer);
             world.playSoundAtEntity(entityplayer, entityplayer, "random.bow", 0.3f, 1.0F / (itemRand.nextFloat() * 0.4F + 0.8F));
             if (!world.isClientSide) {
-                world.entityJoinedWorld(new ArrowProjectile(world, entityplayer, true, 0));
+                world.entityJoinedWorld(new ProjectileArrow(world, entityplayer, true, 0));
             }
         }
         else if(quiverSlot != null && quiverSlot.itemID == Items.ARMOR_QUIVER_GOLD.id){
             itemstack.damageItem(1, entityplayer);
             world.playSoundAtEntity(entityplayer, entityplayer, "random.bow", 0.3f, 1.0F / (itemRand.nextFloat() * 0.4F + 0.8F));
             if (!world.isClientSide) {
-                world.entityJoinedWorld(new PurpleArrowProjectile(world, entityplayer, false));
+                world.entityJoinedWorld(new ProjectileArrowPurple(world, entityplayer, false));
             }
         }
         else if (entityplayer.inventory.consumeInventoryItem(Items.AMMO_ARROW_GOLD.id))
@@ -46,7 +46,7 @@ public class BowItem extends Item
             world.playSoundAtEntity(entityplayer, entityplayer, "random.bow", 0.3f, 1.0F / (itemRand.nextFloat() * 0.4F + 0.8F));
             if(!world.isClientSide)
             {
-                world.entityJoinedWorld(new GoldenArrowProjectile(world, entityplayer, true));
+                world.entityJoinedWorld(new ProjectileArrowGolden(world, entityplayer, true));
             }
         }
         else if(entityplayer.inventory.consumeInventoryItem(Items.AMMO_ARROW.id))
@@ -55,7 +55,7 @@ public class BowItem extends Item
             world.playSoundAtEntity(entityplayer, entityplayer, "random.bow", 0.3f, 1.0F / (itemRand.nextFloat() * 0.4F + 0.8F));
             if(!world.isClientSide)
             {
-                world.entityJoinedWorld(new ArrowProjectile(world, entityplayer, true, 0));
+                world.entityJoinedWorld(new ProjectileArrow(world, entityplayer, true, 0));
             }
         }
         return itemstack;
diff --git a/src/main/java/net/minecraft/core/item/BucketItem.java b/src/main/java/net/minecraft/core/item/ItemBucket.java
similarity index 85%
rename from src/main/java/net/minecraft/core/item/BucketItem.java
rename to src/main/java/net/minecraft/core/item/ItemBucket.java
index 5f9259cba..41df2a94a 100644
--- a/src/main/java/net/minecraft/core/item/BucketItem.java
+++ b/src/main/java/net/minecraft/core/item/ItemBucket.java
@@ -3,9 +3,9 @@ package net.minecraft.core.item;
 // Referenced classes of package net.minecraft.src:
 //            Item, Player, Vec3D, MathHelper,
 //            World, MovingObjectPosition, EnumMovingObjectType, Material, 
-//            ItemStack, WorldProvider, Block, CowMob
+//            ItemStack, WorldProvider, Block, MobCow
 
-import net.minecraft.core.block.entity.ActivatorBlockEntity;
+import net.minecraft.core.block.entity.TileEntityActivator;
 import net.minecraft.core.util.helper.Direction;
 import net.minecraft.core.util.phys.HitResult;
 import net.minecraft.core.block.Block;
@@ -14,19 +14,16 @@ import net.minecraft.core.block.tag.BlockTags;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.sound.SoundCategory;
-import net.minecraft.core.util.helper.MathHelper;
 import net.minecraft.core.util.helper.Side;
-import net.minecraft.core.util.phys.Vec3;
 import net.minecraft.core.world.Dimension;
 import net.minecraft.core.world.World;
-import net.minecraft.server.entity.player.ServerPlayer;
 
 import java.util.Random;
 
-public class BucketItem extends Item
+public class ItemBucket extends Item
 {
 	private final int idToPlace;
-    public BucketItem(String name, String namespaceId, int id, Block blockToPlace)
+    public ItemBucket(String name, String namespaceId, int id, Block blockToPlace)
     {
         super(name, namespaceId, id);
         maxStackSize = 1;
@@ -100,7 +97,7 @@ public class BucketItem extends Item
 	}
 
 	@Override
-	public void onUseByActivator(ItemStack itemStack, ActivatorBlockEntity activatorBlock, World world, Random random, int blockX, int blockY, int blockZ, double offX, double offY, double offZ, Direction direction) {
+	public void onUseByActivator(ItemStack itemStack, TileEntityActivator activatorBlock, World world, Random random, int blockX, int blockY, int blockZ, double offX, double offY, double offZ, Direction direction) {
 		if (idToPlace < 0) {
 			itemStack.itemID = Items.BUCKET.id;
 			return;
diff --git a/src/main/java/net/minecraft/core/item/EmptyBucketItem.java b/src/main/java/net/minecraft/core/item/ItemBucketEmpty.java
similarity index 84%
rename from src/main/java/net/minecraft/core/item/EmptyBucketItem.java
rename to src/main/java/net/minecraft/core/item/ItemBucketEmpty.java
index 9c089e522..4137912be 100644
--- a/src/main/java/net/minecraft/core/item/EmptyBucketItem.java
+++ b/src/main/java/net/minecraft/core/item/ItemBucketEmpty.java
@@ -3,13 +3,11 @@ package net.minecraft.core.item;
 // Referenced classes of package net.minecraft.src:
 //            Item, Player, Vec3D, MathHelper,
 //            World, MovingObjectPosition, EnumMovingObjectType, Material,
-//            ItemStack, WorldProvider, Block, CowMob
+//            ItemStack, WorldProvider, Block, MobCow
 
-import net.minecraft.core.block.Block;
-import net.minecraft.core.block.entity.ActivatorBlockEntity;
+import net.minecraft.core.block.entity.TileEntityActivator;
 import net.minecraft.core.entity.Entity;
-import net.minecraft.core.entity.animal.CowMob;
-import net.minecraft.core.entity.animal.SheepMob;
+import net.minecraft.core.entity.animal.MobCow;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.util.helper.Direction;
 import net.minecraft.core.util.phys.AABB;
@@ -20,10 +18,10 @@ import net.minecraft.core.block.material.Material;
 import java.util.List;
 import java.util.Random;
 
-public class EmptyBucketItem extends Item
+public class ItemBucketEmpty extends Item
 {
 
-    public EmptyBucketItem(String name, String namespaceId, int id)
+    public ItemBucketEmpty(String name, String namespaceId, int id)
     {
         super(name, namespaceId, id);
         maxStackSize = 64;
@@ -68,7 +66,7 @@ public class EmptyBucketItem extends Item
     }
 
     @Override
-    public void onUseByActivator(ItemStack itemStack, ActivatorBlockEntity activatorBlock, World world, Random random, int blockX, int blockY, int blockZ, double offX, double offY, double offZ, Direction direction) {
+    public void onUseByActivator(ItemStack itemStack, TileEntityActivator activatorBlock, World world, Random random, int blockX, int blockY, int blockZ, double offX, double offY, double offZ, Direction direction) {
         if (itemStack.stackSize > 1) { // TODO figure out wtf to do for stacked buckets for this
             return;
         }
@@ -89,7 +87,7 @@ public class EmptyBucketItem extends Item
         }
 
         AABB box = AABB.getTemporaryBB(x, y, z, x + 1, y + 1, z + 1);
-        List<Entity> entities = world.getEntitiesWithinAABB(CowMob.class, box);
+        List<Entity> entities = world.getEntitiesWithinAABB(MobCow.class, box);
         if (!entities.isEmpty()) {
             itemStack.itemID = Items.BUCKET_MILK.id;
             return;
diff --git a/src/main/java/net/minecraft/core/item/IceCreamBucketItem.java b/src/main/java/net/minecraft/core/item/ItemBucketIceCream.java
similarity index 84%
rename from src/main/java/net/minecraft/core/item/IceCreamBucketItem.java
rename to src/main/java/net/minecraft/core/item/ItemBucketIceCream.java
index 5bf631975..c4bfbf4a7 100644
--- a/src/main/java/net/minecraft/core/item/IceCreamBucketItem.java
+++ b/src/main/java/net/minecraft/core/item/ItemBucketIceCream.java
@@ -3,9 +3,9 @@ package net.minecraft.core.item;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.world.World;
 
-public class IceCreamBucketItem extends FoodItem {
+public class ItemBucketIceCream extends ItemFood {
 
-    public IceCreamBucketItem(String name, String namespaceId, int id, int healAmount, int ticksPerHeal)
+    public ItemBucketIceCream(String name, String namespaceId, int id, int healAmount, int ticksPerHeal)
     {
         super(name, namespaceId, id, healAmount, ticksPerHeal, false, 1);
         maxStackSize = 1;
diff --git a/src/main/java/net/minecraft/core/item/CoalItem.java b/src/main/java/net/minecraft/core/item/ItemCoal.java
similarity index 82%
rename from src/main/java/net/minecraft/core/item/CoalItem.java
rename to src/main/java/net/minecraft/core/item/ItemCoal.java
index 02a9136fe..0552046d0 100644
--- a/src/main/java/net/minecraft/core/item/CoalItem.java
+++ b/src/main/java/net/minecraft/core/item/ItemCoal.java
@@ -4,10 +4,10 @@ package net.minecraft.core.item;
 // Referenced classes of package net.minecraft.src:
 //            Item, ItemStack
 
-public class CoalItem extends Item
+public class ItemCoal extends Item
 {
 
-    public CoalItem(String name, String namespaceId, int id)
+    public ItemCoal(String name, String namespaceId, int id)
     {
         super(name, namespaceId, id);
         setHasSubtypes(true);
diff --git a/src/main/java/net/minecraft/core/item/MusicDiscItem.java b/src/main/java/net/minecraft/core/item/ItemDiscMusic.java
similarity index 72%
rename from src/main/java/net/minecraft/core/item/MusicDiscItem.java
rename to src/main/java/net/minecraft/core/item/ItemDiscMusic.java
index 16588bba0..2b8ae53dc 100644
--- a/src/main/java/net/minecraft/core/item/MusicDiscItem.java
+++ b/src/main/java/net/minecraft/core/item/ItemDiscMusic.java
@@ -2,13 +2,11 @@ package net.minecraft.core.item;
 
 
 // Referenced classes of package net.minecraft.src:
-//            Item, World, Block, JukeboxBlock,
+//            Item, World, Block, BlockJukebox,
 //            ItemStack, Player
 
-import net.minecraft.core.block.Block;
-import net.minecraft.core.block.JukeboxBlock;
-import net.minecraft.core.block.entity.ActivatorBlockEntity;
-import net.minecraft.core.block.tag.BlockTags;
+import net.minecraft.core.block.BlockJukebox;
+import net.minecraft.core.block.entity.TileEntityActivator;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.util.helper.Direction;
 import net.minecraft.core.util.helper.Side;
@@ -18,13 +16,13 @@ import net.minecraft.core.world.World;
 
 import java.util.Random;
 
-public class MusicDiscItem extends Item
+public class ItemDiscMusic extends Item
 {
     public final String recordName;
     public final String recordAuthor;
 
 
-    public MusicDiscItem(String name, String namespaceId, int id, String recordName, String recordAuthor)
+    public ItemDiscMusic(String name, String namespaceId, int id, String recordName, String recordAuthor)
     {
         super(name, namespaceId, id);
         this.recordName = recordName;
@@ -38,7 +36,7 @@ public class MusicDiscItem extends Item
         if(world.getBlockId(blockX, blockY, blockZ) == Blocks.JUKEBOX.id && world.getBlockMetadata(blockX, blockY, blockZ) == 0)
         {
             if (!world.isClientSide) {
-                ((JukeboxBlock) Blocks.JUKEBOX).playRecord(world, blockX, blockY, blockZ, id);
+                ((BlockJukebox) Blocks.JUKEBOX).playRecord(world, blockX, blockY, blockZ, id);
                 world.playBlockEvent(null, LevelListener.EVENT_JUKEBOX_TOGGLE, blockX, blockY, blockZ, id);
                 itemstack.consumeItem(entityplayer);
             }
@@ -50,13 +48,13 @@ public class MusicDiscItem extends Item
     }
 
     @Override
-    public void onUseByActivator(ItemStack itemStack, ActivatorBlockEntity activatorBlock, World world, Random random, int blockX, int blockY, int blockZ, double offX, double offY, double offZ, Direction direction) {
+    public void onUseByActivator(ItemStack itemStack, TileEntityActivator activatorBlock, World world, Random random, int blockX, int blockY, int blockZ, double offX, double offY, double offZ, Direction direction) {
         int x = blockX + direction.getOffsetX();
         int y = blockY + direction.getOffsetY();
         int z = blockZ + direction.getOffsetZ();
         int b = world.getBlockId(x, y, z);
         if (b == Blocks.JUKEBOX.id && world.getBlockMetadata(x, y, z) == 0) {
-            ((JukeboxBlock) Blocks.JUKEBOX).playRecord(world, x, y, z, id);
+            ((BlockJukebox) Blocks.JUKEBOX).playRecord(world, x, y, z, id);
             world.playBlockEvent(null, LevelListener.EVENT_JUKEBOX_TOGGLE, blockX, blockY, blockZ, id);
             itemStack.consumeItem(null);
         }
diff --git a/src/main/java/net/minecraft/core/item/DoorItem.java b/src/main/java/net/minecraft/core/item/ItemDoor.java
similarity index 92%
rename from src/main/java/net/minecraft/core/item/DoorItem.java
rename to src/main/java/net/minecraft/core/item/ItemDoor.java
index 0bddb3b68..e8e8f2ade 100644
--- a/src/main/java/net/minecraft/core/item/DoorItem.java
+++ b/src/main/java/net/minecraft/core/item/ItemDoor.java
@@ -1,8 +1,7 @@
 package net.minecraft.core.item;
 
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.entity.ActivatorBlockEntity;
-import net.minecraft.core.block.material.Material;
+import net.minecraft.core.block.entity.TileEntityActivator;
 
 // Referenced classes of package net.minecraft.src:
 //            Item, Material, Block, Player,
@@ -16,11 +15,11 @@ import net.minecraft.core.world.World;
 
 import java.util.Random;
 
-public class DoorItem extends Item {
+public class ItemDoor extends Item {
 	protected final Block doorBlockBottom;
 	protected final Block doorBlockTop;
 
-	public DoorItem(String name, String namespaceId, int id, Block doorBlockBottom, Block doorBlockTop) {
+	public ItemDoor(String name, String namespaceId, int id, Block doorBlockBottom, Block doorBlockTop) {
 		super(name, namespaceId, id);
 		maxStackSize = 64;
         this.doorBlockBottom = doorBlockBottom;
@@ -75,7 +74,7 @@ public class DoorItem extends Item {
 	}
 
 	@Override
-	public void onUseByActivator(ItemStack itemStack, ActivatorBlockEntity activatorBlock, World world, Random random, int blockX, int blockY, int blockZ, double offX, double offY, double offZ, Direction direction) {
+	public void onUseByActivator(ItemStack itemStack, TileEntityActivator activatorBlock, World world, Random random, int blockX, int blockY, int blockZ, double offX, double offY, double offZ, Direction direction) {
 		if(!world.canPlaceInsideBlock(blockX, blockY, blockZ)) {
 			blockX += direction.getOffsetX();
 			blockY += direction.getOffsetY();
diff --git a/src/main/java/net/minecraft/core/item/PaintedDoorItem.java b/src/main/java/net/minecraft/core/item/ItemDoorPainted.java
similarity index 96%
rename from src/main/java/net/minecraft/core/item/PaintedDoorItem.java
rename to src/main/java/net/minecraft/core/item/ItemDoorPainted.java
index ae0a7e395..79afeb75b 100644
--- a/src/main/java/net/minecraft/core/item/PaintedDoorItem.java
+++ b/src/main/java/net/minecraft/core/item/ItemDoorPainted.java
@@ -8,8 +8,8 @@ import net.minecraft.core.util.helper.DyeColor;
 import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.world.World;
 
-public class PaintedDoorItem extends DoorItem {
-    public PaintedDoorItem(String name, String namespaceId, int id, Block doorBottom, Block doorTopId) {
+public class ItemDoorPainted extends ItemDoor {
+    public ItemDoorPainted(String name, String namespaceId, int id, Block doorBottom, Block doorTopId) {
         super(name, namespaceId, id, doorBottom, doorTopId);
     }
     @Override
diff --git a/src/main/java/net/minecraft/core/item/DyeItem.java b/src/main/java/net/minecraft/core/item/ItemDye.java
similarity index 90%
rename from src/main/java/net/minecraft/core/item/DyeItem.java
rename to src/main/java/net/minecraft/core/item/ItemDye.java
index 7dcca1e28..e132b95b4 100644
--- a/src/main/java/net/minecraft/core/item/DyeItem.java
+++ b/src/main/java/net/minecraft/core/item/ItemDye.java
@@ -3,11 +3,11 @@ package net.minecraft.core.item;
 
 import net.minecraft.core.block.Block;
 import net.minecraft.core.block.Blocks;
-import net.minecraft.core.block.entity.ActivatorBlockEntity;
-import net.minecraft.core.block.entity.SignBlockEntity;
+import net.minecraft.core.block.entity.TileEntityActivator;
+import net.minecraft.core.block.entity.TileEntitySign;
 import net.minecraft.core.block.tag.BlockTags;
 import net.minecraft.core.entity.Mob;
-import net.minecraft.core.entity.animal.SheepMob;
+import net.minecraft.core.entity.animal.MobSheep;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.net.command.TextFormatting;
 import net.minecraft.core.util.helper.Direction;
@@ -21,10 +21,10 @@ import org.jetbrains.annotations.Nullable;
 
 import java.util.Random;
 
-public class DyeItem extends Item
+public class ItemDye extends Item
 {
 
-    public DyeItem(String name, String namespaceId, int id)
+    public ItemDye(String name, String namespaceId, int id)
     {
         super(name, namespaceId, id);
         setHasSubtypes(true);
@@ -42,7 +42,7 @@ public class DyeItem extends Item
     {
         if (world.getBlockId(blockX, blockY, blockZ) == Blocks.SIGN_POST_PLANKS_OAK.id || world.getBlockId(blockX, blockY, blockZ) == Blocks.SIGN_WALL_PLANKS_OAK.id)
         {
-            SignBlockEntity sign = (SignBlockEntity) world.getBlockEntity(blockX, blockY, blockZ);
+            TileEntitySign sign = (TileEntitySign) world.getBlockEntity(blockX, blockY, blockZ);
             if ((DyeColor.WHITE.itemMeta - itemstack.getMetadata()) != sign.getColor().id)
             {
                 sign.setColor(TextFormatting.get(DyeColor.WHITE.itemMeta - itemstack.getMetadata()));
@@ -160,20 +160,20 @@ label0:
     }
 
     @Override
-    public void onUseByActivator(ItemStack itemStack, ActivatorBlockEntity activatorBlock, World world, Random random, int blockX, int blockY, int blockZ, double offX, double offY, double offZ, Direction direction) {
+    public void onUseByActivator(ItemStack itemStack, TileEntityActivator activatorBlock, World world, Random random, int blockX, int blockY, int blockZ, double offX, double offY, double offZ, Direction direction) {
         onUseItemOnBlock(itemStack, null, world, blockX + direction.getOffsetX(), blockY + direction.getOffsetY(), blockZ + direction.getOffsetZ(), direction.getSide(), 0.5, 0.5);
     }
 
     @Override
     public boolean useItemOnEntity(ItemStack itemstack, Mob mob, Player entityPlayer)
     {
-        if(mob instanceof SheepMob)
+        if(mob instanceof MobSheep)
         {
-            SheepMob sheepMob = (SheepMob)mob;
+            MobSheep mobSheep = (MobSheep)mob;
             DyeColor woolColor = DyeColor.colorFromItemMeta(itemstack.getMetadata());
-            if(sheepMob.getFleeceColor() != woolColor && itemstack.consumeItem(entityPlayer))
+            if(mobSheep.getFleeceColor() != woolColor && itemstack.consumeItem(entityPlayer))
             {
-                sheepMob.setFleeceColor(woolColor);
+                mobSheep.setFleeceColor(woolColor);
                 return true;
             }
         }
diff --git a/src/main/java/net/minecraft/core/item/EggItem.java b/src/main/java/net/minecraft/core/item/ItemEgg.java
similarity index 56%
rename from src/main/java/net/minecraft/core/item/EggItem.java
rename to src/main/java/net/minecraft/core/item/ItemEgg.java
index 279118092..f7be14b2c 100644
--- a/src/main/java/net/minecraft/core/item/EggItem.java
+++ b/src/main/java/net/minecraft/core/item/ItemEgg.java
@@ -1,22 +1,22 @@
 package net.minecraft.core.item;
 
 // Referenced classes of package net.minecraft.src:
-//            Item, ItemStack, World, EggProjectile,
+//            Item, ItemStack, World, ProjectileEgg,
 //            Player
 
-import net.minecraft.core.block.entity.ActivatorBlockEntity;
-import net.minecraft.core.entity.projectile.EggProjectile;
+import net.minecraft.core.block.entity.TileEntityActivator;
+import net.minecraft.core.entity.projectile.ProjectileEgg;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.util.helper.Direction;
 import net.minecraft.core.world.World;
 
 import java.util.Random;
 
-public class EggItem
+public class ItemEgg
     extends Item implements IDispensable
 {
 
-    public EggItem(String name, String namespaceId, int id)
+    public ItemEgg(String name, String namespaceId, int id)
     {
         super(name, namespaceId, id);
         maxStackSize = 16;
@@ -29,23 +29,23 @@ public class EggItem
         world.playSoundAtEntity(entityplayer, entityplayer, "random.bow", 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F));
         if(!world.isClientSide)
         {
-            world.entityJoinedWorld(new EggProjectile(world, entityplayer));
+            world.entityJoinedWorld(new ProjectileEgg(world, entityplayer));
         }
         return itemstack;
     }
 
     @Override
-    public void onUseByActivator(ItemStack itemStack, ActivatorBlockEntity activatorBlock, World world, Random random, int blockX, int blockY, int blockZ, double offX, double offY, double offZ, Direction direction) {
-        EggProjectile eggProjectile = new EggProjectile(world, blockX + offX, blockY + offY, blockZ + offZ);
-        eggProjectile.setHeading(direction.getOffsetX() * 0.6, direction.getOffsetY() == 0 ? 0.1 : direction.getOffsetY() * 0.6, direction.getOffsetZ() * 0.6f, 1.1F, 6F);
-        world.entityJoinedWorld(eggProjectile);
+    public void onUseByActivator(ItemStack itemStack, TileEntityActivator activatorBlock, World world, Random random, int blockX, int blockY, int blockZ, double offX, double offY, double offZ, Direction direction) {
+        ProjectileEgg projectileEgg = new ProjectileEgg(world, blockX + offX, blockY + offY, blockZ + offZ);
+        projectileEgg.setHeading(direction.getOffsetX() * 0.6, direction.getOffsetY() == 0 ? 0.1 : direction.getOffsetY() * 0.6, direction.getOffsetZ() * 0.6f, 1.1F, 6F);
+        world.entityJoinedWorld(projectileEgg);
         itemStack.stackSize -= 1;
     }
 
     @Override
     public void onDispensed(ItemStack itemStack, World world, double x, double y, double z, int xOffset, int yOffset, int zOffset, Random random) {
-        EggProjectile eggProjectile = new EggProjectile(world, x, y, z);
-        eggProjectile.setHeading(xOffset, yOffset + 0.1D, zOffset, 1.1F, 6F);
-        world.entityJoinedWorld(eggProjectile);
+        ProjectileEgg projectileEgg = new ProjectileEgg(world, x, y, z);
+        projectileEgg.setHeading(xOffset, yOffset + 0.1D, zOffset, 1.1F, 6F);
+        world.entityJoinedWorld(projectileEgg);
     }
 }
diff --git a/src/main/java/net/minecraft/core/item/FireStrikerItem.java b/src/main/java/net/minecraft/core/item/ItemFireStriker.java
similarity index 73%
rename from src/main/java/net/minecraft/core/item/FireStrikerItem.java
rename to src/main/java/net/minecraft/core/item/ItemFireStriker.java
index 9e18c7434..c43e40560 100644
--- a/src/main/java/net/minecraft/core/item/FireStrikerItem.java
+++ b/src/main/java/net/minecraft/core/item/ItemFireStriker.java
@@ -1,15 +1,14 @@
 package net.minecraft.core.item;
 
 // Referenced classes of package net.minecraft.src:
-//            Item, World, Block, FireBlock,
+//            Item, World, Block, BlockFire,
 //            ItemStack, Player
 
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.BrazierBlock;
-import net.minecraft.core.block.FluidBlock;
-import net.minecraft.core.block.TNTBlock;
-import net.minecraft.core.block.entity.ActivatorBlockEntity;
-import net.minecraft.core.block.tag.BlockTags;
+import net.minecraft.core.block.BlockBrazier;
+import net.minecraft.core.block.BlockFluid;
+import net.minecraft.core.block.BlockTNT;
+import net.minecraft.core.block.entity.TileEntityActivator;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.item.material.ToolMaterial;
 import net.minecraft.core.sound.SoundCategory;
@@ -20,10 +19,10 @@ import net.minecraft.core.world.World;
 
 import java.util.Random;
 
-public class FireStrikerItem extends Item
+public class ItemFireStriker extends Item
 {
 
-    public FireStrikerItem(String name, String namespaceId, int id)
+    public ItemFireStriker(String name, String namespaceId, int id)
     {
         super(name, namespaceId, id);
         maxStackSize = 1;
@@ -50,24 +49,24 @@ public class FireStrikerItem extends Item
     }
 
     @Override
-    public void onUseByActivator(ItemStack itemStack, ActivatorBlockEntity activatorBlock, World world, Random random, int blockX, int blockY, int blockZ, double offX, double offY, double offZ, Direction direction) {
+    public void onUseByActivator(ItemStack itemStack, TileEntityActivator activatorBlock, World world, Random random, int blockX, int blockY, int blockZ, double offX, double offY, double offZ, Direction direction) {
         if (!onUseItemOnBlock(itemStack, null, world, blockX, blockY, blockZ, direction.getSide(), 0.5, 0.5)) {
             blockX += direction.getOffsetX();
             blockY += direction.getOffsetY();
             blockZ += direction.getOffsetZ();
             Block b = world.getBlock(blockX, blockY, blockZ);
-            if (b instanceof BrazierBlock && !((BrazierBlock)b).isBurning()) {
-                if (world.getBlock(blockX + 1,  blockY, blockZ) instanceof FluidBlock ||
-                    world.getBlock(blockX - 1,  blockY, blockZ) instanceof FluidBlock ||
-                    world.getBlock(blockX,      blockY, blockZ + 1) instanceof FluidBlock ||
-                    world.getBlock(blockX,      blockY, blockZ - 1) instanceof FluidBlock) {
+            if (b instanceof BlockBrazier && !((BlockBrazier)b).isBurning()) {
+                if (world.getBlock(blockX + 1,  blockY, blockZ) instanceof BlockFluid ||
+                    world.getBlock(blockX - 1,  blockY, blockZ) instanceof BlockFluid ||
+                    world.getBlock(blockX,      blockY, blockZ + 1) instanceof BlockFluid ||
+                    world.getBlock(blockX,      blockY, blockZ - 1) instanceof BlockFluid) {
                     return;
                 }
                 world.setBlockAndMetadataWithNotify(blockX, blockY, blockZ, Blocks.BRAZIER_ACTIVE.id, 0);
                 itemStack.damageItem(1, null);
                 world.playSoundEffect(null, SoundCategory.WORLD_SOUNDS, (double) blockX + 0.5D, (double) blockY + 0.5D, (double) blockZ + 0.5D, "fire.ignite", 1.0F, world.rand.nextFloat() * 0.4F + 0.8F);
-            } else if (b instanceof TNTBlock) {
-                ((TNTBlock)b).ignite(world, blockX, blockY, blockZ, true);
+            } else if (b instanceof BlockTNT) {
+                ((BlockTNT)b).ignite(world, blockX, blockY, blockZ, true);
             }
         }
     }
diff --git a/src/main/java/net/minecraft/core/item/FishingRodItem.java b/src/main/java/net/minecraft/core/item/ItemFishingRod.java
similarity index 81%
rename from src/main/java/net/minecraft/core/item/FishingRodItem.java
rename to src/main/java/net/minecraft/core/item/ItemFishingRod.java
index da9b28e1f..d03d623b6 100644
--- a/src/main/java/net/minecraft/core/item/FishingRodItem.java
+++ b/src/main/java/net/minecraft/core/item/ItemFishingRod.java
@@ -4,14 +4,14 @@ package net.minecraft.core.item;
 //            Item, Player, EntityFish, ItemStack,
 //            World
 
-import net.minecraft.core.entity.FishingBobberEntity;
+import net.minecraft.core.entity.EntityFishingBobber;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.world.World;
 
-public class FishingRodItem extends Item
+public class ItemFishingRod extends Item
 {
 
-    public FishingRodItem(String name, String namespaceId, int id)
+    public ItemFishingRod(String name, String namespaceId, int id)
     {
         super(name, namespaceId, id);
         setMaxDamage(196);
@@ -30,7 +30,7 @@ public class FishingRodItem extends Item
             world.playSoundAtEntity(entityplayer, entityplayer, "random.bow", 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F));
             if(!world.isClientSide)
             {
-                world.entityJoinedWorld(new FishingBobberEntity(world, entityplayer));
+                world.entityJoinedWorld(new EntityFishingBobber(world, entityplayer));
             }
         }
         entityplayer.swingItem();
diff --git a/src/main/java/net/minecraft/core/item/FlagItem.java b/src/main/java/net/minecraft/core/item/ItemFlag.java
similarity index 86%
rename from src/main/java/net/minecraft/core/item/FlagItem.java
rename to src/main/java/net/minecraft/core/item/ItemFlag.java
index 07d1586d6..50ee6e1bb 100644
--- a/src/main/java/net/minecraft/core/item/FlagItem.java
+++ b/src/main/java/net/minecraft/core/item/ItemFlag.java
@@ -4,7 +4,7 @@ import com.mojang.nbt.CompoundTag;
 import com.mojang.nbt.ListTag;
 
 import net.minecraft.core.block.Blocks;
-import net.minecraft.core.block.entity.FlagBlockEntity;
+import net.minecraft.core.block.entity.TileEntityFlag;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.enums.EnumBlockSoundEffectType;
 import net.minecraft.core.lang.I18n;
@@ -12,9 +12,9 @@ import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.util.helper.UUIDHelper;
 import net.minecraft.core.world.World;
 
-public class FlagItem extends Item
+public class ItemFlag extends Item
 {
-    public FlagItem(String name, String namespaceId, int id)
+    public ItemFlag(String name, String namespaceId, int id)
     {
         super(name, namespaceId, id);
         setMaxStackSize(1);
@@ -33,7 +33,7 @@ public class FlagItem extends Item
     {
         // copy flag data to empty flag
 		if (world.getBlockId(blockX, blockY, blockZ) == Blocks.FLAG.id && !entityplayer.isSneaking()) {
-			FlagBlockEntity flag = (FlagBlockEntity) world.getBlockEntity(blockX, blockY, blockZ);
+			TileEntityFlag flag = (TileEntityFlag) world.getBlockEntity(blockX, blockY, blockZ);
 			if (flag != null) {
 				CompoundTag flagData = stack.getData().getCompoundOrDefault("FlagData", new CompoundTag());
 				if (hasFlagBeenDrawnOn(stack) && doesFlagContainDyes(stack)) {
@@ -74,18 +74,18 @@ public class FlagItem extends Item
         world.setBlockAndMetadataWithNotify(blockX, blockY, blockZ, Blocks.FLAG.id, 0);
         
         stack.consumeItem(entityplayer);
-        FlagBlockEntity flagBlockEntity = (FlagBlockEntity) world.getBlockEntity(blockX, blockY, blockZ);
-        if(flagBlockEntity != null)
+        TileEntityFlag tileEntityFlag = (TileEntityFlag) world.getBlockEntity(blockX, blockY, blockZ);
+        if(tileEntityFlag != null)
         {
             CompoundTag flagData = stack.getData().getCompoundOrDefault("FlagData", null);
             if (flagData != null)
             {
-                flagBlockEntity.readFlagNBT(flagData);
+                tileEntityFlag.readFlagNBT(flagData);
             }
 
-            if (!world.isClientSide && flagBlockEntity.owner == null)
+            if (!world.isClientSide && tileEntityFlag.owner == null)
             {
-                entityplayer.displayFlagEditorScreen(flagBlockEntity);
+                entityplayer.displayFlagEditorScreen(tileEntityFlag);
             }
         }
         return true;
diff --git a/src/main/java/net/minecraft/core/item/FoodItem.java b/src/main/java/net/minecraft/core/item/ItemFood.java
similarity index 93%
rename from src/main/java/net/minecraft/core/item/FoodItem.java
rename to src/main/java/net/minecraft/core/item/ItemFood.java
index b0ab4fe5c..7c655c4d7 100644
--- a/src/main/java/net/minecraft/core/item/FoodItem.java
+++ b/src/main/java/net/minecraft/core/item/ItemFood.java
@@ -3,13 +3,13 @@ package net.minecraft.core.item;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.world.World;
 
-public class FoodItem extends Item
+public class ItemFood extends Item
 {
     private final int healAmount;
     private final boolean isWolfsFavoriteMeat;
     private final int ticksPerHeal;
 
-    public FoodItem(String name, String namespaceId, int id, int healAmount, int ticksPerHeal, boolean favouriteWolfMeat, int maxStackSize)
+    public ItemFood(String name, String namespaceId, int id, int healAmount, int ticksPerHeal, boolean favouriteWolfMeat, int maxStackSize)
     {
         super(name, namespaceId, id);
         this.healAmount = healAmount;
diff --git a/src/main/java/net/minecraft/core/item/LoadedHandCannonItem.java b/src/main/java/net/minecraft/core/item/ItemHandCannonLoaded.java
similarity index 75%
rename from src/main/java/net/minecraft/core/item/LoadedHandCannonItem.java
rename to src/main/java/net/minecraft/core/item/ItemHandCannonLoaded.java
index 8a636b15c..d9b13c8ea 100644
--- a/src/main/java/net/minecraft/core/item/LoadedHandCannonItem.java
+++ b/src/main/java/net/minecraft/core/item/ItemHandCannonLoaded.java
@@ -2,16 +2,16 @@ package net.minecraft.core.item;
 
 // Referenced classes of package net.minecraft.src:
 //            Item, Player, InventoryPlayer, World,
-//            ArrowProjectile, ItemStack
+//            ProjectileArrow, ItemStack
 
 import net.minecraft.core.entity.player.Player;
-import net.minecraft.core.entity.projectile.CannonballProjectile;
+import net.minecraft.core.entity.projectile.ProjectileCannonball;
 import net.minecraft.core.world.World;
 
-public class LoadedHandCannonItem extends Item
+public class ItemHandCannonLoaded extends Item
 {
 
-    public LoadedHandCannonItem(String name, String namespaceId, int id)
+    public ItemHandCannonLoaded(String name, String namespaceId, int id)
     {
         super(name, namespaceId, id);
         setMaxDamage(100);
@@ -26,7 +26,7 @@ public class LoadedHandCannonItem extends Item
 		if(!world.isClientSide)
 		{
 			itemstack.damageItem(1, entityplayer);
-			world.entityJoinedWorld(new CannonballProjectile(world, entityplayer));
+			world.entityJoinedWorld(new ProjectileCannonball(world, entityplayer));
 			if(itemstack.stackSize <= 0) {
 				return null;
 			}
diff --git a/src/main/java/net/minecraft/core/item/UnloadedHandCannonItem.java b/src/main/java/net/minecraft/core/item/ItemHandCannonUnloaded.java
similarity index 84%
rename from src/main/java/net/minecraft/core/item/UnloadedHandCannonItem.java
rename to src/main/java/net/minecraft/core/item/ItemHandCannonUnloaded.java
index 82c8d0a37..278d25003 100644
--- a/src/main/java/net/minecraft/core/item/UnloadedHandCannonItem.java
+++ b/src/main/java/net/minecraft/core/item/ItemHandCannonUnloaded.java
@@ -2,15 +2,15 @@ package net.minecraft.core.item;
 
 // Referenced classes of package net.minecraft.src:
 //            Item, Player, InventoryPlayer, World,
-//            ArrowProjectile, ItemStack
+//            ProjectileArrow, ItemStack
 
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.world.World;
 
-public class UnloadedHandCannonItem extends Item
+public class ItemHandCannonUnloaded extends Item
 {
 
-    public UnloadedHandCannonItem(String name, String namespaceId, int id)
+    public ItemHandCannonUnloaded(String name, String namespaceId, int id)
     {
         super(name, namespaceId, id);
         setMaxDamage(100);
diff --git a/src/main/java/net/minecraft/core/item/IceSkatesItem.java b/src/main/java/net/minecraft/core/item/ItemIceSkates.java
similarity index 76%
rename from src/main/java/net/minecraft/core/item/IceSkatesItem.java
rename to src/main/java/net/minecraft/core/item/ItemIceSkates.java
index 88781f334..7ceaf568b 100644
--- a/src/main/java/net/minecraft/core/item/IceSkatesItem.java
+++ b/src/main/java/net/minecraft/core/item/ItemIceSkates.java
@@ -3,8 +3,8 @@ package net.minecraft.core.item;
 import net.minecraft.core.item.material.ArmorMaterial;
 import org.jetbrains.annotations.Nullable;
 
-public class IceSkatesItem extends Item implements IArmorItem{
-    public IceSkatesItem(String translationKey, String namespaceId, int id) {
+public class ItemIceSkates extends Item implements IArmorItem{
+    public ItemIceSkates(String translationKey, String namespaceId, int id) {
         super(translationKey, namespaceId, id);
         setMaxStackSize(1);
     }
diff --git a/src/main/java/net/minecraft/core/item/JarItem.java b/src/main/java/net/minecraft/core/item/ItemJar.java
similarity index 84%
rename from src/main/java/net/minecraft/core/item/JarItem.java
rename to src/main/java/net/minecraft/core/item/ItemJar.java
index 9d56fd748..34aa4b715 100644
--- a/src/main/java/net/minecraft/core/item/JarItem.java
+++ b/src/main/java/net/minecraft/core/item/ItemJar.java
@@ -2,7 +2,7 @@ package net.minecraft.core.item;
 
 import net.minecraft.core.block.Blocks;
 import net.minecraft.core.entity.Entity;
-import net.minecraft.core.entity.animal.FireflyClusterMob;
+import net.minecraft.core.entity.animal.MobFireflyCluster;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.world.World;
@@ -11,11 +11,11 @@ import org.jetbrains.annotations.Nullable;
 
 import java.util.List;
 
-public class JarItem extends PlaceableItem {
+public class ItemJar extends ItemPlaceable {
 
 
 
-    protected JarItem(String name, String namespaceId, int id) {
+    protected ItemJar(String name, String namespaceId, int id) {
         super(name, namespaceId, id, Blocks.JAR_GLASS);
         setMaxStackSize(64);
     }
@@ -44,18 +44,18 @@ public class JarItem extends PlaceableItem {
         List<Entity> list = world.getEntitiesWithinAABBExcludingEntity(entityplayer,entityplayer.bb.grow(2, 2, 2));
 
         for(Entity entity : list){
-            if(entity instanceof FireflyClusterMob) {
-                FireflyClusterMob fireflyCluster = (FireflyClusterMob) entity;
-                FireflyClusterMob.FireflyColor colour = fireflyCluster.getColor();
+            if(entity instanceof MobFireflyCluster) {
+                MobFireflyCluster fireflyCluster = (MobFireflyCluster) entity;
+                MobFireflyCluster.FireflyColor colour = fireflyCluster.getColor();
 
                 boolean didFillJar;
-                if(colour == FireflyClusterMob.FireflyColor.BLUE){
+                if(colour == MobFireflyCluster.FireflyColor.BLUE){
                     didFillJar = fillJar(entityplayer, new ItemStack(Items.LANTERN_FIREFLY_BLUE, 1));
                 }
-                else if(colour == FireflyClusterMob.FireflyColor.ORANGE){
+                else if(colour == MobFireflyCluster.FireflyColor.ORANGE){
                     didFillJar = fillJar(entityplayer, new ItemStack(Items.LANTERN_FIREFLY_ORANGE, 1));
                 }
-                else if(colour == FireflyClusterMob.FireflyColor.RED){
+                else if(colour == MobFireflyCluster.FireflyColor.RED){
                     didFillJar = fillJar(entityplayer, new ItemStack(Items.LANTERN_FIREFLY_RED, 1));
                 }
                 else{
diff --git a/src/main/java/net/minecraft/core/item/LabelItem.java b/src/main/java/net/minecraft/core/item/ItemLabel.java
similarity index 76%
rename from src/main/java/net/minecraft/core/item/LabelItem.java
rename to src/main/java/net/minecraft/core/item/ItemLabel.java
index cc7a3400a..b15a9b6db 100644
--- a/src/main/java/net/minecraft/core/item/LabelItem.java
+++ b/src/main/java/net/minecraft/core/item/ItemLabel.java
@@ -1,22 +1,20 @@
 package net.minecraft.core.item;
 
 import com.b100.utils.StringUtils;
-import net.minecraft.core.block.entity.ActivatorBlockEntity;
+import net.minecraft.core.block.entity.TileEntityActivator;
 import net.minecraft.core.entity.Entity;
 import net.minecraft.core.entity.Mob;
-import net.minecraft.core.entity.animal.SheepMob;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.util.helper.Direction;
 import net.minecraft.core.util.phys.AABB;
 import net.minecraft.core.world.World;
 
-import java.util.Iterator;
 import java.util.List;
 import java.util.Random;
 
-public class LabelItem extends Item
+public class ItemLabel extends Item
 {
-    protected LabelItem(String name, String namespaceId, int id) {
+    protected ItemLabel(String name, String namespaceId, int id) {
         super(name, namespaceId, id);
         setMaxStackSize(1);
     }
@@ -44,7 +42,7 @@ public class LabelItem extends Item
 	}
 
 	@Override
-	public void onUseByActivator(ItemStack itemStack, ActivatorBlockEntity activatorBlock, World world, Random random, int blockX, int blockY, int blockZ, double offX, double offY, double offZ, Direction direction) {
+	public void onUseByActivator(ItemStack itemStack, TileEntityActivator activatorBlock, World world, Random random, int blockX, int blockY, int blockZ, double offX, double offY, double offZ, Direction direction) {
 		if (!itemStack.hasCustomName()) return;
 		blockX += direction.getOffsetX();
 		blockY += direction.getOffsetY();
diff --git a/src/main/java/net/minecraft/core/item/MapItem.java b/src/main/java/net/minecraft/core/item/ItemMap.java
similarity index 98%
rename from src/main/java/net/minecraft/core/item/MapItem.java
rename to src/main/java/net/minecraft/core/item/ItemMap.java
index bf334d9c3..4ce548df4 100644
--- a/src/main/java/net/minecraft/core/item/MapItem.java
+++ b/src/main/java/net/minecraft/core/item/ItemMap.java
@@ -9,7 +9,7 @@ import net.minecraft.core.block.Blocks;
 //            Block, Chunk, Material, MapColor, 
 //            EntityPlayer
 
-import net.minecraft.core.block.entity.FlagBlockEntity;
+import net.minecraft.core.block.entity.TileEntityFlag;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.entity.Entity;
 import net.minecraft.core.entity.player.Player;
@@ -28,10 +28,10 @@ import java.util.HashMap;
 import java.util.Map;
 
 
-public class MapItem extends Item implements IComplexItem
+public class ItemMap extends Item implements IComplexItem
 {
 	private static final Map<Integer, Map<Integer, Integer>> blockCounts = new HashMap<>();
-    protected MapItem(String name, String namespaceId, int id)
+    protected ItemMap(String name, String namespaceId, int id)
     {
         super(name, namespaceId, id);
     }
@@ -131,7 +131,7 @@ public class MapItem extends Item implements IComplexItem
 		if (world.getBlockId(blockX, blockY, blockZ) == Blocks.FLAG.id) {
 			ItemMapSavedData mapData = getOrCreateSavedData(itemstack, world);
 			if (mapData != null){
-				FlagBlockEntity flag = (FlagBlockEntity) world.getBlockEntity(blockX, blockY, blockZ);
+				TileEntityFlag flag = (TileEntityFlag) world.getBlockEntity(blockX, blockY, blockZ);
 				boolean canCreateMap = mapData.createNewWaypoint(flag);
 				if(!canCreateMap)
 					player.sendTranslatedChatMessage("flag.full");
diff --git a/src/main/java/net/minecraft/core/item/MinecartItem.java b/src/main/java/net/minecraft/core/item/ItemMinecart.java
similarity index 72%
rename from src/main/java/net/minecraft/core/item/MinecartItem.java
rename to src/main/java/net/minecraft/core/item/ItemMinecart.java
index 136a97ba8..7bbacc395 100644
--- a/src/main/java/net/minecraft/core/item/MinecartItem.java
+++ b/src/main/java/net/minecraft/core/item/ItemMinecart.java
@@ -2,10 +2,9 @@ package net.minecraft.core.item;
 
 
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.RailBlock;
+import net.minecraft.core.block.BlockRail;
 
-import net.minecraft.core.block.entity.ActivatorBlockEntity;
-import net.minecraft.core.block.tag.BlockTags;
+import net.minecraft.core.block.entity.TileEntityActivator;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.entity.vehicle.MinecartEntity;
 import net.minecraft.core.util.helper.Direction;
@@ -15,9 +14,9 @@ import org.jetbrains.annotations.Nullable;
 
 import java.util.Random;
 
-public class MinecartItem extends Item {
+public class ItemMinecart extends Item {
     public final int minecartType;
-    public MinecartItem(String name, String namespaceId, int id, int type) {
+    public ItemMinecart(String name, String namespaceId, int id, int type) {
         super(name, namespaceId, id);
         setMaxStackSize(1);
         minecartType = type;
@@ -26,7 +25,7 @@ public class MinecartItem extends Item {
     @Override
     public boolean onUseItemOnBlock(ItemStack itemstack, @Nullable Player player, World world, int blockX, int blockY, int blockZ, Side side, double xPlaced, double yPlaced) {
         Block block = world.getBlock(blockX, blockY, blockZ);
-        if (!(block instanceof RailBlock)) { return false; }
+        if (!(block instanceof BlockRail)) { return false; }
 
         if(!world.isClientSide) {
             world.entityJoinedWorld(new MinecartEntity(world, (float) blockX + 0.5F, (float) blockY + 0.5F, (float) blockZ + 0.5F, minecartType));
@@ -38,7 +37,7 @@ public class MinecartItem extends Item {
     }
 
     @Override
-    public void onUseByActivator(ItemStack itemStack, ActivatorBlockEntity activatorBlock, World world, Random random, int blockX, int blockY, int blockZ, double offX, double offY, double offZ, Direction direction) {
+    public void onUseByActivator(ItemStack itemStack, TileEntityActivator activatorBlock, World world, Random random, int blockX, int blockY, int blockZ, double offX, double offY, double offZ, Direction direction) {
         int x = blockX + direction.getOffsetX();
         int y = blockY + direction.getOffsetY();
         int z = blockZ + direction.getOffsetZ();
diff --git a/src/main/java/net/minecraft/core/item/PaintBrushItem.java b/src/main/java/net/minecraft/core/item/ItemPaintBrush.java
similarity index 88%
rename from src/main/java/net/minecraft/core/item/PaintBrushItem.java
rename to src/main/java/net/minecraft/core/item/ItemPaintBrush.java
index 90d02620c..5a2468b75 100644
--- a/src/main/java/net/minecraft/core/item/PaintBrushItem.java
+++ b/src/main/java/net/minecraft/core/item/ItemPaintBrush.java
@@ -1,134 +1,133 @@
-package net.minecraft.core.item;
-
-import com.mojang.nbt.CompoundTag;
-import net.minecraft.core.block.Block;
-import net.minecraft.core.block.IPaintable;
-import net.minecraft.core.block.IPainted;
-import net.minecraft.core.block.entity.ActivatorBlockEntity;
-import net.minecraft.core.block.tag.BlockTags;
-import net.minecraft.core.entity.player.Player;
-import net.minecraft.core.player.inventory.slot.Slot;
-import net.minecraft.core.util.helper.Direction;
-import net.minecraft.core.util.helper.DyeColor;
-import net.minecraft.core.util.helper.Side;
-import net.minecraft.core.world.World;
-import org.jetbrains.annotations.Nullable;
-
-import java.util.Random;
-
-public class PaintBrushItem extends Item {
-    private static final int DAMAGE_PER_DYE = 8;
-
-    public PaintBrushItem(String translationKey, String namespaceId, int id) {
-        super(translationKey, namespaceId, id);
-        setMaxStackSize(1);
-        setMaxDamage(64);
-    }
-
-    @Override
-    public boolean onUseItemOnBlock(ItemStack itemstack, @Nullable Player player, World world, int blockX, int blockY, int blockZ, Side side, double xPlaced, double yPlaced) {
-        if (itemstack.getMetadata() >= itemstack.getMaxDamage()) {
-            return false;
-        }
-
-        final int id = world.getBlockId(blockX, blockY, blockZ);
-        final Block block = Block.getBlock(id);
-
-        if (block instanceof IPaintable) {
-            final IPaintable paintable = (IPaintable) block;
-            if (!paintable.canBePainted()) return false;
-            final DyeColor color = getColor(itemstack);
-            if (color != null) {
-                if (paintable instanceof IPainted && ((IPainted)paintable).getColor(world, blockX, blockY, blockZ) == color) {
-                   return false;
-                }
-                paintable.setColor(world, blockX, blockY, blockZ, color);
-                itemstack.damageItem(1, player);
-                return true;
-            }
-        }
-
-        return false;
-    }
-
-    @Override
-    public void onUseByActivator(ItemStack itemStack, ActivatorBlockEntity activatorBlock, World world, Random random, int blockX, int blockY, int blockZ, double offX, double offY, double offZ, Direction direction) {
-        int x = blockX + direction.getOffsetX();
-        int y = blockY + direction.getOffsetY();
-        int z = blockZ + direction.getOffsetZ();
-        onUseItemOnBlock(itemStack, null, world, x, y, z, direction.getSide(), 0.5, 0.5);
-    }
-
-    @Override
-    public boolean hasInventoryInteraction() {
-        return true;
-    }
-
-    @Override
-    public ItemStack onInventoryInteract(Player player, Slot slot, ItemStack stackInSlot, boolean isItemGrabbed) {
-        if (isItemGrabbed) {
-            return stackInSlot;
-        }
-
-        final DyeColor currentColor = getColor(stackInSlot);
-        final int dyeCount = getDyeCount(stackInSlot);
-
-        final ItemStack grabbedItem = player.inventory.getHeldItemStack();
-
-        if (grabbedItem != null && grabbedItem.getItem() instanceof DyeItem) {
-            final DyeColor newColor = DyeColor.colorFromItemMeta(grabbedItem.getMetadata());
-            if (currentColor != newColor) {
-                setColor(stackInSlot, newColor);
-                setDyeCount(stackInSlot, DAMAGE_PER_DYE);
-                grabbedItem.stackSize--;
-                if (grabbedItem.stackSize <= 0) {
-                    player.inventory.setHeldItemStack(null);
-                }
-            } else if (dyeCount < getMaxDamage()) {
-                final int newDyeCount = Math.min(dyeCount + DAMAGE_PER_DYE, stackInSlot.getMaxDamage());
-                setDyeCount(stackInSlot, newDyeCount);
-                grabbedItem.stackSize--;
-                if (grabbedItem.stackSize <= 0) {
-                    player.inventory.setHeldItemStack(null);
-                }
-            }
-        }
-
-        return stackInSlot;
-    }
-
-    @Override
-    public boolean showFullDurability() {
-        return true;
-    }
-
-    public int getDyeCount(ItemStack stack) {
-        return stack.getMaxDamage() - stack.getMetadata();
-    }
-
-    public void setDyeCount(ItemStack stack, int count) {
-        stack.setMetadata(stack.getMaxDamage() - count);
-    }
-
-    public DyeColor getColor(ItemStack stack) {
-        CompoundTag tag = stack.getData();
-        if (tag.containsKey("Color")) {
-            final int color = tag.getInteger("Color");
-            if (color < 0) {
-                return null;
-            }
-            return DyeColor.colorFromItemMeta(color & 0x0F);
-        } else {
-            return null;
-        }
-    }
-
-    public void setColor(ItemStack stack, DyeColor color) {
-        CompoundTag tag = stack.getData();
-        if (color == null) {
-            tag.putInt("Color", -1);
-        } else {
-            tag.putInt("Color", color.itemMeta);
-        }
-    }
-}
+package net.minecraft.core.item;
+
+import com.mojang.nbt.CompoundTag;
+import net.minecraft.core.block.Block;
+import net.minecraft.core.block.IPaintable;
+import net.minecraft.core.block.IPainted;
+import net.minecraft.core.block.entity.TileEntityActivator;
+import net.minecraft.core.entity.player.Player;
+import net.minecraft.core.player.inventory.slot.Slot;
+import net.minecraft.core.util.helper.Direction;
+import net.minecraft.core.util.helper.DyeColor;
+import net.minecraft.core.util.helper.Side;
+import net.minecraft.core.world.World;
+import org.jetbrains.annotations.Nullable;
+
+import java.util.Random;
+
+public class ItemPaintBrush extends Item {
+    private static final int DAMAGE_PER_DYE = 8;
+
+    public ItemPaintBrush(String translationKey, String namespaceId, int id) {
+        super(translationKey, namespaceId, id);
+        setMaxStackSize(1);
+        setMaxDamage(64);
+    }
+
+    @Override
+    public boolean onUseItemOnBlock(ItemStack itemstack, @Nullable Player player, World world, int blockX, int blockY, int blockZ, Side side, double xPlaced, double yPlaced) {
+        if (itemstack.getMetadata() >= itemstack.getMaxDamage()) {
+            return false;
+        }
+
+        final int id = world.getBlockId(blockX, blockY, blockZ);
+        final Block block = Block.getBlock(id);
+
+        if (block instanceof IPaintable) {
+            final IPaintable paintable = (IPaintable) block;
+            if (!paintable.canBePainted()) return false;
+            final DyeColor color = getColor(itemstack);
+            if (color != null) {
+                if (paintable instanceof IPainted && ((IPainted)paintable).getColor(world, blockX, blockY, blockZ) == color) {
+                   return false;
+                }
+                paintable.setColor(world, blockX, blockY, blockZ, color);
+                itemstack.damageItem(1, player);
+                return true;
+            }
+        }
+
+        return false;
+    }
+
+    @Override
+    public void onUseByActivator(ItemStack itemStack, TileEntityActivator activatorBlock, World world, Random random, int blockX, int blockY, int blockZ, double offX, double offY, double offZ, Direction direction) {
+        int x = blockX + direction.getOffsetX();
+        int y = blockY + direction.getOffsetY();
+        int z = blockZ + direction.getOffsetZ();
+        onUseItemOnBlock(itemStack, null, world, x, y, z, direction.getSide(), 0.5, 0.5);
+    }
+
+    @Override
+    public boolean hasInventoryInteraction() {
+        return true;
+    }
+
+    @Override
+    public ItemStack onInventoryInteract(Player player, Slot slot, ItemStack stackInSlot, boolean isItemGrabbed) {
+        if (isItemGrabbed) {
+            return stackInSlot;
+        }
+
+        final DyeColor currentColor = getColor(stackInSlot);
+        final int dyeCount = getDyeCount(stackInSlot);
+
+        final ItemStack grabbedItem = player.inventory.getHeldItemStack();
+
+        if (grabbedItem != null && grabbedItem.getItem() instanceof ItemDye) {
+            final DyeColor newColor = DyeColor.colorFromItemMeta(grabbedItem.getMetadata());
+            if (currentColor != newColor) {
+                setColor(stackInSlot, newColor);
+                setDyeCount(stackInSlot, DAMAGE_PER_DYE);
+                grabbedItem.stackSize--;
+                if (grabbedItem.stackSize <= 0) {
+                    player.inventory.setHeldItemStack(null);
+                }
+            } else if (dyeCount < getMaxDamage()) {
+                final int newDyeCount = Math.min(dyeCount + DAMAGE_PER_DYE, stackInSlot.getMaxDamage());
+                setDyeCount(stackInSlot, newDyeCount);
+                grabbedItem.stackSize--;
+                if (grabbedItem.stackSize <= 0) {
+                    player.inventory.setHeldItemStack(null);
+                }
+            }
+        }
+
+        return stackInSlot;
+    }
+
+    @Override
+    public boolean showFullDurability() {
+        return true;
+    }
+
+    public int getDyeCount(ItemStack stack) {
+        return stack.getMaxDamage() - stack.getMetadata();
+    }
+
+    public void setDyeCount(ItemStack stack, int count) {
+        stack.setMetadata(stack.getMaxDamage() - count);
+    }
+
+    public DyeColor getColor(ItemStack stack) {
+        CompoundTag tag = stack.getData();
+        if (tag.containsKey("Color")) {
+            final int color = tag.getInteger("Color");
+            if (color < 0) {
+                return null;
+            }
+            return DyeColor.colorFromItemMeta(color & 0x0F);
+        } else {
+            return null;
+        }
+    }
+
+    public void setColor(ItemStack stack, DyeColor color) {
+        CompoundTag tag = stack.getData();
+        if (color == null) {
+            tag.putInt("Color", -1);
+        } else {
+            tag.putInt("Color", color.itemMeta);
+        }
+    }
+}
diff --git a/src/main/java/net/minecraft/core/item/PaintingItem.java b/src/main/java/net/minecraft/core/item/ItemPainting.java
similarity index 86%
rename from src/main/java/net/minecraft/core/item/PaintingItem.java
rename to src/main/java/net/minecraft/core/item/ItemPainting.java
index 87d05b015..8627381c9 100644
--- a/src/main/java/net/minecraft/core/item/PaintingItem.java
+++ b/src/main/java/net/minecraft/core/item/ItemPainting.java
@@ -2,20 +2,20 @@ package net.minecraft.core.item;
 
 
 // Referenced classes of package net.minecraft.src:
-//            Item, PaintingEntity, World, ItemStack,
+//            Item, EntityPainting, World, ItemStack,
 //            Player
 
-import net.minecraft.core.entity.PaintingEntity;
+import net.minecraft.core.entity.EntityPainting;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.block.Blocks;
 import net.minecraft.core.enums.EnumBlockSoundEffectType;
 import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.world.World;
 
-public class PaintingItem extends Item
+public class ItemPainting extends Item
 {
 
-    public PaintingItem(String name, String namespaceId, int id)
+    public ItemPainting(String name, String namespaceId, int id)
     {
         super(name, namespaceId, id);
     }
@@ -56,7 +56,7 @@ public class PaintingItem extends Item
         {
             direction = 3;
         }
-        PaintingEntity entity = new PaintingEntity(world, blockX, blockY, blockZ, direction, entityplayer.getSelectedArt().key);
+        EntityPainting entity = new EntityPainting(world, blockX, blockY, blockZ, direction, entityplayer.getSelectedArt().key);
         if(entity.canStay())
         {
             if(!world.isClientSide)
diff --git a/src/main/java/net/minecraft/core/item/PebbleItem.java b/src/main/java/net/minecraft/core/item/ItemPebble.java
similarity index 84%
rename from src/main/java/net/minecraft/core/item/PebbleItem.java
rename to src/main/java/net/minecraft/core/item/ItemPebble.java
index d9b388706..4fa0a2ffa 100644
--- a/src/main/java/net/minecraft/core/item/PebbleItem.java
+++ b/src/main/java/net/minecraft/core/item/ItemPebble.java
@@ -2,10 +2,10 @@ package net.minecraft.core.item;
 
 import net.minecraft.core.block.Block;
 import net.minecraft.core.block.Blocks;
-import net.minecraft.core.block.entity.ActivatorBlockEntity;
+import net.minecraft.core.block.entity.TileEntityActivator;
 import net.minecraft.core.block.tag.BlockTags;
 import net.minecraft.core.entity.player.Player;
-import net.minecraft.core.entity.projectile.PebbleProjectile;
+import net.minecraft.core.entity.projectile.ProjectilePebble;
 import net.minecraft.core.enums.EnumBlockSoundEffectType;
 import net.minecraft.core.util.helper.Direction;
 import net.minecraft.core.util.helper.Side;
@@ -14,10 +14,10 @@ import net.minecraft.core.world.World;
 
 import java.util.Random;
 
-public class PebbleItem extends Item implements IDispensable
+public class ItemPebble extends Item implements IDispensable
 {
 
-    public PebbleItem(String name, String namespaceId, int id)
+    public ItemPebble(String name, String namespaceId, int id)
     {
         super(name, namespaceId, id);
         maxStackSize = 64;
@@ -32,7 +32,7 @@ public class PebbleItem extends Item implements IDispensable
         world.playSoundAtEntity(entityplayer, entityplayer, "random.bow", 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F));
         if(!world.isClientSide)
         {
-            world.entityJoinedWorld(new PebbleProjectile(world, entityplayer));
+            world.entityJoinedWorld(new ProjectilePebble(world, entityplayer));
         }
         return itemstack;
     }
@@ -124,17 +124,17 @@ public class PebbleItem extends Item implements IDispensable
     }
 
     @Override
-    public void onUseByActivator(ItemStack itemStack, ActivatorBlockEntity activatorBlock, World world, Random random, int blockX, int blockY, int blockZ, double offX, double offY, double offZ, Direction direction) {
-        PebbleProjectile pebbleProjectile = new PebbleProjectile(world, blockX + offX, blockY + offY, blockZ + offZ);
-        pebbleProjectile.setHeading(direction.getOffsetX() * 0.6, direction.getOffsetY() == 0 ? 0.1 : direction.getOffsetY() * 0.6, direction.getOffsetZ() * 0.6f, 1.1F, 6F);
-        world.entityJoinedWorld(pebbleProjectile);
+    public void onUseByActivator(ItemStack itemStack, TileEntityActivator activatorBlock, World world, Random random, int blockX, int blockY, int blockZ, double offX, double offY, double offZ, Direction direction) {
+        ProjectilePebble projectilePebble = new ProjectilePebble(world, blockX + offX, blockY + offY, blockZ + offZ);
+        projectilePebble.setHeading(direction.getOffsetX() * 0.6, direction.getOffsetY() == 0 ? 0.1 : direction.getOffsetY() * 0.6, direction.getOffsetZ() * 0.6f, 1.1F, 6F);
+        world.entityJoinedWorld(projectilePebble);
         itemStack.stackSize -= 1;
     }
 
     @Override
     public void onDispensed(ItemStack itemStack, World world, double x, double y, double z, int xOffset, int yOffset, int zOffset, Random random) {
-        PebbleProjectile pebbleProjectile = new PebbleProjectile(world, x, y, z);
-        pebbleProjectile.setHeading(xOffset, yOffset + 0.1D, zOffset, 1.1F, 6F);
-        world.entityJoinedWorld(pebbleProjectile);
+        ProjectilePebble projectilePebble = new ProjectilePebble(world, x, y, z);
+        projectilePebble.setHeading(xOffset, yOffset + 0.1D, zOffset, 1.1F, 6F);
+        world.entityJoinedWorld(projectilePebble);
     }
 }
diff --git a/src/main/java/net/minecraft/core/item/PlaceableItem.java b/src/main/java/net/minecraft/core/item/ItemPlaceable.java
similarity index 83%
rename from src/main/java/net/minecraft/core/item/PlaceableItem.java
rename to src/main/java/net/minecraft/core/item/ItemPlaceable.java
index 3ee386dbe..9ca22a495 100644
--- a/src/main/java/net/minecraft/core/item/PlaceableItem.java
+++ b/src/main/java/net/minecraft/core/item/ItemPlaceable.java
@@ -1,7 +1,7 @@
 package net.minecraft.core.item;
 
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.entity.ActivatorBlockEntity;
+import net.minecraft.core.block.entity.TileEntityActivator;
 import net.minecraft.core.block.tag.BlockTags;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.enums.EnumBlockSoundEffectType;
@@ -12,11 +12,11 @@ import org.jetbrains.annotations.Nullable;
 
 import java.util.Random;
 
-public class PlaceableItem extends Item {
+public class ItemPlaceable extends Item {
 	
 	public Block blockToPlace;
 	
-	public PlaceableItem(String name, String namespaceId, int id, Block blockToPlace) {
+	public ItemPlaceable(String name, String namespaceId, int id, Block blockToPlace) {
 		super(name, namespaceId, id);
 		
 		this.blockToPlace = blockToPlace;
@@ -51,7 +51,7 @@ public class PlaceableItem extends Item {
 	}
 
 	@Override
-	public void onUseByActivator(ItemStack itemStack, ActivatorBlockEntity activatorBlock, World world, Random random, int blockX, int blockY, int blockZ, double offX, double offY, double offZ, Direction direction) {
+	public void onUseByActivator(ItemStack itemStack, TileEntityActivator activatorBlock, World world, Random random, int blockX, int blockY, int blockZ, double offX, double offY, double offZ, Direction direction) {
 		int x = blockX + direction.getOffsetX();
 		int y = blockY + direction.getOffsetY();
 		int z = blockZ + direction.getOffsetZ();
diff --git a/src/main/java/net/minecraft/core/item/QuiverItem.java b/src/main/java/net/minecraft/core/item/ItemQuiver.java
similarity index 96%
rename from src/main/java/net/minecraft/core/item/QuiverItem.java
rename to src/main/java/net/minecraft/core/item/ItemQuiver.java
index 202b81b0c..94556b506 100644
--- a/src/main/java/net/minecraft/core/item/QuiverItem.java
+++ b/src/main/java/net/minecraft/core/item/ItemQuiver.java
@@ -9,10 +9,10 @@ import org.jetbrains.annotations.Nullable;
 //            Item, Block, BlockLeaves, ItemStack,
 //            Mob
 
-public class QuiverItem extends Item implements IArmorItem
+public class ItemQuiver extends Item implements IArmorItem
 {
 
-    public QuiverItem(String name, String namespaceId, int id)
+    public ItemQuiver(String name, String namespaceId, int id)
     {
         super(name, namespaceId, id);
         setMaxStackSize(1);
diff --git a/src/main/java/net/minecraft/core/item/EndlessQuiverItem.java b/src/main/java/net/minecraft/core/item/ItemQuiverEndless.java
similarity index 78%
rename from src/main/java/net/minecraft/core/item/EndlessQuiverItem.java
rename to src/main/java/net/minecraft/core/item/ItemQuiverEndless.java
index 544739e60..2987ddb3a 100644
--- a/src/main/java/net/minecraft/core/item/EndlessQuiverItem.java
+++ b/src/main/java/net/minecraft/core/item/ItemQuiverEndless.java
@@ -8,10 +8,10 @@ package net.minecraft.core.item;
 
 import net.minecraft.core.item.material.ArmorMaterial;
 
-public class EndlessQuiverItem extends Item implements IArmorItem
+public class ItemQuiverEndless extends Item implements IArmorItem
 {
 
-    public EndlessQuiverItem(String name, String namespaceId, int id)
+    public ItemQuiverEndless(String name, String namespaceId, int id)
     {
         super(name, namespaceId, id);
         setMaxStackSize(1);
diff --git a/src/main/java/net/minecraft/core/item/RopeItem.java b/src/main/java/net/minecraft/core/item/ItemRope.java
similarity index 91%
rename from src/main/java/net/minecraft/core/item/RopeItem.java
rename to src/main/java/net/minecraft/core/item/ItemRope.java
index 24047207b..0cb154f31 100644
--- a/src/main/java/net/minecraft/core/item/RopeItem.java
+++ b/src/main/java/net/minecraft/core/item/ItemRope.java
@@ -1,15 +1,15 @@
 package net.minecraft.core.item;
 
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.RopeBlock;
+import net.minecraft.core.block.BlockRope;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.enums.EnumBlockSoundEffectType;
 import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.world.World;
 import org.jetbrains.annotations.Nullable;
 
-public class RopeItem extends PlaceableItem {
-    public RopeItem(String name, String namespaceId, int id, Block blockToPlace) {
+public class ItemRope extends ItemPlaceable {
+    public ItemRope(String name, String namespaceId, int id, Block blockToPlace) {
         super(name, namespaceId, id, blockToPlace);
     }
     @Override
@@ -44,7 +44,7 @@ public class RopeItem extends PlaceableItem {
             return false;
         }
         if(world.canBlockBePlacedAt(blockToPlace.id, blockX, blockY, blockZ, false, side) && stack.consumeItem(player)) {
-            if(world.setBlockAndMetadataWithNotify(blockX, blockY, blockZ, blockToPlace.id, placeOnSide ? RopeBlock.MASK_ROPE_CONNECT : 0)) {
+            if(world.setBlockAndMetadataWithNotify(blockX, blockY, blockZ, blockToPlace.id, placeOnSide ? BlockRope.MASK_ROPE_CONNECT : 0)) {
                 if (player == null) {
                     blockToPlace.onBlockPlacedOnSide(world, blockX, blockY, blockZ, side, xPlaced, yPlaced);
                 } else {
diff --git a/src/main/java/net/minecraft/core/item/SaddleItem.java b/src/main/java/net/minecraft/core/item/ItemSaddle.java
similarity index 65%
rename from src/main/java/net/minecraft/core/item/SaddleItem.java
rename to src/main/java/net/minecraft/core/item/ItemSaddle.java
index b7642c4b1..5e94a48bc 100644
--- a/src/main/java/net/minecraft/core/item/SaddleItem.java
+++ b/src/main/java/net/minecraft/core/item/ItemSaddle.java
@@ -2,16 +2,16 @@ package net.minecraft.core.item;
 
 
 // Referenced classes of package net.minecraft.src:
-//            Item, PigMob, ItemStack, Mob
+//            Item, MobPig, ItemStack, Mob
 
 import net.minecraft.core.entity.Mob;
-import net.minecraft.core.entity.animal.PigMob;
+import net.minecraft.core.entity.animal.MobPig;
 import net.minecraft.core.entity.player.Player;
 
-public class SaddleItem extends Item
+public class ItemSaddle extends Item
 {
 
-    public SaddleItem(String name, String namespaceId, int id)
+    public ItemSaddle(String name, String namespaceId, int id)
     {
         super(name, namespaceId, id);
         maxStackSize = 1;
@@ -20,9 +20,9 @@ public class SaddleItem extends Item
     @Override
     public boolean useItemOnEntity(ItemStack itemstack, Mob entityliving, Player entityPlayer)
     {
-        if(entityliving instanceof PigMob && itemstack.consumeItem(entityPlayer))
+        if(entityliving instanceof MobPig && itemstack.consumeItem(entityPlayer))
         {
-            PigMob entitypig = (PigMob)entityliving;
+            MobPig entitypig = (MobPig)entityliving;
             if(!entitypig.getSaddled())
             {
                 entitypig.setSaddled(true);
diff --git a/src/main/java/net/minecraft/core/item/SeedsItem.java b/src/main/java/net/minecraft/core/item/ItemSeeds.java
similarity index 81%
rename from src/main/java/net/minecraft/core/item/SeedsItem.java
rename to src/main/java/net/minecraft/core/item/ItemSeeds.java
index 1813b320b..981f2392a 100644
--- a/src/main/java/net/minecraft/core/item/SeedsItem.java
+++ b/src/main/java/net/minecraft/core/item/ItemSeeds.java
@@ -3,7 +3,7 @@ package net.minecraft.core.item;
 import net.minecraft.core.block.Block;
 import net.minecraft.core.block.Blocks;
 
-import net.minecraft.core.block.entity.ActivatorBlockEntity;
+import net.minecraft.core.block.entity.TileEntityActivator;
 import net.minecraft.core.block.tag.BlockTags;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.enums.EnumBlockSoundEffectType;
@@ -13,10 +13,10 @@ import net.minecraft.core.world.World;
 
 import java.util.Random;
 
-public class SeedsItem extends Item {
+public class ItemSeeds extends Item {
 	private int cropsId;
 
-	public SeedsItem(String name, String namespaceId, int id, Block cropsBlock) {
+	public ItemSeeds(String name, String namespaceId, int id, Block cropsBlock) {
 		super(name, namespaceId, id);
 		cropsId = cropsBlock.id;
 	}
@@ -38,7 +38,7 @@ public class SeedsItem extends Item {
 		return false;
 	}
 	@Override
-	public void onUseByActivator(ItemStack itemStack, ActivatorBlockEntity activatorBlock, World world, Random random, int blockX, int blockY, int blockZ, double offX, double offY, double offZ, Direction direction) {
+	public void onUseByActivator(ItemStack itemStack, TileEntityActivator activatorBlock, World world, Random random, int blockX, int blockY, int blockZ, double offX, double offY, double offZ, Direction direction) {
 		int x = blockX + direction.getOffsetX();
 		int y = blockY + direction.getOffsetY();
 		int z = blockZ + direction.getOffsetZ();
diff --git a/src/main/java/net/minecraft/core/item/SignItem.java b/src/main/java/net/minecraft/core/item/ItemSign.java
similarity index 87%
rename from src/main/java/net/minecraft/core/item/SignItem.java
rename to src/main/java/net/minecraft/core/item/ItemSign.java
index da58ccc12..f90ddfdbe 100644
--- a/src/main/java/net/minecraft/core/item/SignItem.java
+++ b/src/main/java/net/minecraft/core/item/ItemSign.java
@@ -2,11 +2,11 @@ package net.minecraft.core.item;
 
 
 import net.minecraft.core.block.Blocks;
-import net.minecraft.core.block.entity.SignBlockEntity;
+import net.minecraft.core.block.entity.TileEntitySign;
 
 // Referenced classes of package net.minecraft.src:
 //            Item, World, Material, Block, 
-//            Player, MathHelper, ItemStack, SignBlockEntity
+//            Player, MathHelper, ItemStack, TileEntitySign
 
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.enums.EnumBlockSoundEffectType;
@@ -14,10 +14,10 @@ import net.minecraft.core.util.helper.MathHelper;
 import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.world.World;
 
-public class SignItem extends Item
+public class ItemSign extends Item
 {
 
-    public SignItem(String name, String namespaceId, int id)
+    public ItemSign(String name, String namespaceId, int id)
     {
         super(name, namespaceId, id);
     }
@@ -57,7 +57,7 @@ public class SignItem extends Item
             world.setBlockAndMetadataWithNotify(blockX, blockY, blockZ, Blocks.SIGN_WALL_PLANKS_OAK.id, sideHit);
         }
         itemstack.consumeItem(entityplayer);
-        SignBlockEntity tileentitysign = (SignBlockEntity)world.getBlockEntity(blockX, blockY, blockZ);
+        TileEntitySign tileentitysign = (TileEntitySign)world.getBlockEntity(blockX, blockY, blockZ);
         if(tileentitysign != null)
         {
             tileentitysign.setOwner(entityplayer);
diff --git a/src/main/java/net/minecraft/core/item/SnowballItem.java b/src/main/java/net/minecraft/core/item/ItemSnowball.java
similarity index 56%
rename from src/main/java/net/minecraft/core/item/SnowballItem.java
rename to src/main/java/net/minecraft/core/item/ItemSnowball.java
index e5f7028c0..b689064ad 100644
--- a/src/main/java/net/minecraft/core/item/SnowballItem.java
+++ b/src/main/java/net/minecraft/core/item/ItemSnowball.java
@@ -1,17 +1,17 @@
 package net.minecraft.core.item;
 
-import net.minecraft.core.block.entity.ActivatorBlockEntity;
+import net.minecraft.core.block.entity.TileEntityActivator;
 import net.minecraft.core.entity.player.Player;
-import net.minecraft.core.entity.projectile.SnowballProjectile;
+import net.minecraft.core.entity.projectile.ProjectileSnowball;
 import net.minecraft.core.util.helper.Direction;
 import net.minecraft.core.world.World;
 
 import java.util.Random;
 
-public class SnowballItem extends Item implements IDispensable
+public class ItemSnowball extends Item implements IDispensable
 {
 
-    public SnowballItem(String name, String namespaceId, int id)
+    public ItemSnowball(String name, String namespaceId, int id)
     {
         super(name, namespaceId, id);
         maxStackSize = 64;
@@ -24,22 +24,22 @@ public class SnowballItem extends Item implements IDispensable
         world.playSoundAtEntity(entityplayer, entityplayer, "random.bow", 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F));
         if(!world.isClientSide)
         {
-            world.entityJoinedWorld(new SnowballProjectile(world, entityplayer));
+            world.entityJoinedWorld(new ProjectileSnowball(world, entityplayer));
         }
         return itemstack;
     }
 
     @Override
-    public void onUseByActivator(ItemStack itemStack, ActivatorBlockEntity activatorBlock, World world, Random random, int blockX, int blockY, int blockZ, double offX, double offY, double offZ, Direction direction) {
-        SnowballProjectile snowballProjectile = new SnowballProjectile(world, blockX + offX, blockY + offY, blockZ + offZ);
-        snowballProjectile.setHeading(direction.getOffsetX() * 0.6, direction.getOffsetY() == 0 ? 0.1 : direction.getOffsetY() * 0.6, direction.getOffsetZ() * 0.6f, 1.1F, 6F);
-        world.entityJoinedWorld(snowballProjectile);
+    public void onUseByActivator(ItemStack itemStack, TileEntityActivator activatorBlock, World world, Random random, int blockX, int blockY, int blockZ, double offX, double offY, double offZ, Direction direction) {
+        ProjectileSnowball projectileSnowball = new ProjectileSnowball(world, blockX + offX, blockY + offY, blockZ + offZ);
+        projectileSnowball.setHeading(direction.getOffsetX() * 0.6, direction.getOffsetY() == 0 ? 0.1 : direction.getOffsetY() * 0.6, direction.getOffsetZ() * 0.6f, 1.1F, 6F);
+        world.entityJoinedWorld(projectileSnowball);
         itemStack.stackSize -= 1;
     }
 
     @Override
     public void onDispensed(ItemStack itemStack, World world, double x, double y, double z, int xOffset, int yOffset, int zOffset, Random random) {
-        SnowballProjectile entitysnowball = new SnowballProjectile(world, x, y, z);
+        ProjectileSnowball entitysnowball = new ProjectileSnowball(world, x, y, z);
         entitysnowball.setHeading(xOffset, yOffset + 0.1D, zOffset, 1.1F, 6F);
         world.entityJoinedWorld(entitysnowball);
     }
diff --git a/src/main/java/net/minecraft/core/item/SoupItem.java b/src/main/java/net/minecraft/core/item/ItemSoup.java
similarity index 83%
rename from src/main/java/net/minecraft/core/item/SoupItem.java
rename to src/main/java/net/minecraft/core/item/ItemSoup.java
index fe16aa866..f15fda846 100644
--- a/src/main/java/net/minecraft/core/item/SoupItem.java
+++ b/src/main/java/net/minecraft/core/item/ItemSoup.java
@@ -3,10 +3,10 @@ package net.minecraft.core.item;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.world.World;
 
-public class SoupItem extends FoodItem
+public class ItemSoup extends ItemFood
 {
 
-    public SoupItem(String name, String namespaceId, int id, int healAmount, int ticksPerHeal)
+    public ItemSoup(String name, String namespaceId, int id, int healAmount, int ticksPerHeal)
     {
         super(name, namespaceId, id, healAmount, ticksPerHeal, false, 1);
     }
diff --git a/src/main/java/net/minecraft/core/item/SpawnerWandItem.java b/src/main/java/net/minecraft/core/item/ItemWandSpawner.java
similarity index 81%
rename from src/main/java/net/minecraft/core/item/SpawnerWandItem.java
rename to src/main/java/net/minecraft/core/item/ItemWandSpawner.java
index 5ee620f8d..cc1f8ef29 100644
--- a/src/main/java/net/minecraft/core/item/SpawnerWandItem.java
+++ b/src/main/java/net/minecraft/core/item/ItemWandSpawner.java
@@ -1,6 +1,6 @@
 package net.minecraft.core.item;
 
-import net.minecraft.core.block.entity.ActivatorBlockEntity;
+import net.minecraft.core.block.entity.TileEntityActivator;
 import net.minecraft.core.entity.Mob;
 import net.minecraft.core.util.helper.Direction;
 import net.minecraft.core.util.phys.HitResult;
@@ -8,16 +8,13 @@ import net.minecraft.core.entity.Entity;
 import net.minecraft.core.entity.EntityDispatcher;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.player.gamemode.Gamemode;
-import net.minecraft.core.util.helper.MathHelper;
-import net.minecraft.core.util.phys.Vec3;
 import net.minecraft.core.world.World;
-import net.minecraft.server.entity.player.ServerPlayer;
 
 import java.util.Random;
 
-public class SpawnerWandItem extends Item implements IDispensable
+public class ItemWandSpawner extends Item implements IDispensable
 {
-    public SpawnerWandItem(String name, String namespaceId, int id) {
+    public ItemWandSpawner(String name, String namespaceId, int id) {
         super(name, namespaceId, id);
     }
     @Override
@@ -70,7 +67,7 @@ public class SpawnerWandItem extends Item implements IDispensable
     }
 
     @Override
-    public void onUseByActivator(ItemStack itemStack, ActivatorBlockEntity activatorBlock, World world, Random random, int blockX, int blockY, int blockZ, double offX, double offY, double offZ, Direction direction) {
+    public void onUseByActivator(ItemStack itemStack, TileEntityActivator activatorBlock, World world, Random random, int blockX, int blockY, int blockZ, double offX, double offY, double offZ, Direction direction) {
         spawnEntity(itemStack, world, blockX + offX + direction.getOffsetX() * 0.5, blockY + offY + direction.getOffsetY() * 0.5, blockZ + offZ + direction.getOffsetZ() * 0.5);
     }
 }
diff --git a/src/main/java/net/minecraft/core/item/Items.java b/src/main/java/net/minecraft/core/item/Items.java
index 413bd6b27..a2398ec2e 100644
--- a/src/main/java/net/minecraft/core/item/Items.java
+++ b/src/main/java/net/minecraft/core/item/Items.java
@@ -8,11 +8,12 @@ import net.minecraft.core.entity.vehicle.MinecartEntity;
 import net.minecraft.core.item.material.ArmorMaterial;
 import net.minecraft.core.item.material.ToolMaterial;
 import net.minecraft.core.item.tag.ItemTags;
-import net.minecraft.core.item.tool.AxeToolItem;
-import net.minecraft.core.item.tool.HoeToolItem;
-import net.minecraft.core.item.tool.PickaxeToolItem;
-import net.minecraft.core.item.tool.ShovelToolItem;
-import net.minecraft.core.item.tool.SwordToolItem;
+import net.minecraft.core.item.tool.ItemToolAxe;
+import net.minecraft.core.item.tool.ItemToolHoe;
+import net.minecraft.core.item.tool.ItemToolPickaxe;
+import net.minecraft.core.item.tool.ItemToolShears;
+import net.minecraft.core.item.tool.ItemToolShovel;
+import net.minecraft.core.item.tool.ItemToolSword;
 
 public final class Items {
     public static Item TOOL_SHOVEL_IRON;
@@ -122,8 +123,8 @@ public final class Items {
     public static Item BED;
     public static Item REPEATER;
     public static Item FOOD_COOKIE;
-    public static MapItem MAP;
-    public static ToolShearsItem TOOL_SHEARS;
+    public static ItemMap MAP;
+    public static ItemToolShears TOOL_SHEARS;
     public static Item RECORD_13;
     public static Item RECORD_CAT;
     public static Item RECORD_BLOCKS;
@@ -178,7 +179,7 @@ public final class Items {
     public static Item BASKET;
     public static Item FLAG;
     public static Item ARMOR_BOOTS_ICESKATES;
-    public static ToolShearsItem TOOL_SHEARS_STEEL;
+    public static ItemToolShears TOOL_SHEARS_STEEL;
     public static Item TOOL_FIRESTRIKER_STEEL;
     public static Item SEEDS_PUMPKIN;
     public static Item SEAT;
@@ -221,179 +222,179 @@ public final class Items {
     }
 
     private static void setupItems(){
-        TOOL_SHOVEL_IRON = (new ShovelToolItem("tool.shovel.iron", "minecraft:item/tool_shovel_iron", 16384, ToolMaterial.iron));
-        TOOL_PICKAXE_IRON = (new PickaxeToolItem("tool.pickaxe.iron", "minecraft:item/tool_pickaxe_iron", 16385, ToolMaterial.iron));
-        TOOL_AXE_IRON = (new AxeToolItem("tool.axe.iron", "minecraft:item/tool_axe_iron", 16386, ToolMaterial.iron));
-        TOOL_FIRESTRIKER_IRON = (new FireStrikerItem("tool.firestriker", "minecraft:item/tool_firestriker_iron", 16387));
-        FOOD_APPLE = (new FoodItem("food.apple", "minecraft:item/food_apple", 16388, 4, 8, false, 8));
-        TOOL_BOW = (new BowItem("tool.bow", "minecraft:item/tool_bow", 16389));
+        TOOL_SHOVEL_IRON = (new ItemToolShovel("tool.shovel.iron", "minecraft:item/tool_shovel_iron", 16384, ToolMaterial.iron));
+        TOOL_PICKAXE_IRON = (new ItemToolPickaxe("tool.pickaxe.iron", "minecraft:item/tool_pickaxe_iron", 16385, ToolMaterial.iron));
+        TOOL_AXE_IRON = (new ItemToolAxe("tool.axe.iron", "minecraft:item/tool_axe_iron", 16386, ToolMaterial.iron));
+        TOOL_FIRESTRIKER_IRON = (new ItemFireStriker("tool.firestriker", "minecraft:item/tool_firestriker_iron", 16387));
+        FOOD_APPLE = (new ItemFood("food.apple", "minecraft:item/food_apple", 16388, 4, 8, false, 8));
+        TOOL_BOW = (new ItemBow("tool.bow", "minecraft:item/tool_bow", 16389));
         AMMO_ARROW = (new Item("ammo.arrow", "minecraft:item/ammo_arrow", 16390));
-        COAL = (new CoalItem("coal", "minecraft:item/coal", 16391));
+        COAL = (new ItemCoal("coal", "minecraft:item/coal", 16391));
         DIAMOND = (new Item("diamond", "minecraft:item/diamond", 16392));
         INGOT_IRON = (new Item("ingot.iron", "minecraft:item/ingot_iron", 16393));
         INGOT_GOLD = (new Item("ingot.gold", "minecraft:item/ingot_gold", 16394));
-        TOOL_SWORD_IRON = (new SwordToolItem("tool.sword.iron", "minecraft:item/tool_sword_iron", 16395, ToolMaterial.iron)).withTags(ItemTags.PREVENT_CREATIVE_MINING);
-        TOOL_SWORD_WOOD = (new SwordToolItem("tool.sword.wood", "minecraft:item/tool_sword_wood", 16396, ToolMaterial.wood)).withTags(ItemTags.PREVENT_CREATIVE_MINING);
-        TOOL_SHOVEL_WOOD = (new ShovelToolItem("tool.shovel.wood", "minecraft:item/tool_shovel_wood", 16397, ToolMaterial.wood));
-        TOOL_PICKAXE_WOOD = (new PickaxeToolItem("tool.pickaxe.wood", "minecraft:item/tool_pickaxe_wood", 16398, ToolMaterial.wood));
-        TOOL_AXE_WOOD = (new AxeToolItem("tool.axe.wood", "minecraft:item/tool_axe_wood", 16399, ToolMaterial.wood));
-        TOOL_SWORD_STONE = (new SwordToolItem("tool.sword.stone", "minecraft:item/tool_sword_stone", 16400, ToolMaterial.stone)).withTags(ItemTags.PREVENT_CREATIVE_MINING);
-        TOOL_SHOVEL_STONE = (new ShovelToolItem("tool.shovel.stone", "minecraft:item/tool_shovel_tone", 16401, ToolMaterial.stone));
-        TOOL_PICKAXE_STONE = (new PickaxeToolItem("tool.pickaxe.stone", "minecraft:item/tool_pickaxe_stone", 16402, ToolMaterial.stone));
-        TOOL_AXE_STONE = (new AxeToolItem("tool.axe.stone", "minecraft:item/tool_axe_stone", 16403, ToolMaterial.stone));
-        TOOL_SWORD_DIAMOND = (new SwordToolItem("tool.sword.diamond", "minecraft:item/tool_sword_diamond", 16404, ToolMaterial.diamond)).withTags(ItemTags.PREVENT_CREATIVE_MINING);
-        TOOL_SHOVEL_DIAMOND = (new ShovelToolItem("tool.shovel.diamond", "minecraft:item/tool_shovel_diamond", 16405, ToolMaterial.diamond));
-        TOOL_PICKAXE_DIAMOND = (new PickaxeToolItem("tool.pickaxe.diamond", "minecraft:item/tool_pickaxe_diamond", 16406, ToolMaterial.diamond));
-        TOOL_AXE_DIAMOND = (new AxeToolItem("tool.axe.diamond", "minecraft:item/tool_axe_diamond", 16407, ToolMaterial.diamond));
+        TOOL_SWORD_IRON = (new ItemToolSword("tool.sword.iron", "minecraft:item/tool_sword_iron", 16395, ToolMaterial.iron)).withTags(ItemTags.PREVENT_CREATIVE_MINING);
+        TOOL_SWORD_WOOD = (new ItemToolSword("tool.sword.wood", "minecraft:item/tool_sword_wood", 16396, ToolMaterial.wood)).withTags(ItemTags.PREVENT_CREATIVE_MINING);
+        TOOL_SHOVEL_WOOD = (new ItemToolShovel("tool.shovel.wood", "minecraft:item/tool_shovel_wood", 16397, ToolMaterial.wood));
+        TOOL_PICKAXE_WOOD = (new ItemToolPickaxe("tool.pickaxe.wood", "minecraft:item/tool_pickaxe_wood", 16398, ToolMaterial.wood));
+        TOOL_AXE_WOOD = (new ItemToolAxe("tool.axe.wood", "minecraft:item/tool_axe_wood", 16399, ToolMaterial.wood));
+        TOOL_SWORD_STONE = (new ItemToolSword("tool.sword.stone", "minecraft:item/tool_sword_stone", 16400, ToolMaterial.stone)).withTags(ItemTags.PREVENT_CREATIVE_MINING);
+        TOOL_SHOVEL_STONE = (new ItemToolShovel("tool.shovel.stone", "minecraft:item/tool_shovel_tone", 16401, ToolMaterial.stone));
+        TOOL_PICKAXE_STONE = (new ItemToolPickaxe("tool.pickaxe.stone", "minecraft:item/tool_pickaxe_stone", 16402, ToolMaterial.stone));
+        TOOL_AXE_STONE = (new ItemToolAxe("tool.axe.stone", "minecraft:item/tool_axe_stone", 16403, ToolMaterial.stone));
+        TOOL_SWORD_DIAMOND = (new ItemToolSword("tool.sword.diamond", "minecraft:item/tool_sword_diamond", 16404, ToolMaterial.diamond)).withTags(ItemTags.PREVENT_CREATIVE_MINING);
+        TOOL_SHOVEL_DIAMOND = (new ItemToolShovel("tool.shovel.diamond", "minecraft:item/tool_shovel_diamond", 16405, ToolMaterial.diamond));
+        TOOL_PICKAXE_DIAMOND = (new ItemToolPickaxe("tool.pickaxe.diamond", "minecraft:item/tool_pickaxe_diamond", 16406, ToolMaterial.diamond));
+        TOOL_AXE_DIAMOND = (new ItemToolAxe("tool.axe.diamond", "minecraft:item/tool_axe_diamond", 16407, ToolMaterial.diamond));
         STICK = (new Item("stick", "minecraft:item/stick", 16408));
         BOWL = (new Item("bowl", "minecraft:item/bowl", 16409));
-        FOOD_STEW_MUSHROOM = (new SoupItem("food.stew.mushroom", "minecraft:item/food_stew_mushroom", 16410, 10, 16));
-        TOOL_SWORD_GOLD = (new SwordToolItem("tool.sword.gold", "minecraft:item/tool_sword_gold", 16411, ToolMaterial.gold)).withTags(ItemTags.PREVENT_CREATIVE_MINING);
-        TOOL_SHOVEL_GOLD = (new ShovelToolItem("tool.shovel.gold", "minecraft:item/tool_shovel_gold", 16412, ToolMaterial.gold));
-        TOOL_PICKAXE_GOLD = (new PickaxeToolItem("tool.pickaxe.gold", "minecraft:item/tool_pickaxe_gold", 16413, ToolMaterial.gold));
-        TOOL_AXE_GOLD = (new AxeToolItem("tool.axe.gold", "minecraft:item/tool_axe_gold", 16414, ToolMaterial.gold));
+        FOOD_STEW_MUSHROOM = (new ItemSoup("food.stew.mushroom", "minecraft:item/food_stew_mushroom", 16410, 10, 16));
+        TOOL_SWORD_GOLD = (new ItemToolSword("tool.sword.gold", "minecraft:item/tool_sword_gold", 16411, ToolMaterial.gold)).withTags(ItemTags.PREVENT_CREATIVE_MINING);
+        TOOL_SHOVEL_GOLD = (new ItemToolShovel("tool.shovel.gold", "minecraft:item/tool_shovel_gold", 16412, ToolMaterial.gold));
+        TOOL_PICKAXE_GOLD = (new ItemToolPickaxe("tool.pickaxe.gold", "minecraft:item/tool_pickaxe_gold", 16413, ToolMaterial.gold));
+        TOOL_AXE_GOLD = (new ItemToolAxe("tool.axe.gold", "minecraft:item/tool_axe_gold", 16414, ToolMaterial.gold));
         STRING = (new Item("string", "minecraft:item/string", 16415));
         FEATHER_CHICKEN = (new Item("feather.chicken", "minecraft:item/feather_chicken", 16416));
         SULPHUR = (new Item("sulphur", "minecraft:item/sulphur", 16417));
-        TOOL_HOE_WOOD = (new HoeToolItem("tool.hoe.wood", "minecraft:item/tool_hoe_wood", 16418, ToolMaterial.wood));
-        TOOL_HOE_STONE = (new HoeToolItem("tool.hoe.stone", "minecraft:item/tool_hoe_stone", 16419, ToolMaterial.stone));
-        TOOL_HOE_IRON = (new HoeToolItem("tool.hoe.iron", "minecraft:item/tool_hoe_iron", 16420, ToolMaterial.iron));
-        TOOL_HOE_DIAMOND = (new HoeToolItem("tool.hoe.diamond", "minecraft:item/tool_hoe_diamond", 16421, ToolMaterial.diamond));
-        TOOL_HOE_GOLD = (new HoeToolItem("tool.hoe.gold", "minecraft:item/tool_hoe_gold", 16422, ToolMaterial.gold));
-        SEEDS_WHEAT = (new SeedsItem("seeds.wheat", "minecraft:item/seeds_wheat", 16423, Blocks.CROPS_WHEAT)).withTags(ItemTags.CHICKENS_FAVOURITE_ITEM);
+        TOOL_HOE_WOOD = (new ItemToolHoe("tool.hoe.wood", "minecraft:item/tool_hoe_wood", 16418, ToolMaterial.wood));
+        TOOL_HOE_STONE = (new ItemToolHoe("tool.hoe.stone", "minecraft:item/tool_hoe_stone", 16419, ToolMaterial.stone));
+        TOOL_HOE_IRON = (new ItemToolHoe("tool.hoe.iron", "minecraft:item/tool_hoe_iron", 16420, ToolMaterial.iron));
+        TOOL_HOE_DIAMOND = (new ItemToolHoe("tool.hoe.diamond", "minecraft:item/tool_hoe_diamond", 16421, ToolMaterial.diamond));
+        TOOL_HOE_GOLD = (new ItemToolHoe("tool.hoe.gold", "minecraft:item/tool_hoe_gold", 16422, ToolMaterial.gold));
+        SEEDS_WHEAT = (new ItemSeeds("seeds.wheat", "minecraft:item/seeds_wheat", 16423, Blocks.CROPS_WHEAT)).withTags(ItemTags.CHICKENS_FAVOURITE_ITEM);
         WHEAT = (new Item("wheat", "minecraft:item/wheat", 16424)).withTags(ItemTags.COWS_FAVOURITE_ITEM);
-        FOOD_BREAD = (new FoodItem("food.bread", "minecraft:item/food_bread", 16425, 5, 12, false, 8));
+        FOOD_BREAD = (new ItemFood("food.bread", "minecraft:item/food_bread", 16425, 5, 12, false, 8));
 
-        ARMOR_HELMET_LEATHER = (new ArmorItem("armor.helmet.leather", "minecraft:item/armor_helmet_leather", 16426, ArmorMaterial.LEATHER, IArmorItem.PIECE_HEAD));
-        ARMOR_CHESTPLATE_LEATHER = (new ArmorItem("armor.chestplate.leather", "minecraft:item/armor_chestplate_leather", 16427, ArmorMaterial.LEATHER, IArmorItem.PIECE_CHEST));
-        ARMOR_LEGGINGS_LEATHER = (new ArmorItem("armor.leggings.leather", "minecraft:item/armor_leggings_leather", 16428, ArmorMaterial.LEATHER, IArmorItem.PIECE_LEGS));
-        ARMOR_BOOTS_LEATHER = (new ArmorItem("armor.boots.leather", "minecraft:item/armor_boots_leather", 16429, ArmorMaterial.LEATHER, IArmorItem.PIECE_BOOTS));
+        ARMOR_HELMET_LEATHER = (new ItemArmor("armor.helmet.leather", "minecraft:item/armor_helmet_leather", 16426, ArmorMaterial.LEATHER, IArmorItem.PIECE_HEAD));
+        ARMOR_CHESTPLATE_LEATHER = (new ItemArmor("armor.chestplate.leather", "minecraft:item/armor_chestplate_leather", 16427, ArmorMaterial.LEATHER, IArmorItem.PIECE_CHEST));
+        ARMOR_LEGGINGS_LEATHER = (new ItemArmor("armor.leggings.leather", "minecraft:item/armor_leggings_leather", 16428, ArmorMaterial.LEATHER, IArmorItem.PIECE_LEGS));
+        ARMOR_BOOTS_LEATHER = (new ItemArmor("armor.boots.leather", "minecraft:item/armor_boots_leather", 16429, ArmorMaterial.LEATHER, IArmorItem.PIECE_BOOTS));
 
-        ARMOR_HELMET_CHAINMAIL = (new ArmorItem("armor.helmet.chainmail", "minecraft:item/armor_helmet_chainmail", 16430, ArmorMaterial.CHAINMAIL, IArmorItem.PIECE_HEAD));
-        ARMOR_CHESTPLATE_CHAINMAIL = (new ArmorItem("armor.chestplate.chainmail", "minecraft:item/armor_chestplate_chainmail", 16431, ArmorMaterial.CHAINMAIL, IArmorItem.PIECE_CHEST));
-        ARMOR_LEGGINGS_CHAINMAIL = (new ArmorItem("armor.leggings.chainmail", "minecraft:item/armor_leggings_chainmail", 16432, ArmorMaterial.CHAINMAIL, IArmorItem.PIECE_LEGS));
-        ARMOR_BOOTS_CHAINMAIL = (new ArmorItem("armor.boots.chainmail", "minecraft:item/armor_boots_chainmail", 16433, ArmorMaterial.CHAINMAIL, IArmorItem.PIECE_BOOTS));
+        ARMOR_HELMET_CHAINMAIL = (new ItemArmor("armor.helmet.chainmail", "minecraft:item/armor_helmet_chainmail", 16430, ArmorMaterial.CHAINMAIL, IArmorItem.PIECE_HEAD));
+        ARMOR_CHESTPLATE_CHAINMAIL = (new ItemArmor("armor.chestplate.chainmail", "minecraft:item/armor_chestplate_chainmail", 16431, ArmorMaterial.CHAINMAIL, IArmorItem.PIECE_CHEST));
+        ARMOR_LEGGINGS_CHAINMAIL = (new ItemArmor("armor.leggings.chainmail", "minecraft:item/armor_leggings_chainmail", 16432, ArmorMaterial.CHAINMAIL, IArmorItem.PIECE_LEGS));
+        ARMOR_BOOTS_CHAINMAIL = (new ItemArmor("armor.boots.chainmail", "minecraft:item/armor_boots_chainmail", 16433, ArmorMaterial.CHAINMAIL, IArmorItem.PIECE_BOOTS));
 
-        ARMOR_HELMET_IRON = (new ArmorItem("armor.helmet.iron", "minecraft:item/armor_helmet_iron", 16434, ArmorMaterial.IRON, IArmorItem.PIECE_HEAD));
-        ARMOR_CHESTPLATE_IRON = (new ArmorItem("armor.chestplate.iron", "minecraft:item/armor_chestplate_iron", 16435, ArmorMaterial.IRON, IArmorItem.PIECE_CHEST));
-        ARMOR_LEGGINGS_IRON = (new ArmorItem("armor.leggings.iron", "minecraft:item/armor_leggings_iron", 16436, ArmorMaterial.IRON, IArmorItem.PIECE_LEGS));
-        ARMOR_BOOTS_IRON = (new ArmorItem("armor.boots.iron", "minecraft:item/armor_boots_iron", 16437, ArmorMaterial.IRON, IArmorItem.PIECE_BOOTS));
+        ARMOR_HELMET_IRON = (new ItemArmor("armor.helmet.iron", "minecraft:item/armor_helmet_iron", 16434, ArmorMaterial.IRON, IArmorItem.PIECE_HEAD));
+        ARMOR_CHESTPLATE_IRON = (new ItemArmor("armor.chestplate.iron", "minecraft:item/armor_chestplate_iron", 16435, ArmorMaterial.IRON, IArmorItem.PIECE_CHEST));
+        ARMOR_LEGGINGS_IRON = (new ItemArmor("armor.leggings.iron", "minecraft:item/armor_leggings_iron", 16436, ArmorMaterial.IRON, IArmorItem.PIECE_LEGS));
+        ARMOR_BOOTS_IRON = (new ItemArmor("armor.boots.iron", "minecraft:item/armor_boots_iron", 16437, ArmorMaterial.IRON, IArmorItem.PIECE_BOOTS));
 
-        ARMOR_HELMET_DIAMOND = (new ArmorItem("armor.helmet.diamond", "minecraft:item/armor_helmet_diamond", 16438, ArmorMaterial.DIAMOND, IArmorItem.PIECE_HEAD));
-        ARMOR_CHESTPLATE_DIAMOND = (new ArmorItem("armor.chestplate.diamond", "minecraft:item/armor_chestplate_diamond", 16439, ArmorMaterial.DIAMOND, IArmorItem.PIECE_CHEST));
-        ARMOR_LEGGINGS_DIAMOND = (new ArmorItem("armor.leggings.diamond", "minecraft:item/armor_leggings_diamond", 16440, ArmorMaterial.DIAMOND, IArmorItem.PIECE_LEGS));
-        ARMOR_BOOTS_DIAMOND = (new ArmorItem("armor.boots.diamond", "minecraft:item/armor_boots_diamond", 16441, ArmorMaterial.DIAMOND, IArmorItem.PIECE_BOOTS));
+        ARMOR_HELMET_DIAMOND = (new ItemArmor("armor.helmet.diamond", "minecraft:item/armor_helmet_diamond", 16438, ArmorMaterial.DIAMOND, IArmorItem.PIECE_HEAD));
+        ARMOR_CHESTPLATE_DIAMOND = (new ItemArmor("armor.chestplate.diamond", "minecraft:item/armor_chestplate_diamond", 16439, ArmorMaterial.DIAMOND, IArmorItem.PIECE_CHEST));
+        ARMOR_LEGGINGS_DIAMOND = (new ItemArmor("armor.leggings.diamond", "minecraft:item/armor_leggings_diamond", 16440, ArmorMaterial.DIAMOND, IArmorItem.PIECE_LEGS));
+        ARMOR_BOOTS_DIAMOND = (new ItemArmor("armor.boots.diamond", "minecraft:item/armor_boots_diamond", 16441, ArmorMaterial.DIAMOND, IArmorItem.PIECE_BOOTS));
 
-        ARMOR_HELMET_GOLD = (new ArmorItem("armor.helmet.gold", "minecraft:item/armor_helmet_gold", 16442, ArmorMaterial.GOLD, IArmorItem.PIECE_HEAD));
-        ARMOR_CHESTPLATE_GOLD = (new ArmorItem("armor.chestplate.gold", "minecraft:item/armor_chestplate_gold", 16443, ArmorMaterial.GOLD, IArmorItem.PIECE_CHEST));
-        ARMOR_LEGGINGS_GOLD = (new ArmorItem("armor.leggings.gold", "minecraft:item/armor_leggings_gold", 16444, ArmorMaterial.GOLD, IArmorItem.PIECE_LEGS));
-        ARMOR_BOOTS_GOLD = (new ArmorItem("armor.boots.gold", "minecraft:item/armor_boots_gold", 16445, ArmorMaterial.GOLD, IArmorItem.PIECE_BOOTS));
+        ARMOR_HELMET_GOLD = (new ItemArmor("armor.helmet.gold", "minecraft:item/armor_helmet_gold", 16442, ArmorMaterial.GOLD, IArmorItem.PIECE_HEAD));
+        ARMOR_CHESTPLATE_GOLD = (new ItemArmor("armor.chestplate.gold", "minecraft:item/armor_chestplate_gold", 16443, ArmorMaterial.GOLD, IArmorItem.PIECE_CHEST));
+        ARMOR_LEGGINGS_GOLD = (new ItemArmor("armor.leggings.gold", "minecraft:item/armor_leggings_gold", 16444, ArmorMaterial.GOLD, IArmorItem.PIECE_LEGS));
+        ARMOR_BOOTS_GOLD = (new ItemArmor("armor.boots.gold", "minecraft:item/armor_boots_gold", 16445, ArmorMaterial.GOLD, IArmorItem.PIECE_BOOTS));
         FLINT = (new Item("flint", "minecraft:item/flint", 16446));
-        FOOD_PORKCHOP_RAW = (new FoodItem("food.porkchop.raw", "minecraft:item/food_porkchop_raw", 16447, 3, 16, true, 4));
-        FOOD_PORKCHOP_COOKED = (new FoodItem("food.porkchop.cooked", "minecraft:item/food_porkchop_cooked", 16448, 8, 16, true, 4));
-        PAINTING = (new PaintingItem("painting", "minecraft:item/painting", 16449));
-        FOOD_APPLE_GOLD = (new FoodItem("food.apple.gold", "minecraft:item/food_apple_gold", 16450, 42, 0, false, 1));
-        SIGN = (new SignItem("sign", "minecraft:item/sign", 16451));
-        DOOR_OAK = (new DoorItem("door.oak", "minecraft:item/door_oak", 16452, Blocks.DOOR_PLANKS_OAK_BOTTOM, Blocks.DOOR_PLANKS_OAK_TOP));
-        BUCKET = (new EmptyBucketItem("bucket", "minecraft:item/bucket", 16453));
-        BUCKET_WATER = (new BucketItem("bucket.water", "minecraft:item/bucket_water", 16454, Blocks.FLUID_WATER_FLOWING)).setContainerItem(BUCKET);
-        BUCKET_LAVA = (new BucketItem("bucket.lava", "minecraft:item/bucket_lava", 16455, Blocks.FLUID_LAVA_FLOWING)).setContainerItem(BUCKET);
-        MINECART = (new MinecartItem("minecart", "minecraft:item/minecart", 16456, MinecartEntity.PASSENGER_CART));
-        SADDLE = (new SaddleItem("saddle", "minecraft:item/saddle", 16457));
-        DOOR_IRON = (new DoorItem("door.iron", "minecraft:item/door_iron", 16458, Blocks.DOOR_IRON_BOTTOM, Blocks.DOOR_IRON_TOP));
-        DUST_REDSTONE = (new PlaceableItem("dust.redstone", "minecraft:item/dust_redstone", 16459, Blocks.WIRE_REDSTONE));
-        AMMO_SNOWBALL = (new SnowballItem("ammo.snowball", "minecraft:item/ammo_snowball", 16460));
-        BOAT = (new BoatItem("boat", "minecraft:item/boat", 16461));
+        FOOD_PORKCHOP_RAW = (new ItemFood("food.porkchop.raw", "minecraft:item/food_porkchop_raw", 16447, 3, 16, true, 4));
+        FOOD_PORKCHOP_COOKED = (new ItemFood("food.porkchop.cooked", "minecraft:item/food_porkchop_cooked", 16448, 8, 16, true, 4));
+        PAINTING = (new ItemPainting("painting", "minecraft:item/painting", 16449));
+        FOOD_APPLE_GOLD = (new ItemFood("food.apple.gold", "minecraft:item/food_apple_gold", 16450, 42, 0, false, 1));
+        SIGN = (new ItemSign("sign", "minecraft:item/sign", 16451));
+        DOOR_OAK = (new ItemDoor("door.oak", "minecraft:item/door_oak", 16452, Blocks.DOOR_PLANKS_OAK_BOTTOM, Blocks.DOOR_PLANKS_OAK_TOP));
+        BUCKET = (new ItemBucketEmpty("bucket", "minecraft:item/bucket", 16453));
+        BUCKET_WATER = (new ItemBucket("bucket.water", "minecraft:item/bucket_water", 16454, Blocks.FLUID_WATER_FLOWING)).setContainerItem(BUCKET);
+        BUCKET_LAVA = (new ItemBucket("bucket.lava", "minecraft:item/bucket_lava", 16455, Blocks.FLUID_LAVA_FLOWING)).setContainerItem(BUCKET);
+        MINECART = (new ItemMinecart("minecart", "minecraft:item/minecart", 16456, MinecartEntity.PASSENGER_CART));
+        SADDLE = (new ItemSaddle("saddle", "minecraft:item/saddle", 16457));
+        DOOR_IRON = (new ItemDoor("door.iron", "minecraft:item/door_iron", 16458, Blocks.DOOR_IRON_BOTTOM, Blocks.DOOR_IRON_TOP));
+        DUST_REDSTONE = (new ItemPlaceable("dust.redstone", "minecraft:item/dust_redstone", 16459, Blocks.WIRE_REDSTONE));
+        AMMO_SNOWBALL = (new ItemSnowball("ammo.snowball", "minecraft:item/ammo_snowball", 16460));
+        BOAT = (new ItemBoat("boat", "minecraft:item/boat", 16461));
         LEATHER = (new Item("leather", "minecraft:item/leather", 16462));
-        BUCKET_MILK = (new BucketItem("bucket.milk", "minecraft:item/bucket_milk", 16463, null)).setContainerItem(BUCKET);
+        BUCKET_MILK = (new ItemBucket("bucket.milk", "minecraft:item/bucket_milk", 16463, null)).setContainerItem(BUCKET);
         BRICK_CLAY = (new Item("brick.clay", "minecraft:item/brick_clay", 16464));
         CLAY = (new Item("clay", "minecraft:item/clay", 16465));
-        SUGARCANE = (new PlaceableItem("sugarcane", "minecraft:item/sugarcane", 16466, Blocks.SUGARCANE));
+        SUGARCANE = (new ItemPlaceable("sugarcane", "minecraft:item/sugarcane", 16466, Blocks.SUGARCANE));
         PAPER = (new Item("paper", "minecraft:item/paper", 16467));
         BOOK = (new Item("book", "minecraft:item/book", 16468));
         SLIMEBALL = (new Item("slimeball", "minecraft:item/slimeball", 16469));
-        MINECART_CHEST = (new MinecartItem("minecart.chest", "minecraft:item/minecart_chest", 16470, MinecartEntity.CHEST_CART));
-        MINECART_FURNACE = (new MinecartItem("minecart.furnace", "minecraft:item/minecart_furnace", 16471, MinecartEntity.FURNACE_CART));
-        EGG_CHICKEN = (new EggItem("egg.chicken", "minecraft:item/egg_chicken", 16472));
+        MINECART_CHEST = (new ItemMinecart("minecart.chest", "minecraft:item/minecart_chest", 16470, MinecartEntity.CHEST_CART));
+        MINECART_FURNACE = (new ItemMinecart("minecart.furnace", "minecraft:item/minecart_furnace", 16471, MinecartEntity.FURNACE_CART));
+        EGG_CHICKEN = (new ItemEgg("egg.chicken", "minecraft:item/egg_chicken", 16472));
         TOOL_COMPASS = (new Item("tool.compass", "minecraft:item/tool_compass", 16473));
-        TOOL_FISHINGROD = (new FishingRodItem("tool.fishingrod", "minecraft:item/tool_fishingrod", 16474));
+        TOOL_FISHINGROD = (new ItemFishingRod("tool.fishingrod", "minecraft:item/tool_fishingrod", 16474));
         TOOL_CLOCK = (new Item("tool.clock", "minecraft:item/tool_clock", 16475));
         DUST_GLOWSTONE = (new Item("dust.glowstone", "minecraft:item/dust_glowstone", 16476));
-        FOOD_FISH_RAW = (new FoodItem("food.fish.raw", "minecraft:item/food_fish_raw", 16477, 2, 12, false, 8));
-        FOOD_FISH_COOKED = (new FoodItem("food.fish.cooked", "minecraft:item/food_fish_cooked", 16478, 5, 12, false, 8));
-        DYE = (new DyeItem("dye", "minecraft:item/dye", 16479));
+        FOOD_FISH_RAW = (new ItemFood("food.fish.raw", "minecraft:item/food_fish_raw", 16477, 2, 12, false, 8));
+        FOOD_FISH_COOKED = (new ItemFood("food.fish.cooked", "minecraft:item/food_fish_cooked", 16478, 5, 12, false, 8));
+        DYE = (new ItemDye("dye", "minecraft:item/dye", 16479));
         BONE = (new Item("bone", "minecraft:item/bone", 16480));
         DUST_SUGAR = (new Item("dust.sugar", "minecraft:item/dust_sugar", 16481));
-        FOOD_CAKE = (new PlaceableItem("food.cake", "minecraft:item/food_cake", 16482, Blocks.CAKE)).setMaxStackSize(1);
-        BED = (new BedItem("bed", "minecraft:item/bed", 16483)).setMaxStackSize(1);
-        REPEATER = (new PlaceableItem("repeater", "minecraft:item/repeater", 16484, Blocks.REPEATER_IDLE));
-        FOOD_COOKIE = (new FoodItem("food.cookie", "minecraft:item/food_cookie", 16485, 1, 0, false, 16));
-        MAP = new MapItem("map", "minecraft:item/map", 16486);
-        TOOL_SHEARS = new ToolShearsItem("tool.shears", "minecraft:item/tool_shears", 16487, ToolMaterial.iron);
-        RECORD_13 = (new MusicDiscItem("record.13", "minecraft:item/record_13", 18384, "record.13", "C418"));
-        RECORD_CAT = (new MusicDiscItem("record.cat", "minecraft:item/record_cat", 18385, "record.cat", "C418"));
-        RECORD_BLOCKS = (new MusicDiscItem("record.blocks", "minecraft:item/record_blocks", 18386, "record.blocks", "C418"));
-        RECORD_CHIRP = (new MusicDiscItem("record.chirp", "minecraft:item/record_chirp", 18387, "record.chirp", "C418"));
-        RECORD_FAR = (new MusicDiscItem("record.far", "minecraft:item/record_far", 18388, "record.far", "C418"));
-        RECORD_MALL = (new MusicDiscItem("record.mall", "minecraft:item/record_mall", 18389, "record.mall", "C418"));
-        RECORD_MELLOHI = (new MusicDiscItem("record.mellohi", "minecraft:item/record_mellohi", 18390, "record.mellohi", "C418"));
-        RECORD_STAL = (new MusicDiscItem("record.stal", "minecraft:item/record_stal", 18391, "record.stal", "C418"));
-        RECORD_STRAD = (new MusicDiscItem("record.strad", "minecraft:item/record_strad", 18392, "record.strad", "C418"));
-        RECORD_WARD = (new MusicDiscItem("record.ward", "minecraft:item/record_ward", 18393, "record.ward", "C418"));
-        RECORD_WAIT = (new MusicDiscItem("record.wait", "minecraft:item/record_wait", 18394, "record.wait", "C418"));
-        RECORD_DOG = (new MusicDiscItem("record.dog", "minecraft:item/record_dog", 18395, "record.dog", "C418"));
+        FOOD_CAKE = (new ItemPlaceable("food.cake", "minecraft:item/food_cake", 16482, Blocks.CAKE)).setMaxStackSize(1);
+        BED = (new ItemBed("bed", "minecraft:item/bed", 16483)).setMaxStackSize(1);
+        REPEATER = (new ItemPlaceable("repeater", "minecraft:item/repeater", 16484, Blocks.REPEATER_IDLE));
+        FOOD_COOKIE = (new ItemFood("food.cookie", "minecraft:item/food_cookie", 16485, 1, 0, false, 16));
+        MAP = new ItemMap("map", "minecraft:item/map", 16486);
+        TOOL_SHEARS = new ItemToolShears("tool.shears", "minecraft:item/tool_shears", 16487, ToolMaterial.iron);
+        RECORD_13 = (new ItemDiscMusic("record.13", "minecraft:item/record_13", 18384, "record.13", "C418"));
+        RECORD_CAT = (new ItemDiscMusic("record.cat", "minecraft:item/record_cat", 18385, "record.cat", "C418"));
+        RECORD_BLOCKS = (new ItemDiscMusic("record.blocks", "minecraft:item/record_blocks", 18386, "record.blocks", "C418"));
+        RECORD_CHIRP = (new ItemDiscMusic("record.chirp", "minecraft:item/record_chirp", 18387, "record.chirp", "C418"));
+        RECORD_FAR = (new ItemDiscMusic("record.far", "minecraft:item/record_far", 18388, "record.far", "C418"));
+        RECORD_MALL = (new ItemDiscMusic("record.mall", "minecraft:item/record_mall", 18389, "record.mall", "C418"));
+        RECORD_MELLOHI = (new ItemDiscMusic("record.mellohi", "minecraft:item/record_mellohi", 18390, "record.mellohi", "C418"));
+        RECORD_STAL = (new ItemDiscMusic("record.stal", "minecraft:item/record_stal", 18391, "record.stal", "C418"));
+        RECORD_STRAD = (new ItemDiscMusic("record.strad", "minecraft:item/record_strad", 18392, "record.strad", "C418"));
+        RECORD_WARD = (new ItemDiscMusic("record.ward", "minecraft:item/record_ward", 18393, "record.ward", "C418"));
+        RECORD_WAIT = (new ItemDiscMusic("record.wait", "minecraft:item/record_wait", 18394, "record.wait", "C418"));
+        RECORD_DOG = (new ItemDiscMusic("record.dog", "minecraft:item/record_dog", 18395, "record.dog", "C418"));
         NETHERCOAL = (new Item("nethercoal", "minecraft:item/nethercoal", 16488));
-        ARMOR_HELMET_STEEL = (new ArmorItem("armor.helmet.steel", "minecraft:item/armor_helmet_steel", 16489, ArmorMaterial.STEEL, IArmorItem.PIECE_HEAD));
-        ARMOR_CHESTPLATE_STEEL = (new ArmorItem("armor.chestplate.steel", "minecraft:item/armor_chestplate_steel", 16490, ArmorMaterial.STEEL, IArmorItem.PIECE_CHEST));
-        ARMOR_LEGGINGS_STEEL = (new ArmorItem("armor.leggings.steel", "minecraft:item/armor_leggings_steel", 16491, ArmorMaterial.STEEL, IArmorItem.PIECE_LEGS));
-        ARMOR_BOOTS_STEEL = (new ArmorItem("armor.boots.steel", "minecraft:item/armor_boots_steel", 16492, ArmorMaterial.STEEL, IArmorItem.PIECE_BOOTS));
+        ARMOR_HELMET_STEEL = (new ItemArmor("armor.helmet.steel", "minecraft:item/armor_helmet_steel", 16489, ArmorMaterial.STEEL, IArmorItem.PIECE_HEAD));
+        ARMOR_CHESTPLATE_STEEL = (new ItemArmor("armor.chestplate.steel", "minecraft:item/armor_chestplate_steel", 16490, ArmorMaterial.STEEL, IArmorItem.PIECE_CHEST));
+        ARMOR_LEGGINGS_STEEL = (new ItemArmor("armor.leggings.steel", "minecraft:item/armor_leggings_steel", 16491, ArmorMaterial.STEEL, IArmorItem.PIECE_LEGS));
+        ARMOR_BOOTS_STEEL = (new ItemArmor("armor.boots.steel", "minecraft:item/armor_boots_steel", 16492, ArmorMaterial.STEEL, IArmorItem.PIECE_BOOTS));
 
-        TOOL_SWORD_STEEL = (new SwordToolItem("tool.sword.steel", "minecraft:item/tool_sword_steel", 16493, ToolMaterial.steel)).withTags(ItemTags.PREVENT_CREATIVE_MINING);
-        TOOL_SHOVEL_STEEL = (new ShovelToolItem("tool.shovel.steel", "minecraft:item/tool_shovel_steel", 16494, ToolMaterial.steel));
-        TOOL_PICKAXE_STEEL = (new PickaxeToolItem("tool.pickaxe.steel", "minecraft:item/tool_pickaxe_steel", 16495, ToolMaterial.steel));
-        TOOL_AXE_STEEL = (new AxeToolItem("tool.axe.steel", "minecraft:item/tool_axe_steel", 16496, ToolMaterial.steel));
-        TOOL_HOE_STEEL = (new HoeToolItem("tool.hoe.steel", "minecraft:item/tool_hoe_steel", 16497, ToolMaterial.steel));
+        TOOL_SWORD_STEEL = (new ItemToolSword("tool.sword.steel", "minecraft:item/tool_sword_steel", 16493, ToolMaterial.steel)).withTags(ItemTags.PREVENT_CREATIVE_MINING);
+        TOOL_SHOVEL_STEEL = (new ItemToolShovel("tool.shovel.steel", "minecraft:item/tool_shovel_steel", 16494, ToolMaterial.steel));
+        TOOL_PICKAXE_STEEL = (new ItemToolPickaxe("tool.pickaxe.steel", "minecraft:item/tool_pickaxe_steel", 16495, ToolMaterial.steel));
+        TOOL_AXE_STEEL = (new ItemToolAxe("tool.axe.steel", "minecraft:item/tool_axe_steel", 16496, ToolMaterial.steel));
+        TOOL_HOE_STEEL = (new ItemToolHoe("tool.hoe.steel", "minecraft:item/tool_hoe_steel", 16497, ToolMaterial.steel));
 
         INGOT_STEEL = (new Item("ingot.steel", "minecraft:item/ingot_steel", 16498));
         INGOT_STEEL_CRUDE = (new Item("ingot.steel.crude", "minecraft:item/ingot_steel_crude", 16499));
         AMMO_FIREBALL = (new Item("ammo.fireball", "minecraft:item/ammo_fireball", 16500)).withTags(ItemTags.NOT_IN_CREATIVE_MENU);
-        ARMOR_QUIVER_GOLD = (new EndlessQuiverItem("armor.quiver.gold", "minecraft:item/armor_quiver_gold", 16501));
-        HANDCANNON_UNLOADED = (new UnloadedHandCannonItem("handcannon.unloaded", "minecraft:item/handcannon_unloaded", 16502));
+        ARMOR_QUIVER_GOLD = (new ItemQuiverEndless("armor.quiver.gold", "minecraft:item/armor_quiver_gold", 16501));
+        HANDCANNON_UNLOADED = (new ItemHandCannonUnloaded("handcannon.unloaded", "minecraft:item/handcannon_unloaded", 16502));
         CHAINLINK = (new Item("chainlink", "minecraft:item/chainlink", 16503));
         CLOTH = (new Item("cloth", "minecraft:item/cloth", 16504));
         AMMO_CHARGE_EXPLOSIVE = (new Item("ammo.charge.explosive", "minecraft:item/ammo_charge_explosive", 16505)).setMaxStackSize(16);
-        HANDCANNON_LOADED = (new LoadedHandCannonItem("handcannon.loaded", "minecraft:item/handcannon_loaded", 16506)).withTags(ItemTags.NOT_IN_CREATIVE_MENU);
+        HANDCANNON_LOADED = (new ItemHandCannonLoaded("handcannon.loaded", "minecraft:item/handcannon_loaded", 16506)).withTags(ItemTags.NOT_IN_CREATIVE_MENU);
         AMMO_ARROW_GOLD = (new Item("ammo.arrow.gold", "minecraft:item/ammo_arrow_gold", 16507));
-        ARMOR_QUIVER = (new QuiverItem("armor.quiver", "minecraft:item/armor_quiver", 16508));
+        ARMOR_QUIVER = (new ItemQuiver("armor.quiver", "minecraft:item/armor_quiver", 16508));
         TOOL_CALENDAR = (new Item("tool.calendar", "minecraft:item/tool_calendar", 16509));
         ORE_RAW_GOLD = (new Item("ore.raw.gold", "minecraft:item/ore_raw_gold", 16510));
         ORE_RAW_IRON = (new Item("ore.raw.iron", "minecraft:item/ore_raw_iron", 16511));
         QUARTZ = (new Item("quartz", "minecraft:item/quartz", 16512));
         OLIVINE = (new Item("olivine", "minecraft:item/olivine", 16513));
-        AMMO_PEBBLE = (new PebbleItem("ammo.pebble", "minecraft:item/ammo_pebble", 16514));
-        FOOD_CHERRY = (new FoodItem("food.cherry", "minecraft:item/food_cherry", 16515, 2, 2, false, 2));
-        BUCKET_ICECREAM = (new IceCreamBucketItem("bucket.icecream", "minecraft:item/bucket_icecream", 16516, 10, 4)).setContainerItem(BUCKET);
+        AMMO_PEBBLE = (new ItemPebble("ammo.pebble", "minecraft:item/ammo_pebble", 16514));
+        FOOD_CHERRY = (new ItemFood("food.cherry", "minecraft:item/food_cherry", 16515, 2, 2, false, 2));
+        BUCKET_ICECREAM = (new ItemBucketIceCream("bucket.icecream", "minecraft:item/bucket_icecream", 16516, 10, 4)).setContainerItem(BUCKET);
         AMMO_ARROW_PURPLE = (new Item("ammo.arrow.purple", "minecraft:item/ammo_arrow_purple", 16517)).withTags(ItemTags.NOT_IN_CREATIVE_MENU);
-        LABEL = (new LabelItem("label", "minecraft:item/label", 16518));
-        JAR = (new JarItem("jar", "minecraft:item/jar", 16519));
-        LANTERN_FIREFLY_GREEN = (new PlaceableItem("lantern.firefly.green", "minecraft:item/lantern_firefly_green", 16520, Blocks.LANTERN_FIREFLY_GREEN));
-        LANTERN_FIREFLY_BLUE = (new PlaceableItem("lantern.firefly.blue", "minecraft:item/lantern_firefly_blue", 16521, Blocks.LANTERN_FIREFLY_BLUE));
-        LANTERN_FIREFLY_ORANGE = (new PlaceableItem("lantern.firefly.orange", "minecraft:item/lantern_firefly_orange", 16522, Blocks.LANTERN_FIREFLY_ORANGE));
-        LANTERN_FIREFLY_RED = (new PlaceableItem("lantern.firefly.red", "minecraft:item/lantern_firefly_red", 16523, Blocks.LANTERN_FIREFLY_RED));
-        //    candleSoulwax = new PlaceableItem("candle.soulwax", 16524, Block.candleSoulwax).setIconCoord(5, 10);
-        BASKET = new PlaceableItem("basket", "minecraft:item/basket", 16525, Blocks.BASKET);
-        FLAG = new FlagItem("flag", "minecraft:item/flag", 16526);
-        ARMOR_BOOTS_ICESKATES = new IceSkatesItem("armor.boots.iceskates", "minecraft:item/armor_boots_iceskates", 16527);
-        TOOL_SHEARS_STEEL = (ToolShearsItem)(new ToolShearsItem("tool.shears.steel", "minecraft:item/tool_shears_steel", 16528, ToolMaterial.steel)).setMaxDamage(ToolMaterial.steel.getDurability());
-        TOOL_FIRESTRIKER_STEEL = (new FireStrikerItem("tool.firestriker.steel", "minecraft:item/tool_firestriker_steel", 16529)).setMaxDamage(ToolMaterial.steel.getDurability());
-        SEEDS_PUMPKIN = (new SeedsItem("seeds.pumpkin", "minecraft:item/seeds_pumpkin", 16530, Blocks.CROPS_PUMPKIN)).withTags(ItemTags.CHICKENS_FAVOURITE_ITEM);
-        SEAT = new PlaceableItem("seat", "minecraft:item/seat", 16531, Blocks.SEAT).setMaxStackSize(64);
-        DOOR_OAK_PAINTED = (new PaintedDoorItem("door.oak.painted", "minecraft:item/door_oak_painted", 16532, Blocks.DOOR_PLANKS_PAINTED_BOTTOM, Blocks.DOOR_PLANKS_PAINTED_TOP));
-        DOOR_GLASS = (new DoorItem("door.glass", "minecraft:item/door_glass", 16533, Blocks.DOOR_GLASS_BOTTOM, Blocks.DOOR_GLASS_TOP));
-        ROPE = new RopeItem("rope", "minecraft:item/rope", 16534, Blocks.ROPE);
-        FOOD_PUMPKIN_PIE = (new PlaceableItem("food.pumpkin_pie", "minecraft:item/food_pumpkin_pie", 16535, Blocks.PUMPKIN_PIE)).setMaxStackSize(1);
-        WAND_MONSTER_SPAWNER = (new SpawnerWandItem("wand.monster", "minecraft:item/wand_monster", 16536)).setMaxStackSize(1);
-        DOOR_STEEL = (new DoorItem("door.steel", "minecraft:item/door_steel", 16537, Blocks.DOOR_STEEL_BOTTOM, Blocks.DOOR_STEEL_TOP));
-        PAINTBRUSH = new PaintBrushItem("paintbrush", "minecraft:item/paintbrush", 16538);
+        LABEL = (new ItemLabel("label", "minecraft:item/label", 16518));
+        JAR = (new ItemJar("jar", "minecraft:item/jar", 16519));
+        LANTERN_FIREFLY_GREEN = (new ItemPlaceable("lantern.firefly.green", "minecraft:item/lantern_firefly_green", 16520, Blocks.LANTERN_FIREFLY_GREEN));
+        LANTERN_FIREFLY_BLUE = (new ItemPlaceable("lantern.firefly.blue", "minecraft:item/lantern_firefly_blue", 16521, Blocks.LANTERN_FIREFLY_BLUE));
+        LANTERN_FIREFLY_ORANGE = (new ItemPlaceable("lantern.firefly.orange", "minecraft:item/lantern_firefly_orange", 16522, Blocks.LANTERN_FIREFLY_ORANGE));
+        LANTERN_FIREFLY_RED = (new ItemPlaceable("lantern.firefly.red", "minecraft:item/lantern_firefly_red", 16523, Blocks.LANTERN_FIREFLY_RED));
+        //    candleSoulwax = new ItemPlaceable("candle.soulwax", 16524, Block.candleSoulwax).setIconCoord(5, 10);
+        BASKET = new ItemPlaceable("basket", "minecraft:item/basket", 16525, Blocks.BASKET);
+        FLAG = new ItemFlag("flag", "minecraft:item/flag", 16526);
+        ARMOR_BOOTS_ICESKATES = new ItemIceSkates("armor.boots.iceskates", "minecraft:item/armor_boots_iceskates", 16527);
+        TOOL_SHEARS_STEEL = (ItemToolShears)(new ItemToolShears("tool.shears.steel", "minecraft:item/tool_shears_steel", 16528, ToolMaterial.steel)).setMaxDamage(ToolMaterial.steel.getDurability());
+        TOOL_FIRESTRIKER_STEEL = (new ItemFireStriker("tool.firestriker.steel", "minecraft:item/tool_firestriker_steel", 16529)).setMaxDamage(ToolMaterial.steel.getDurability());
+        SEEDS_PUMPKIN = (new ItemSeeds("seeds.pumpkin", "minecraft:item/seeds_pumpkin", 16530, Blocks.CROPS_PUMPKIN)).withTags(ItemTags.CHICKENS_FAVOURITE_ITEM);
+        SEAT = new ItemPlaceable("seat", "minecraft:item/seat", 16531, Blocks.SEAT).setMaxStackSize(64);
+        DOOR_OAK_PAINTED = (new ItemDoorPainted("door.oak.painted", "minecraft:item/door_oak_painted", 16532, Blocks.DOOR_PLANKS_PAINTED_BOTTOM, Blocks.DOOR_PLANKS_PAINTED_TOP));
+        DOOR_GLASS = (new ItemDoor("door.glass", "minecraft:item/door_glass", 16533, Blocks.DOOR_GLASS_BOTTOM, Blocks.DOOR_GLASS_TOP));
+        ROPE = new ItemRope("rope", "minecraft:item/rope", 16534, Blocks.ROPE);
+        FOOD_PUMPKIN_PIE = (new ItemPlaceable("food.pumpkin_pie", "minecraft:item/food_pumpkin_pie", 16535, Blocks.PUMPKIN_PIE)).setMaxStackSize(1);
+        WAND_MONSTER_SPAWNER = (new ItemWandSpawner("wand.monster", "minecraft:item/wand_monster", 16536)).setMaxStackSize(1);
+        DOOR_STEEL = (new ItemDoor("door.steel", "minecraft:item/door_steel", 16537, Blocks.DOOR_STEEL_BOTTOM, Blocks.DOOR_STEEL_TOP));
+        PAINTBRUSH = new ItemPaintBrush("paintbrush", "minecraft:item/paintbrush", 16538);
     }
 }
diff --git a/src/main/java/net/minecraft/core/item/block/BlockItem.java b/src/main/java/net/minecraft/core/item/block/ItemBlock.java
similarity index 89%
rename from src/main/java/net/minecraft/core/item/block/BlockItem.java
rename to src/main/java/net/minecraft/core/item/block/ItemBlock.java
index 99910e11a..74beedb28 100644
--- a/src/main/java/net/minecraft/core/item/block/BlockItem.java
+++ b/src/main/java/net/minecraft/core/item/block/ItemBlock.java
@@ -1,7 +1,7 @@
 package net.minecraft.core.item.block;
 
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.entity.ActivatorBlockEntity;
+import net.minecraft.core.block.entity.TileEntityActivator;
 import net.minecraft.core.block.tag.BlockTags;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.enums.EnumBlockSoundEffectType;
@@ -18,12 +18,12 @@ import java.util.Random;
 //            Item, Block, World, ItemStack, 
 //            Material, StepSound, Player
 
-public class BlockItem extends Item
+public class ItemBlock extends Item
 {
 
     protected int blockID;
 
-    public BlockItem(Block block)
+    public ItemBlock(Block block)
     {
         super(block.namespaceID, block.id);
         blockID = block.id;
@@ -66,7 +66,7 @@ public class BlockItem extends Item
 	}
 
     @Override
-    public void onUseByActivator(ItemStack itemStack, ActivatorBlockEntity activatorBlock, World world, Random random, int blockX, int blockY, int blockZ, double offX, double offY, double offZ, Direction direction) {
+    public void onUseByActivator(ItemStack itemStack, TileEntityActivator activatorBlock, World world, Random random, int blockX, int blockY, int blockZ, double offX, double offY, double offZ, Direction direction) {
         int x = blockX + direction.getOffsetX();
         int y = blockY + direction.getOffsetY();
         int z = blockZ + direction.getOffsetZ();
diff --git a/src/main/java/net/minecraft/core/item/block/AlgaeBlockItem.java b/src/main/java/net/minecraft/core/item/block/ItemBlockAlgae.java
similarity index 91%
rename from src/main/java/net/minecraft/core/item/block/AlgaeBlockItem.java
rename to src/main/java/net/minecraft/core/item/block/ItemBlockAlgae.java
index 8291ede68..886c102e7 100644
--- a/src/main/java/net/minecraft/core/item/block/AlgaeBlockItem.java
+++ b/src/main/java/net/minecraft/core/item/block/ItemBlockAlgae.java
@@ -4,7 +4,7 @@ package net.minecraft.core.item.block;
 //            World, MovingObjectPosition, EnumMovingObjectType, Block, 
 //            BoatEntity, ItemStack
 
-import net.minecraft.core.block.entity.ActivatorBlockEntity;
+import net.minecraft.core.block.entity.TileEntityActivator;
 import net.minecraft.core.block.tag.BlockTags;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.util.helper.Direction;
@@ -21,10 +21,10 @@ import org.jetbrains.annotations.Nullable;
 
 import java.util.Random;
 
-public class AlgaeBlockItem extends BlockItem
+public class ItemBlockAlgae extends ItemBlock
 {
 
-    public AlgaeBlockItem(Block block)
+    public ItemBlockAlgae(Block block)
     {
         super(block);
         setMaxDamage(0);
@@ -90,7 +90,7 @@ public class AlgaeBlockItem extends BlockItem
     }
 
     @Override
-    public void onUseByActivator(ItemStack itemStack, ActivatorBlockEntity activatorBlock, World world, Random random, int blockX, int blockY, int blockZ, double offX, double offY, double offZ, Direction direction) {
+    public void onUseByActivator(ItemStack itemStack, TileEntityActivator activatorBlock, World world, Random random, int blockX, int blockY, int blockZ, double offX, double offY, double offZ, Direction direction) {
         int x = blockX + direction.getOffsetX();
         int y = blockY + direction.getOffsetY();
         int z = blockZ + direction.getOffsetZ();
diff --git a/src/main/java/net/minecraft/core/item/block/LadderBlockItem.java b/src/main/java/net/minecraft/core/item/block/ItemBlockLadder.java
similarity index 92%
rename from src/main/java/net/minecraft/core/item/block/LadderBlockItem.java
rename to src/main/java/net/minecraft/core/item/block/ItemBlockLadder.java
index e869e8d75..241346bb3 100644
--- a/src/main/java/net/minecraft/core/item/block/LadderBlockItem.java
+++ b/src/main/java/net/minecraft/core/item/block/ItemBlockLadder.java
@@ -1,7 +1,7 @@
 package net.minecraft.core.item.block;
 
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.LadderBlock;
+import net.minecraft.core.block.BlockLadder;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.enums.EnumBlockSoundEffectType;
 import net.minecraft.core.item.ItemStack;
@@ -9,11 +9,11 @@ import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.world.World;
 import org.jetbrains.annotations.Nullable;
 
-public class LadderBlockItem extends BlockItem {
+public class ItemBlockLadder extends ItemBlock {
 
-	private LadderBlock ladderBlock;
+	private BlockLadder ladderBlock;
 	
-	public LadderBlockItem(LadderBlock block) {
+	public ItemBlockLadder(BlockLadder block) {
 		super(block);
 		
 		this.ladderBlock = block;
diff --git a/src/main/java/net/minecraft/core/item/block/LampBlockItem.java b/src/main/java/net/minecraft/core/item/block/ItemBlockLamp.java
similarity index 90%
rename from src/main/java/net/minecraft/core/item/block/LampBlockItem.java
rename to src/main/java/net/minecraft/core/item/block/ItemBlockLamp.java
index 5eb27fa99..4414c2bb8 100644
--- a/src/main/java/net/minecraft/core/item/block/LampBlockItem.java
+++ b/src/main/java/net/minecraft/core/item/block/ItemBlockLamp.java
@@ -8,10 +8,10 @@ import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.world.World;
 import org.jetbrains.annotations.Nullable;
 
-public class LampBlockItem extends BlockItem
+public class ItemBlockLamp extends ItemBlock
 {
 
-    public LampBlockItem(Block block)
+    public ItemBlockLamp(Block block)
     {
         super(block);
         setMaxDamage(0);
diff --git a/src/main/java/net/minecraft/core/item/block/LayerBlockItem.java b/src/main/java/net/minecraft/core/item/block/ItemBlockLayer.java
similarity index 94%
rename from src/main/java/net/minecraft/core/item/block/LayerBlockItem.java
rename to src/main/java/net/minecraft/core/item/block/ItemBlockLayer.java
index 07c63d6c2..affd673c0 100644
--- a/src/main/java/net/minecraft/core/item/block/LayerBlockItem.java
+++ b/src/main/java/net/minecraft/core/item/block/ItemBlockLayer.java
@@ -1,6 +1,6 @@
 package net.minecraft.core.item.block;
 
-import net.minecraft.core.block.BaseLayerBlock;
+import net.minecraft.core.block.BlockLayerBase;
 
 // Referenced classes of package net.minecraft.src:
 //            Item, Block, World, ItemStack,
@@ -17,9 +17,9 @@ import net.minecraft.core.world.World;
 import org.jetbrains.annotations.Nullable;
 
 
-public class LayerBlockItem extends BlockItem
+public class ItemBlockLayer extends ItemBlock
 {
-	public LayerBlockItem(Block block)
+	public ItemBlockLayer(Block block)
 	{
 		super(block);
 	}
@@ -47,7 +47,7 @@ public class LayerBlockItem extends BlockItem
 		if (id == blockID && side == Side.TOP)
 		{
 
-			final BaseLayerBlock blockLayer = (BaseLayerBlock) Block.blocksList[blockID];
+			final BlockLayerBase blockLayer = (BlockLayerBase) Block.blocksList[blockID];
 
 			final int newMeta = meta + 1;
 
@@ -92,7 +92,7 @@ public class LayerBlockItem extends BlockItem
 		if (id == blockID)
 		{
 
-			final BaseLayerBlock blockLayer = (BaseLayerBlock) Block.blocksList[blockID];
+			final BlockLayerBase blockLayer = (BlockLayerBase) Block.blocksList[blockID];
 
 			final int newMeta = meta + 1;
 
diff --git a/src/main/java/net/minecraft/core/item/block/LeavesLayerBlockItem.java b/src/main/java/net/minecraft/core/item/block/ItemBlockLayerLeaves.java
similarity index 84%
rename from src/main/java/net/minecraft/core/item/block/LeavesLayerBlockItem.java
rename to src/main/java/net/minecraft/core/item/block/ItemBlockLayerLeaves.java
index 0a6e9342a..3a1342694 100644
--- a/src/main/java/net/minecraft/core/item/block/LeavesLayerBlockItem.java
+++ b/src/main/java/net/minecraft/core/item/block/ItemBlockLayerLeaves.java
@@ -1,9 +1,9 @@
 package net.minecraft.core.item.block;
 
-import net.minecraft.core.block.BaseLayerBlock;
-import net.minecraft.core.block.BaseLeavesBlock;
+import net.minecraft.core.block.BlockLayerBase;
+import net.minecraft.core.block.BlockLeavesBase;
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.LeavesLayerBlock;
+import net.minecraft.core.block.BlockLayerLeaves;
 import net.minecraft.core.block.tag.BlockTags;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.enums.EnumBlockSoundEffectType;
@@ -13,9 +13,9 @@ import net.minecraft.core.util.phys.AABB;
 import net.minecraft.core.world.World;
 import org.jetbrains.annotations.Nullable;
 
-public class LeavesLayerBlockItem extends BlockItem
+public class ItemBlockLayerLeaves extends ItemBlock
 {
-	public LeavesLayerBlockItem(Block block)
+	public ItemBlockLayerLeaves(Block block)
 	{
 		super(block);
 	}
@@ -43,7 +43,7 @@ public class LeavesLayerBlockItem extends BlockItem
 		if (id == blockID && side == Side.TOP)
 		{
 
-			final BaseLayerBlock blockLayer = (BaseLayerBlock) Block.blocksList[blockID];
+			final BlockLayerBase blockLayer = (BlockLayerBase) Block.blocksList[blockID];
 
 			final int newMeta = meta + 1;
 
@@ -55,17 +55,17 @@ public class LeavesLayerBlockItem extends BlockItem
 
 			if ((newMeta & 0b00001111) < 7)
 			{
-				world.setBlockAndMetadataWithNotify(blockX, blockY, blockZ, blockID, LeavesLayerBlock.setPermanent(newMeta, true));
+				world.setBlockAndMetadataWithNotify(blockX, blockY, blockZ, blockID, BlockLayerLeaves.setPermanent(newMeta, true));
 			}
 			else
 			{
 				if (blockLayer.getFullBlockID() != -1)
 				{
-					world.setBlockAndMetadataWithNotify(blockX, blockY, blockZ, blockLayer.getFullBlockID(), BaseLeavesBlock.setPermanent(0, true));
+					world.setBlockAndMetadataWithNotify(blockX, blockY, blockZ, blockLayer.getFullBlockID(), BlockLeavesBase.setPermanent(0, true));
 				}
 				else
 				{
-					world.setBlockAndMetadataWithNotify(blockX, blockY + 1, blockZ, blockID, LeavesLayerBlock.setPermanent(0, true));
+					world.setBlockAndMetadataWithNotify(blockX, blockY + 1, blockZ, blockID, BlockLayerLeaves.setPermanent(0, true));
 				}
 			}
 			world.playBlockSoundEffect(player, blockX + 0.5F, blockY + 0.5F, blockZ + 0.5F, blockLayer, EnumBlockSoundEffectType.PLACE);
@@ -88,7 +88,7 @@ public class LeavesLayerBlockItem extends BlockItem
 		if (id == blockID)
 		{
 
-			final BaseLayerBlock blockLayer = (BaseLayerBlock) Block.blocksList[blockID];
+			final BlockLayerBase blockLayer = (BlockLayerBase) Block.blocksList[blockID];
 
 			final int newMeta = meta + 1;
 
@@ -100,17 +100,17 @@ public class LeavesLayerBlockItem extends BlockItem
 
 			if ((newMeta & 0b00001111) < 7)
 			{
-				world.setBlockAndMetadataWithNotify(blockX, blockY, blockZ, blockID, LeavesLayerBlock.setPermanent(newMeta, true));
+				world.setBlockAndMetadataWithNotify(blockX, blockY, blockZ, blockID, BlockLayerLeaves.setPermanent(newMeta, true));
 			}
 			else
 			{
 				if (blockLayer.getFullBlockID() != -1)
 				{
-					world.setBlockAndMetadataWithNotify(blockX, blockY, blockZ, blockLayer.getFullBlockID(), BaseLeavesBlock.setPermanent(0, true));
+					world.setBlockAndMetadataWithNotify(blockX, blockY, blockZ, blockLayer.getFullBlockID(), BlockLeavesBase.setPermanent(0, true));
 				}
 				else
 				{
-					world.setBlockAndMetadataWithNotify(blockX, blockY + 1, blockZ, blockID, LeavesLayerBlock.setPermanent(0, true));
+					world.setBlockAndMetadataWithNotify(blockX, blockY + 1, blockZ, blockID, BlockLayerLeaves.setPermanent(0, true));
 				}
 			}
 			world.playBlockSoundEffect(player, blockX + 0.5F, blockY + 0.5F, blockZ + 0.5F, blockLayer, EnumBlockSoundEffectType.PLACE);
@@ -141,7 +141,7 @@ public class LeavesLayerBlockItem extends BlockItem
 	
 	@Override
 	public int getPlacedBlockMetadata(@Nullable Player player, ItemStack stack, World world, int x, int y, int z, Side side, double xPlaced, double yPlaced) {
-		return LeavesLayerBlock.MASK_PERMANENT;
+		return BlockLayerLeaves.MASK_PERMANENT;
 	}
 
 }
diff --git a/src/main/java/net/minecraft/core/item/block/PaintedBlockItem.java b/src/main/java/net/minecraft/core/item/block/ItemBlockPainted.java
similarity index 86%
rename from src/main/java/net/minecraft/core/item/block/PaintedBlockItem.java
rename to src/main/java/net/minecraft/core/item/block/ItemBlockPainted.java
index 1d6c38d55..d69af94ac 100644
--- a/src/main/java/net/minecraft/core/item/block/PaintedBlockItem.java
+++ b/src/main/java/net/minecraft/core/item/block/ItemBlockPainted.java
@@ -4,11 +4,11 @@ import net.minecraft.core.block.Block;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.util.helper.DyeColor;
 
-public class PaintedBlockItem extends BlockItem
+public class ItemBlockPainted extends ItemBlock
 {
 	private final boolean upperMetadata;
 	
-    public PaintedBlockItem(Block block, boolean upperMetadata)
+    public ItemBlockPainted(Block block, boolean upperMetadata)
     {
         super(block);
         setMaxDamage(0);
diff --git a/src/main/java/net/minecraft/core/item/block/SlabBlockItem.java b/src/main/java/net/minecraft/core/item/block/ItemBlockSlab.java
similarity index 98%
rename from src/main/java/net/minecraft/core/item/block/SlabBlockItem.java
rename to src/main/java/net/minecraft/core/item/block/ItemBlockSlab.java
index 057849ee2..f6cddd9a9 100644
--- a/src/main/java/net/minecraft/core/item/block/SlabBlockItem.java
+++ b/src/main/java/net/minecraft/core/item/block/ItemBlockSlab.java
@@ -10,10 +10,10 @@ import net.minecraft.core.util.phys.AABB;
 import net.minecraft.core.world.World;
 import org.jetbrains.annotations.Nullable;
 
-public class SlabBlockItem extends BlockItem
+public class ItemBlockSlab extends ItemBlock
 {
 
-    public SlabBlockItem(Block block)
+    public ItemBlockSlab(Block block)
     {
         super(block);
     }
diff --git a/src/main/java/net/minecraft/core/item/block/PaintedSlabBlockItem.java b/src/main/java/net/minecraft/core/item/block/ItemBlockSlabPainted.java
similarity index 87%
rename from src/main/java/net/minecraft/core/item/block/PaintedSlabBlockItem.java
rename to src/main/java/net/minecraft/core/item/block/ItemBlockSlabPainted.java
index 6ff077e1a..b5cfe3993 100644
--- a/src/main/java/net/minecraft/core/item/block/PaintedSlabBlockItem.java
+++ b/src/main/java/net/minecraft/core/item/block/ItemBlockSlabPainted.java
@@ -4,11 +4,11 @@ import net.minecraft.core.block.Block;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.util.helper.DyeColor;
 
-public class PaintedSlabBlockItem extends SlabBlockItem
+public class ItemBlockSlabPainted extends ItemBlockSlab
 {
 	private final boolean upperMetadata;
 	
-    public PaintedSlabBlockItem(Block block)
+    public ItemBlockSlabPainted(Block block)
     {
         super(block);
         setMaxDamage(0);
diff --git a/src/main/java/net/minecraft/core/item/block/BlockItemStairsPainted.java b/src/main/java/net/minecraft/core/item/block/ItemBlockStairsPainted.java
similarity index 88%
rename from src/main/java/net/minecraft/core/item/block/BlockItemStairsPainted.java
rename to src/main/java/net/minecraft/core/item/block/ItemBlockStairsPainted.java
index c275a0a64..0cfa3c679 100644
--- a/src/main/java/net/minecraft/core/item/block/BlockItemStairsPainted.java
+++ b/src/main/java/net/minecraft/core/item/block/ItemBlockStairsPainted.java
@@ -7,10 +7,10 @@ import net.minecraft.core.util.helper.DyeColor;
 import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.world.World;
 
-public class BlockItemStairsPainted extends BlockItem
+public class ItemBlockStairsPainted extends ItemBlock
 {
 
-    public BlockItemStairsPainted(Block block)
+    public ItemBlockStairsPainted(Block block)
     {
         super(block);
         setMaxDamage(0);
diff --git a/src/main/java/net/minecraft/core/item/tool/ToolItem.java b/src/main/java/net/minecraft/core/item/tool/ItemTool.java
similarity index 94%
rename from src/main/java/net/minecraft/core/item/tool/ToolItem.java
rename to src/main/java/net/minecraft/core/item/tool/ItemTool.java
index 36cd267a3..ad9534899 100644
--- a/src/main/java/net/minecraft/core/item/tool/ToolItem.java
+++ b/src/main/java/net/minecraft/core/item/tool/ItemTool.java
@@ -11,7 +11,7 @@ import net.minecraft.core.item.tag.ItemTags;
 import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.world.World;
 
-public class ToolItem extends Item
+public class ItemTool extends Item
 {
 
 	private final Tag<Block> tagEffectiveAgainst;
@@ -19,7 +19,7 @@ public class ToolItem extends Item
 	protected ToolMaterial material;
 
 	@SuppressWarnings("unchecked")
-	protected ToolItem(String name, String namespaceId, int id, int damageDealt, ToolMaterial toolMaterial, Tag<Block> tagEffectiveAgainst) {
+	protected ItemTool(String name, String namespaceId, int id, int damageDealt, ToolMaterial toolMaterial, Tag<Block> tagEffectiveAgainst) {
 		super(name, namespaceId, id);
 		this.material = toolMaterial;
 		this.tagEffectiveAgainst = tagEffectiveAgainst;
diff --git a/src/main/java/net/minecraft/core/item/tool/AxeToolItem.java b/src/main/java/net/minecraft/core/item/tool/ItemToolAxe.java
similarity index 86%
rename from src/main/java/net/minecraft/core/item/tool/AxeToolItem.java
rename to src/main/java/net/minecraft/core/item/tool/ItemToolAxe.java
index 12ce33833..2e57468d3 100644
--- a/src/main/java/net/minecraft/core/item/tool/AxeToolItem.java
+++ b/src/main/java/net/minecraft/core/item/tool/ItemToolAxe.java
@@ -1,7 +1,7 @@
 package net.minecraft.core.item.tool;
 
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.LogBlock;
+import net.minecraft.core.block.BlockLog;
 import net.minecraft.core.block.tag.BlockTags;
 import net.minecraft.core.data.gamerule.GameRules;
 import net.minecraft.core.data.gamerule.TreecapitatorHelper;
@@ -12,10 +12,10 @@ import net.minecraft.core.item.material.ToolMaterial;
 import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.world.World;
 
-public class AxeToolItem extends ToolItem
+public class ItemToolAxe extends ItemTool
 {
 
-    public AxeToolItem(String name, String namespaceId, int id, ToolMaterial enumtoolmaterial)
+    public ItemToolAxe(String name, String namespaceId, int id, ToolMaterial enumtoolmaterial)
     {
         super(name, namespaceId, id, 3, enumtoolmaterial, BlockTags.MINEABLE_BY_AXE);
     }
@@ -31,7 +31,7 @@ public class AxeToolItem extends ToolItem
     {
     	if(!world.isClientSide && world.getGameRuleValue(GameRules.TREECAPITATOR) && !player.isSneaking()) {
     		int id = world.getBlockId(x, y, z);
-    		if(Block.getBlock(id) instanceof LogBlock) {
+    		if(Block.getBlock(id) instanceof BlockLog) {
             	return !new TreecapitatorHelper(world, x, y, z, player).chopTree();
     		}
     	}
diff --git a/src/main/java/net/minecraft/core/item/tool/HoeToolItem.java b/src/main/java/net/minecraft/core/item/tool/ItemToolHoe.java
similarity index 90%
rename from src/main/java/net/minecraft/core/item/tool/HoeToolItem.java
rename to src/main/java/net/minecraft/core/item/tool/ItemToolHoe.java
index 6ac7533ee..48c29304a 100644
--- a/src/main/java/net/minecraft/core/item/tool/HoeToolItem.java
+++ b/src/main/java/net/minecraft/core/item/tool/ItemToolHoe.java
@@ -2,7 +2,7 @@ package net.minecraft.core.item.tool;
 
 import net.minecraft.core.block.Block;
 import net.minecraft.core.block.Blocks;
-import net.minecraft.core.block.entity.ActivatorBlockEntity;
+import net.minecraft.core.block.entity.TileEntityActivator;
 import net.minecraft.core.block.tag.BlockTags;
 import net.minecraft.core.entity.Mob;
 import net.minecraft.core.entity.player.Player;
@@ -22,9 +22,9 @@ import java.util.Random;
 //            Item, EnumToolMaterial, World, Block, 
 //            GrassBlock, StepSound, ItemStack, Player
 
-public class HoeToolItem extends ToolItem
+public class ItemToolHoe extends ItemTool
 {
-    public HoeToolItem(String name, String namespaceId, int id, ToolMaterial enumtoolmaterial)
+    public ItemToolHoe(String name, String namespaceId, int id, ToolMaterial enumtoolmaterial)
     {
         super(name, namespaceId, id, 3, enumtoolmaterial, BlockTags.MINEABLE_BY_HOE);
         maxStackSize = 1;
@@ -76,7 +76,7 @@ public class HoeToolItem extends ToolItem
     }
 
     @Override
-    public void onUseByActivator(ItemStack itemStack, ActivatorBlockEntity activatorBlock, World world, Random random, int blockX, int blockY, int blockZ, double offX, double offY, double offZ, Direction direction) {
+    public void onUseByActivator(ItemStack itemStack, TileEntityActivator activatorBlock, World world, Random random, int blockX, int blockY, int blockZ, double offX, double offY, double offZ, Direction direction) {
         till(itemStack, null, world, blockX + direction.getOffsetX(), blockY + direction.getOffsetY(), blockZ + direction.getOffsetZ(), direction.getSide());
     }
 
diff --git a/src/main/java/net/minecraft/core/item/tool/PickaxeToolItem.java b/src/main/java/net/minecraft/core/item/tool/ItemToolPickaxe.java
similarity index 95%
rename from src/main/java/net/minecraft/core/item/tool/PickaxeToolItem.java
rename to src/main/java/net/minecraft/core/item/tool/ItemToolPickaxe.java
index 9a78639d1..4bea3675b 100644
--- a/src/main/java/net/minecraft/core/item/tool/PickaxeToolItem.java
+++ b/src/main/java/net/minecraft/core/item/tool/ItemToolPickaxe.java
@@ -10,7 +10,7 @@ import net.minecraft.core.entity.Mob;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.item.material.ToolMaterial;
 
-public class PickaxeToolItem extends ToolItem {
+public class ItemToolPickaxe extends ItemTool {
 	
 	public static Map<Block, Integer> miningLevels = new HashMap<>();
 	
@@ -56,7 +56,7 @@ public class PickaxeToolItem extends ToolItem {
 		miningLevels.put(Blocks.ORE_REDSTONE_GLOWING_LIMESTONE, 2);
 	}
 	
-	public PickaxeToolItem(String name, String namespaceId, int id, ToolMaterial enumtoolmaterial) {
+	public ItemToolPickaxe(String name, String namespaceId, int id, ToolMaterial enumtoolmaterial) {
 		super(name, namespaceId, id, 2, enumtoolmaterial, BlockTags.MINEABLE_BY_PICKAXE);
 	}
 
diff --git a/src/main/java/net/minecraft/core/item/ToolShearsItem.java b/src/main/java/net/minecraft/core/item/tool/ItemToolShears.java
similarity index 66%
rename from src/main/java/net/minecraft/core/item/ToolShearsItem.java
rename to src/main/java/net/minecraft/core/item/tool/ItemToolShears.java
index 851a813b9..f501e1ed5 100644
--- a/src/main/java/net/minecraft/core/item/ToolShearsItem.java
+++ b/src/main/java/net/minecraft/core/item/tool/ItemToolShears.java
@@ -1,32 +1,32 @@
-package net.minecraft.core.item;
+package net.minecraft.core.item.tool;
 
 
 // Referenced classes of package net.minecraft.src:
 //            Item, Block, BlockLeaves, ItemStack, 
 //            Mob
 
-import net.minecraft.core.block.BaseLeavesBlock;
-import net.minecraft.core.block.entity.ActivatorBlockEntity;
+import net.minecraft.core.block.BlockLeavesBase;
+import net.minecraft.core.block.entity.TileEntityActivator;
 import net.minecraft.core.block.tag.BlockTags;
 import net.minecraft.core.entity.Entity;
 import net.minecraft.core.entity.Mob;
-import net.minecraft.core.entity.animal.SheepMob;
+import net.minecraft.core.entity.animal.MobSheep;
+import net.minecraft.core.item.Item;
+import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.item.material.ToolMaterial;
 import net.minecraft.core.block.Block;
 import net.minecraft.core.block.Blocks;
 import net.minecraft.core.util.helper.Direction;
 import net.minecraft.core.util.phys.AABB;
-import net.minecraft.core.util.phys.HitResult;
-import net.minecraft.core.util.phys.Vec3;
 import net.minecraft.core.world.World;
 
 import java.util.List;
 import java.util.Random;
 
-public class ToolShearsItem extends Item
+public class ItemToolShears extends Item
 {
 
-    public ToolShearsItem(String name, String namespaceId, int id, ToolMaterial material)
+    public ItemToolShears(String name, String namespaceId, int id, ToolMaterial material)
     {
         super(name, namespaceId, id);
         setMaxStackSize(1);
@@ -46,7 +46,7 @@ public class ToolShearsItem extends Item
     @Override
     public float getStrVsBlock(ItemStack itemstack, Block block)
     {
-        if(block.id == Blocks.COBWEB.id || block instanceof BaseLeavesBlock)
+        if(block.id == Blocks.COBWEB.id || block instanceof BlockLeavesBase)
         {
             return 15F;
         }
@@ -59,14 +59,14 @@ public class ToolShearsItem extends Item
     }
 
     @Override
-    public void onUseByActivator(ItemStack itemStack, ActivatorBlockEntity activatorBlock, World world, Random random, int blockX, int blockY, int blockZ, double offX, double offY, double offZ, Direction direction) {
+    public void onUseByActivator(ItemStack itemStack, TileEntityActivator activatorBlock, World world, Random random, int blockX, int blockY, int blockZ, double offX, double offY, double offZ, Direction direction) {
         blockX += direction.getOffsetX();
         blockY += direction.getOffsetY();
         blockZ += direction.getOffsetZ();
         AABB box = AABB.getTemporaryBB(blockX, blockY, blockZ, blockX + 1, blockY + 1, blockZ + 1);
-        List<Entity> entities = world.getEntitiesWithinAABB(SheepMob.class, box);
+        List<Entity> entities = world.getEntitiesWithinAABB(MobSheep.class, box);
         if (!entities.isEmpty()) {
-            ((SheepMob)(entities.get(0))).onItemInteract(itemStack);
+            ((MobSheep)(entities.get(0))).onItemInteract(itemStack);
         }
     }
 }
diff --git a/src/main/java/net/minecraft/core/item/tool/ShovelToolItem.java b/src/main/java/net/minecraft/core/item/tool/ItemToolShovel.java
similarity index 84%
rename from src/main/java/net/minecraft/core/item/tool/ShovelToolItem.java
rename to src/main/java/net/minecraft/core/item/tool/ItemToolShovel.java
index 902650fd2..19d4ee78e 100644
--- a/src/main/java/net/minecraft/core/item/tool/ShovelToolItem.java
+++ b/src/main/java/net/minecraft/core/item/tool/ItemToolShovel.java
@@ -2,7 +2,7 @@ package net.minecraft.core.item.tool;
 
 import net.minecraft.core.block.Block;
 import net.minecraft.core.block.Blocks;
-import net.minecraft.core.block.entity.ActivatorBlockEntity;
+import net.minecraft.core.block.entity.TileEntityActivator;
 import net.minecraft.core.block.tag.BlockTags;
 import net.minecraft.core.entity.Mob;
 import net.minecraft.core.entity.player.Player;
@@ -17,11 +17,11 @@ import org.jetbrains.annotations.Nullable;
 import java.util.Random;
 
 // Referenced classes of package net.minecraft.src:
-//            ToolItem, Block, EnumToolMaterial
+//            ItemTool, Block, EnumToolMaterial
 //updated
-public class ShovelToolItem extends ToolItem
+public class ItemToolShovel extends ItemTool
 {
-    public ShovelToolItem(String name, String namespaceId, int id, ToolMaterial enumtoolmaterial)
+    public ItemToolShovel(String name, String namespaceId, int id, ToolMaterial enumtoolmaterial)
     {
         super(name, namespaceId, id, 1, enumtoolmaterial, BlockTags.MINEABLE_BY_SHOVEL);
     }
@@ -55,7 +55,7 @@ public class ShovelToolItem extends ToolItem
     }
 
     @Override
-    public void onUseByActivator(ItemStack itemStack, ActivatorBlockEntity activatorBlock, World world, Random random, int blockX, int blockY, int blockZ, double offX, double offY, double offZ, Direction direction) {
+    public void onUseByActivator(ItemStack itemStack, TileEntityActivator activatorBlock, World world, Random random, int blockX, int blockY, int blockZ, double offX, double offY, double offZ, Direction direction) {
         shovelBlock(itemStack, null, world, blockX + direction.getOffsetX(), blockY + direction.getOffsetY(), blockZ + direction.getOffsetZ(), direction.getSide());
     }
 }
diff --git a/src/main/java/net/minecraft/core/item/tool/SwordToolItem.java b/src/main/java/net/minecraft/core/item/tool/ItemToolSword.java
similarity index 86%
rename from src/main/java/net/minecraft/core/item/tool/SwordToolItem.java
rename to src/main/java/net/minecraft/core/item/tool/ItemToolSword.java
index c199b3f71..0097ce77a 100644
--- a/src/main/java/net/minecraft/core/item/tool/SwordToolItem.java
+++ b/src/main/java/net/minecraft/core/item/tool/ItemToolSword.java
@@ -1,6 +1,6 @@
 package net.minecraft.core.item.tool;
 
-import net.minecraft.core.block.entity.ActivatorBlockEntity;
+import net.minecraft.core.block.entity.TileEntityActivator;
 import net.minecraft.core.block.tag.BlockTags;
 import net.minecraft.core.entity.Entity;
 import net.minecraft.core.entity.Mob;
@@ -19,10 +19,10 @@ import java.util.Random;
 //            Item, EnumToolMaterial, Block, ItemStack, 
 //            Mob, Entity
 
-public class SwordToolItem extends Item
+public class ItemToolSword extends Item
 {
 
-    public SwordToolItem(String name, String namespaceId, int id, ToolMaterial enumtoolmaterial)
+    public ItemToolSword(String name, String namespaceId, int id, ToolMaterial enumtoolmaterial)
     {
         super(name, namespaceId, id);
         maxStackSize = 1;
@@ -57,7 +57,7 @@ public class SwordToolItem extends Item
     }
 
     @Override
-    public void onUseByActivator(ItemStack itemStack, ActivatorBlockEntity activatorBlock, World world, Random random, int blockX, int blockY, int blockZ, double offX, double offY, double offZ, Direction direction) {
+    public void onUseByActivator(ItemStack itemStack, TileEntityActivator activatorBlock, World world, Random random, int blockX, int blockY, int blockZ, double offX, double offY, double offZ, Direction direction) {
         blockX += direction.getOffsetX();
         blockY += direction.getOffsetY();
         blockZ += direction.getOffsetZ();
diff --git a/src/main/java/net/minecraft/core/net/command/CommandManager.java b/src/main/java/net/minecraft/core/net/command/CommandManager.java
index 894ec183f..2047e2745 100644
--- a/src/main/java/net/minecraft/core/net/command/CommandManager.java
+++ b/src/main/java/net/minecraft/core/net/command/CommandManager.java
@@ -23,53 +23,53 @@ public class CommandManager {
     private static final Collection<CommandRegistry> externalServerCommands = new ArrayList<>();
 
     public void init() {
-        AchievementCommand.register(DISPATCHER);
-        ClearCommand.register(DISPATCHER);
-        KillCommand.register(DISPATCHER);
-        SeedCommand.register(DISPATCHER);
-        SetBlockCommand.register(DISPATCHER);
-        SummonCommand.register(DISPATCHER);
-        TeleportCommand.register(DISPATCHER);
-        MessageCommand.register(DISPATCHER);
-        SetSpawnCommand.register(DISPATCHER);
-        TimeCommand.register(DISPATCHER);
-        GameModeCommand.register(DISPATCHER);
-        WeatherCommand.register(DISPATCHER);
-        SpawnCommand.register(DISPATCHER);
-        PlaceCommand.register(DISPATCHER);
-        HelpCommand.register(DISPATCHER);
-        ChunkCommand.register(DISPATCHER);
-        GiveCommand.register(DISPATCHER);
-        GameRuleCommand.register(DISPATCHER);
-        FillCommand.register(DISPATCHER);
-        CloneCommand.register(DISPATCHER);
-        BiomeCommand.register(DISPATCHER);
-        SayCommand.register(DISPATCHER);
-        TellRawCommand.register(DISPATCHER);
-        TestForCommand.register(DISPATCHER);
-        DamageCommand.register(DISPATCHER);
-        HealCommand.register(DISPATCHER);
-        MobSpawningCommand.register(DISPATCHER);
-        PlaySoundCommand.register(DISPATCHER);
-        SpawnParticleCommand.register(DISPATCHER);
+        CommandAchievement.register(DISPATCHER);
+        CommandClear.register(DISPATCHER);
+        CommandKill.register(DISPATCHER);
+        CommandSeed.register(DISPATCHER);
+        CommandSetBlock.register(DISPATCHER);
+        CommandSummon.register(DISPATCHER);
+        CommandTeleport.register(DISPATCHER);
+        CommandMessage.register(DISPATCHER);
+        CommandSetSpawn.register(DISPATCHER);
+        CommandTime.register(DISPATCHER);
+        CommandGameMode.register(DISPATCHER);
+        CommandWeather.register(DISPATCHER);
+        CommandSpawn.register(DISPATCHER);
+        CommandPlace.register(DISPATCHER);
+        CommandHelp.register(DISPATCHER);
+        CommandChunk.register(DISPATCHER);
+        CommandGive.register(DISPATCHER);
+        CommandGameRule.register(DISPATCHER);
+        CommandFill.register(DISPATCHER);
+        CommandClone.register(DISPATCHER);
+        CommandBiome.register(DISPATCHER);
+        CommandSay.register(DISPATCHER);
+        CommandTellRaw.register(DISPATCHER);
+        CommandTestFor.register(DISPATCHER);
+        CommandDamage.register(DISPATCHER);
+        CommandHeal.register(DISPATCHER);
+        CommandMobSpawning.register(DISPATCHER);
+        CommandPlaySound.register(DISPATCHER);
+        CommandSpawnParticle.register(DISPATCHER);
 
         if (this.isServer) {
-            StopCommand.register(DISPATCHER);
-            OpCommand.register(DISPATCHER);
-            DeopCommand.register(DISPATCHER);
-            ListCommand.register(DISPATCHER);
-            DifficultyCommand.register(DISPATCHER);
-            ColorCommand.register(DISPATCHER);
-            NicknameCommand.register(DISPATCHER);
-            WhoIsCommand.register(DISPATCHER);
-            ScoreCommand.register(DISPATCHER);
-            MeCommand.register(DISPATCHER);
-            EmotesCommand.register(DISPATCHER);
-            BanCommand.register(DISPATCHER);
-            UnbanCommand.register(DISPATCHER);
-            KickCommand.register(DISPATCHER);
-            WhitelistCommand.register(DISPATCHER);
-            SaveCommand.register(DISPATCHER);
+            CommandStop.register(DISPATCHER);
+            CommandOp.register(DISPATCHER);
+            CommandDeop.register(DISPATCHER);
+            CommandList.register(DISPATCHER);
+            CommandDifficulty.register(DISPATCHER);
+            CommandColor.register(DISPATCHER);
+            CommandNickname.register(DISPATCHER);
+            CommandWhoIs.register(DISPATCHER);
+            CommandScore.register(DISPATCHER);
+            CommandMe.register(DISPATCHER);
+            CommandEmotes.register(DISPATCHER);
+            CommandBan.register(DISPATCHER);
+            CommandUnban.register(DISPATCHER);
+            CommandKick.register(DISPATCHER);
+            CommandWhitelist.register(DISPATCHER);
+            CommandSave.register(DISPATCHER);
             for (CommandRegistry registry : externalServerCommands) {
                 registry.register(DISPATCHER);
             }
diff --git a/src/main/java/net/minecraft/core/net/command/arguments/AchievementArgumentType.java b/src/main/java/net/minecraft/core/net/command/arguments/ArgumentTypeAchievement.java
similarity index 94%
rename from src/main/java/net/minecraft/core/net/command/arguments/AchievementArgumentType.java
rename to src/main/java/net/minecraft/core/net/command/arguments/ArgumentTypeAchievement.java
index 2308ab8a3..44f9c7592 100644
--- a/src/main/java/net/minecraft/core/net/command/arguments/AchievementArgumentType.java
+++ b/src/main/java/net/minecraft/core/net/command/arguments/ArgumentTypeAchievement.java
@@ -16,11 +16,11 @@ import java.util.Collection;
 import java.util.Optional;
 import java.util.concurrent.CompletableFuture;
 
-public class AchievementArgumentType implements ArgumentType<Achievement> {
+public class ArgumentTypeAchievement implements ArgumentType<Achievement> {
     private static final Collection<String> EXAMPLES = Arrays.asList("achievement.acquireIron", "acquireIron");
 
     public static ArgumentType<Achievement> achievement() {
-        return new AchievementArgumentType();
+        return new ArgumentTypeAchievement();
     }
 
     @Override
diff --git a/src/main/java/net/minecraft/core/net/command/arguments/BiomeArgumentType.java b/src/main/java/net/minecraft/core/net/command/arguments/ArgumentTypeBiome.java
similarity index 94%
rename from src/main/java/net/minecraft/core/net/command/arguments/BiomeArgumentType.java
rename to src/main/java/net/minecraft/core/net/command/arguments/ArgumentTypeBiome.java
index f2eb235fa..c75ebaeac 100644
--- a/src/main/java/net/minecraft/core/net/command/arguments/BiomeArgumentType.java
+++ b/src/main/java/net/minecraft/core/net/command/arguments/ArgumentTypeBiome.java
@@ -16,11 +16,11 @@ import java.util.Collection;
 import java.util.Optional;
 import java.util.concurrent.CompletableFuture;
 
-public class BiomeArgumentType implements ArgumentType<Biome> {
+public class ArgumentTypeBiome implements ArgumentType<Biome> {
     private static final Collection<String> EXAMPLES = Arrays.asList("overworld", "nether");
 
-    public static BiomeArgumentType biome() {
-        return new BiomeArgumentType();
+    public static ArgumentTypeBiome biome() {
+        return new ArgumentTypeBiome();
     }
 
     @Override
diff --git a/src/main/java/net/minecraft/core/net/command/arguments/BlockArgumentType.java b/src/main/java/net/minecraft/core/net/command/arguments/ArgumentTypeBlock.java
similarity index 95%
rename from src/main/java/net/minecraft/core/net/command/arguments/BlockArgumentType.java
rename to src/main/java/net/minecraft/core/net/command/arguments/ArgumentTypeBlock.java
index 0c8aadfab..f6af6ba89 100644
--- a/src/main/java/net/minecraft/core/net/command/arguments/BlockArgumentType.java
+++ b/src/main/java/net/minecraft/core/net/command/arguments/ArgumentTypeBlock.java
@@ -17,11 +17,11 @@ import java.util.List;
 import java.util.Locale;
 import java.util.concurrent.CompletableFuture;
 
-public class BlockArgumentType implements ArgumentType<BlockInput> {
+public class ArgumentTypeBlock implements ArgumentType<BlockInput> {
     private static final List<String> EXAMPLES = Arrays.asList("minecraft:block/stone", "block/stone", "minecraft:block/log_oak[1]");
 
     public static ArgumentType<BlockInput> block() {
-        return new BlockArgumentType();
+        return new ArgumentTypeBlock();
     }
 
     @Override
diff --git a/src/main/java/net/minecraft/core/net/command/arguments/ChunkCoordinatesArgumentType.java b/src/main/java/net/minecraft/core/net/command/arguments/ArgumentTypeChunkCoordinates.java
similarity index 95%
rename from src/main/java/net/minecraft/core/net/command/arguments/ChunkCoordinatesArgumentType.java
rename to src/main/java/net/minecraft/core/net/command/arguments/ArgumentTypeChunkCoordinates.java
index 4ab680257..15284fa12 100644
--- a/src/main/java/net/minecraft/core/net/command/arguments/ChunkCoordinatesArgumentType.java
+++ b/src/main/java/net/minecraft/core/net/command/arguments/ArgumentTypeChunkCoordinates.java
@@ -18,11 +18,11 @@ import java.util.Collection;
 import java.util.List;
 import java.util.concurrent.CompletableFuture;
 
-public class ChunkCoordinatesArgumentType implements ArgumentType<Coordinates2D> {
+public class ArgumentTypeChunkCoordinates implements ArgumentType<Coordinates2D> {
     private static final List<String> EXAMPLES = Arrays.asList("~ ~", "0 0 0", "~60 ~", "~-20 -25");
 
-    public static ChunkCoordinatesArgumentType chunkCoordinates() {
-        return new ChunkCoordinatesArgumentType();
+    public static ArgumentTypeChunkCoordinates chunkCoordinates() {
+        return new ArgumentTypeChunkCoordinates();
     }
 
     @Override
diff --git a/src/main/java/net/minecraft/core/net/command/arguments/DamageTypeArgumentType.java b/src/main/java/net/minecraft/core/net/command/arguments/ArgumentTypeDamageType.java
similarity index 92%
rename from src/main/java/net/minecraft/core/net/command/arguments/DamageTypeArgumentType.java
rename to src/main/java/net/minecraft/core/net/command/arguments/ArgumentTypeDamageType.java
index 8454fe8d2..6c7dc2125 100644
--- a/src/main/java/net/minecraft/core/net/command/arguments/DamageTypeArgumentType.java
+++ b/src/main/java/net/minecraft/core/net/command/arguments/ArgumentTypeDamageType.java
@@ -15,11 +15,11 @@ import java.util.Collection;
 import java.util.Optional;
 import java.util.concurrent.CompletableFuture;
 
-public class DamageTypeArgumentType implements ArgumentType<DamageType> {
+public class ArgumentTypeDamageType implements ArgumentType<DamageType> {
     private static final Collection<String> EXAMPLES = Arrays.asList("damagetype.combat", "damagetype.blast");
 
-    public static DamageTypeArgumentType damageType() {
-        return new DamageTypeArgumentType();
+    public static ArgumentTypeDamageType damageType() {
+        return new ArgumentTypeDamageType();
     }
 
     @Override
diff --git a/src/main/java/net/minecraft/core/net/command/arguments/DimensionArgumentType.java b/src/main/java/net/minecraft/core/net/command/arguments/ArgumentTypeDimension.java
similarity index 92%
rename from src/main/java/net/minecraft/core/net/command/arguments/DimensionArgumentType.java
rename to src/main/java/net/minecraft/core/net/command/arguments/ArgumentTypeDimension.java
index 7667e1779..fc27fffc8 100644
--- a/src/main/java/net/minecraft/core/net/command/arguments/DimensionArgumentType.java
+++ b/src/main/java/net/minecraft/core/net/command/arguments/ArgumentTypeDimension.java
@@ -16,11 +16,11 @@ import java.util.Map;
 import java.util.Optional;
 import java.util.concurrent.CompletableFuture;
 
-public class DimensionArgumentType implements ArgumentType<Dimension> {
+public class ArgumentTypeDimension implements ArgumentType<Dimension> {
     private static final Collection<String> EXAMPLES = Arrays.asList("overworld", "nether");
 
-    public static DimensionArgumentType dimension() {
-        return new DimensionArgumentType();
+    public static ArgumentTypeDimension dimension() {
+        return new ArgumentTypeDimension();
     }
 
     @Override
diff --git a/src/main/java/net/minecraft/core/net/command/arguments/EntityArgumentType.java b/src/main/java/net/minecraft/core/net/command/arguments/ArgumentTypeEntity.java
similarity index 85%
rename from src/main/java/net/minecraft/core/net/command/arguments/EntityArgumentType.java
rename to src/main/java/net/minecraft/core/net/command/arguments/ArgumentTypeEntity.java
index 6bd8e6da8..51e212cbd 100644
--- a/src/main/java/net/minecraft/core/net/command/arguments/EntityArgumentType.java
+++ b/src/main/java/net/minecraft/core/net/command/arguments/ArgumentTypeEntity.java
@@ -17,30 +17,30 @@ import java.util.Arrays;
 import java.util.Collection;
 import java.util.concurrent.CompletableFuture;
 
-public class EntityArgumentType implements ArgumentType<EntitySelector> {
+public class ArgumentTypeEntity implements ArgumentType<EntitySelector> {
     private static final Collection<String> EXAMPLES = Arrays.asList("Player", "0123", "@e", "@e[type=foo]", EntitySelector.ENTITY_PREFIX + "11203");
 
     private final boolean singleEntity, playerOnly;
 
-    private EntityArgumentType(boolean singleEntity, boolean playerOnly) {
+    private ArgumentTypeEntity(boolean singleEntity, boolean playerOnly) {
         this.singleEntity = singleEntity;
         this.playerOnly = playerOnly;
     }
 
-    public static EntityArgumentType entities() {
-        return new EntityArgumentType(false, false);
+    public static ArgumentTypeEntity entities() {
+        return new ArgumentTypeEntity(false, false);
     }
 
-    public static EntityArgumentType entity() {
-        return new EntityArgumentType(true, false);
+    public static ArgumentTypeEntity entity() {
+        return new ArgumentTypeEntity(true, false);
     }
 
-    public static EntityArgumentType players() {
-        return new EntityArgumentType(false, true);
+    public static ArgumentTypeEntity players() {
+        return new ArgumentTypeEntity(false, true);
     }
 
-    public static EntityArgumentType player() {
-        return new EntityArgumentType(true, true);
+    public static ArgumentTypeEntity player() {
+        return new ArgumentTypeEntity(true, true);
     }
 
     @Override
diff --git a/src/main/java/net/minecraft/core/net/command/arguments/EntitySummonArgumentType.java b/src/main/java/net/minecraft/core/net/command/arguments/ArgumentTypeEntitySummon.java
similarity index 94%
rename from src/main/java/net/minecraft/core/net/command/arguments/EntitySummonArgumentType.java
rename to src/main/java/net/minecraft/core/net/command/arguments/ArgumentTypeEntitySummon.java
index 2033a84c2..76aa1e92b 100644
--- a/src/main/java/net/minecraft/core/net/command/arguments/EntitySummonArgumentType.java
+++ b/src/main/java/net/minecraft/core/net/command/arguments/ArgumentTypeEntitySummon.java
@@ -15,11 +15,11 @@ import java.util.Collection;
 import java.util.List;
 import java.util.concurrent.CompletableFuture;
 
-public class EntitySummonArgumentType implements ArgumentType<Class<? extends Entity>> {
+public class ArgumentTypeEntitySummon implements ArgumentType<Class<? extends Entity>> {
     private static final List<String> EXAMPLES = Arrays.asList("Creeper", "Skeleton", "Slime");
 
     public static ArgumentType<Class<? extends Entity>> entity() {
-        return new EntitySummonArgumentType();
+        return new ArgumentTypeEntitySummon();
     }
 
     @Override
diff --git a/src/main/java/net/minecraft/core/net/command/arguments/GameModeArgumentType.java b/src/main/java/net/minecraft/core/net/command/arguments/ArgumentTypeGameMode.java
similarity index 94%
rename from src/main/java/net/minecraft/core/net/command/arguments/GameModeArgumentType.java
rename to src/main/java/net/minecraft/core/net/command/arguments/ArgumentTypeGameMode.java
index 247a5cc2d..8bca8bfc1 100644
--- a/src/main/java/net/minecraft/core/net/command/arguments/GameModeArgumentType.java
+++ b/src/main/java/net/minecraft/core/net/command/arguments/ArgumentTypeGameMode.java
@@ -15,11 +15,11 @@ import java.util.Collection;
 import java.util.Optional;
 import java.util.concurrent.CompletableFuture;
 
-public class GameModeArgumentType implements ArgumentType<Gamemode> {
+public class ArgumentTypeGameMode implements ArgumentType<Gamemode> {
     private static final Collection<String> EXAMPLES = Arrays.asList(Gamemode.creative.getLanguageKey(), Gamemode.survival.getLanguageKey());
 
     public static ArgumentType<Gamemode> gameMode() {
-        return new GameModeArgumentType();
+        return new ArgumentTypeGameMode();
     }
 
     @Override
diff --git a/src/main/java/net/minecraft/core/net/command/arguments/GenericGameRuleArgumentType.java b/src/main/java/net/minecraft/core/net/command/arguments/ArgumentTypeGameruleGeneric.java
similarity index 86%
rename from src/main/java/net/minecraft/core/net/command/arguments/GenericGameRuleArgumentType.java
rename to src/main/java/net/minecraft/core/net/command/arguments/ArgumentTypeGameruleGeneric.java
index fc9d36aef..337a2cf72 100644
--- a/src/main/java/net/minecraft/core/net/command/arguments/GenericGameRuleArgumentType.java
+++ b/src/main/java/net/minecraft/core/net/command/arguments/ArgumentTypeGameruleGeneric.java
@@ -12,16 +12,16 @@ import net.minecraft.core.lang.I18n;
 
 import java.util.concurrent.CompletableFuture;
 
-public class GenericGameRuleArgumentType implements ArgumentType<Object> {
+public class ArgumentTypeGameruleGeneric implements ArgumentType<Object> {
     private final GameRule<?> gameRule;
     private static final SimpleCommandExceptionType FAILURE = new SimpleCommandExceptionType(() -> I18n.getInstance().translateKey("command.argument_types.gamerule.invalid_value"));
 
-    private GenericGameRuleArgumentType(GameRule<?> gameRule) {
+    private ArgumentTypeGameruleGeneric(GameRule<?> gameRule) {
         this.gameRule = gameRule;
     }
 
-    public static GenericGameRuleArgumentType gameRule(GameRule<?> gameRule) {
-        return new GenericGameRuleArgumentType(gameRule);
+    public static ArgumentTypeGameruleGeneric gameRule(GameRule<?> gameRule) {
+        return new ArgumentTypeGameruleGeneric(gameRule);
     }
 
     @Override
diff --git a/src/main/java/net/minecraft/core/net/command/arguments/IntegerCoordinatesArgumentType.java b/src/main/java/net/minecraft/core/net/command/arguments/ArgumentTypeIntegerCoordinates.java
similarity index 96%
rename from src/main/java/net/minecraft/core/net/command/arguments/IntegerCoordinatesArgumentType.java
rename to src/main/java/net/minecraft/core/net/command/arguments/ArgumentTypeIntegerCoordinates.java
index 4ac4ce3ec..98f268447 100644
--- a/src/main/java/net/minecraft/core/net/command/arguments/IntegerCoordinatesArgumentType.java
+++ b/src/main/java/net/minecraft/core/net/command/arguments/ArgumentTypeIntegerCoordinates.java
@@ -18,11 +18,11 @@ import java.util.Collection;
 import java.util.List;
 import java.util.concurrent.CompletableFuture;
 
-public class IntegerCoordinatesArgumentType implements ArgumentType<IntegerCoordinates> {
+public class ArgumentTypeIntegerCoordinates implements ArgumentType<IntegerCoordinates> {
     private static final List<String> EXAMPLES = Arrays.asList("~ ~ ~", "0 0 0", "~ ~60 ~", "~-20 ~10 -25");
 
-    public static IntegerCoordinatesArgumentType intCoordinates() {
-        return new IntegerCoordinatesArgumentType();
+    public static ArgumentTypeIntegerCoordinates intCoordinates() {
+        return new ArgumentTypeIntegerCoordinates();
     }
 
     @Override
diff --git a/src/main/java/net/minecraft/core/net/command/arguments/ItemStackArgumentType.java b/src/main/java/net/minecraft/core/net/command/arguments/ArgumentTypeItemStack.java
similarity index 95%
rename from src/main/java/net/minecraft/core/net/command/arguments/ItemStackArgumentType.java
rename to src/main/java/net/minecraft/core/net/command/arguments/ArgumentTypeItemStack.java
index 3ff6c9992..fa6e28af6 100644
--- a/src/main/java/net/minecraft/core/net/command/arguments/ItemStackArgumentType.java
+++ b/src/main/java/net/minecraft/core/net/command/arguments/ArgumentTypeItemStack.java
@@ -17,11 +17,11 @@ import java.util.List;
 import java.util.Locale;
 import java.util.concurrent.CompletableFuture;
 
-public class ItemStackArgumentType implements ArgumentType<ItemStack> {
+public class ArgumentTypeItemStack implements ArgumentType<ItemStack> {
     private static final List<String> EXAMPLES = Arrays.asList("minecraft:item/iron_sword", "minecraft:item/iron_sword{name:\"Sword\", overrideName: true}", "minecraft:block/log_oak");
 
     public static ArgumentType<ItemStack> itemStack() {
-        return new ItemStackArgumentType();
+        return new ArgumentTypeItemStack();
     }
 
     @Override
diff --git a/src/main/java/net/minecraft/core/net/command/arguments/ParticleIdArgumentType.java b/src/main/java/net/minecraft/core/net/command/arguments/ArgumentTypeParticleId.java
similarity index 94%
rename from src/main/java/net/minecraft/core/net/command/arguments/ParticleIdArgumentType.java
rename to src/main/java/net/minecraft/core/net/command/arguments/ArgumentTypeParticleId.java
index d5a31bee7..cfe3900e6 100644
--- a/src/main/java/net/minecraft/core/net/command/arguments/ParticleIdArgumentType.java
+++ b/src/main/java/net/minecraft/core/net/command/arguments/ArgumentTypeParticleId.java
@@ -15,11 +15,11 @@ import java.util.List;
 import java.util.Locale;
 import java.util.concurrent.CompletableFuture;
 
-public class ParticleIdArgumentType implements ArgumentType<String> {
+public class ArgumentTypeParticleId implements ArgumentType<String> {
     private static final List<String> EXAMPLES = Arrays.asList("fireflyGreen", "explode", "soulflame");
 
     public static ArgumentType<String> particleId() {
-        return new ParticleIdArgumentType();
+        return new ArgumentTypeParticleId();
     }
 
     @Override
diff --git a/src/main/java/net/minecraft/core/net/command/arguments/SeasonArgumentType.java b/src/main/java/net/minecraft/core/net/command/arguments/ArgumentTypeSeason.java
similarity index 95%
rename from src/main/java/net/minecraft/core/net/command/arguments/SeasonArgumentType.java
rename to src/main/java/net/minecraft/core/net/command/arguments/ArgumentTypeSeason.java
index 8d9867b18..8d2805996 100644
--- a/src/main/java/net/minecraft/core/net/command/arguments/SeasonArgumentType.java
+++ b/src/main/java/net/minecraft/core/net/command/arguments/ArgumentTypeSeason.java
@@ -18,11 +18,11 @@ import java.util.Collection;
 import java.util.List;
 import java.util.concurrent.CompletableFuture;
 
-public class SeasonArgumentType implements ArgumentType<String> {
+public class ArgumentTypeSeason implements ArgumentType<String> {
     private static final List<String> EXAMPLES = Arrays.asList("overworld.winter", "overworld.summer", "paradise.gold");
 
     public static ArgumentType<String> season() {
-        return new SeasonArgumentType();
+        return new ArgumentTypeSeason();
     }
 
     @Override
diff --git a/src/main/java/net/minecraft/core/net/command/arguments/SoundCategoryArgumentType.java b/src/main/java/net/minecraft/core/net/command/arguments/ArgumentTypeSoundCategory.java
similarity index 94%
rename from src/main/java/net/minecraft/core/net/command/arguments/SoundCategoryArgumentType.java
rename to src/main/java/net/minecraft/core/net/command/arguments/ArgumentTypeSoundCategory.java
index 7db0ab24a..1aa871781 100644
--- a/src/main/java/net/minecraft/core/net/command/arguments/SoundCategoryArgumentType.java
+++ b/src/main/java/net/minecraft/core/net/command/arguments/ArgumentTypeSoundCategory.java
@@ -15,11 +15,11 @@ import java.util.List;
 import java.util.Locale;
 import java.util.concurrent.CompletableFuture;
 
-public class SoundCategoryArgumentType implements ArgumentType<SoundCategory> {
+public class ArgumentTypeSoundCategory implements ArgumentType<SoundCategory> {
     private static final List<String> EXAMPLES = Arrays.asList("MUSIC", "WORLD_SOUNDS", "WEATHER_SOUNDS");
 
     public static ArgumentType<SoundCategory> soundCategory() {
-        return new SoundCategoryArgumentType();
+        return new ArgumentTypeSoundCategory();
     }
 
     @Override
diff --git a/src/main/java/net/minecraft/core/net/command/arguments/SoundIdArgumentType.java b/src/main/java/net/minecraft/core/net/command/arguments/ArgumentTypeSoundId.java
similarity index 95%
rename from src/main/java/net/minecraft/core/net/command/arguments/SoundIdArgumentType.java
rename to src/main/java/net/minecraft/core/net/command/arguments/ArgumentTypeSoundId.java
index 342cf8f3b..925aeb8b2 100644
--- a/src/main/java/net/minecraft/core/net/command/arguments/SoundIdArgumentType.java
+++ b/src/main/java/net/minecraft/core/net/command/arguments/ArgumentTypeSoundId.java
@@ -18,11 +18,11 @@ import java.util.Collection;
 import java.util.List;
 import java.util.concurrent.CompletableFuture;
 
-public class SoundIdArgumentType implements ArgumentType<String> {
+public class ArgumentTypeSoundId implements ArgumentType<String> {
     private static final List<String> EXAMPLES = Arrays.asList("random.fuse.lit", "note.snare", "mob.skeletonhurt");
 
     public static ArgumentType<String> soundId() {
-        return new SoundIdArgumentType();
+        return new ArgumentTypeSoundId();
     }
 
     @Override
diff --git a/src/main/java/net/minecraft/core/net/command/arguments/TimeArgumentType.java b/src/main/java/net/minecraft/core/net/command/arguments/ArgumentTypeTime.java
similarity index 90%
rename from src/main/java/net/minecraft/core/net/command/arguments/TimeArgumentType.java
rename to src/main/java/net/minecraft/core/net/command/arguments/ArgumentTypeTime.java
index b75757b98..a084a1512 100644
--- a/src/main/java/net/minecraft/core/net/command/arguments/TimeArgumentType.java
+++ b/src/main/java/net/minecraft/core/net/command/arguments/ArgumentTypeTime.java
@@ -17,23 +17,23 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.concurrent.CompletableFuture;
 
-public class TimeArgumentType implements ArgumentType<Integer> {
+public class ArgumentTypeTime implements ArgumentType<Integer> {
     private static final Collection<String> EXAMPLES = Arrays.asList("0d", "0s", "0t", "0");
     private static final SimpleCommandExceptionType ERROR_INVALID_UNIT = new SimpleCommandExceptionType(() -> I18n.getInstance().translateKey("command.argument_types.time.invalid_unit"));
     private static final Dynamic2CommandExceptionType ERROR_TICK_COUNT_TOO_LOW = new Dynamic2CommandExceptionType((object, object2) -> () -> I18n.getInstance().translateKeyAndFormat("command.argument_types.time.tick_count_too_low", object2, object));
     private static final Map<String, Integer> UNITS = new HashMap<>();
     final int minimum;
 
-    private TimeArgumentType(int i) {
+    private ArgumentTypeTime(int i) {
         this.minimum = i;
     }
-
-    public static TimeArgumentType time() {
-        return new TimeArgumentType(0);
+    
+    public static ArgumentTypeTime time() {
+        return new ArgumentTypeTime(Integer.MIN_VALUE);
     }
 
-    public static TimeArgumentType time(int i) {
-        return new TimeArgumentType(i);
+    public static ArgumentTypeTime time(int i) {
+        return new ArgumentTypeTime(i);
     }
 
     @Override
diff --git a/src/main/java/net/minecraft/core/net/command/arguments/Vec3ArgumentType.java b/src/main/java/net/minecraft/core/net/command/arguments/ArgumentTypeVec3.java
similarity index 96%
rename from src/main/java/net/minecraft/core/net/command/arguments/Vec3ArgumentType.java
rename to src/main/java/net/minecraft/core/net/command/arguments/ArgumentTypeVec3.java
index a23b840b4..3baaf8c04 100644
--- a/src/main/java/net/minecraft/core/net/command/arguments/Vec3ArgumentType.java
+++ b/src/main/java/net/minecraft/core/net/command/arguments/ArgumentTypeVec3.java
@@ -17,11 +17,11 @@ import java.util.Collection;
 import java.util.List;
 import java.util.concurrent.CompletableFuture;
 
-public class Vec3ArgumentType implements ArgumentType<DoubleCoordinates> {
+public class ArgumentTypeVec3 implements ArgumentType<DoubleCoordinates> {
     private static final List<String> EXAMPLES = Arrays.asList("~ ~ ~", "0 0 0", "~ ~60 ~", "~-20 ~10 ~-25.5");
 
-    public static Vec3ArgumentType vec3d() {
-        return new Vec3ArgumentType();
+    public static ArgumentTypeVec3 vec3d() {
+        return new ArgumentTypeVec3();
     }
 
     @Override
diff --git a/src/main/java/net/minecraft/core/net/command/arguments/WeatherArgumentType.java b/src/main/java/net/minecraft/core/net/command/arguments/ArgumentTypeWeather.java
similarity index 92%
rename from src/main/java/net/minecraft/core/net/command/arguments/WeatherArgumentType.java
rename to src/main/java/net/minecraft/core/net/command/arguments/ArgumentTypeWeather.java
index 46aaa0d04..8d513a743 100644
--- a/src/main/java/net/minecraft/core/net/command/arguments/WeatherArgumentType.java
+++ b/src/main/java/net/minecraft/core/net/command/arguments/ArgumentTypeWeather.java
@@ -16,11 +16,11 @@ import java.util.Collection;
 import java.util.Optional;
 import java.util.concurrent.CompletableFuture;
 
-public class WeatherArgumentType implements ArgumentType<Weather> {
+public class ArgumentTypeWeather implements ArgumentType<Weather> {
     private static final Collection<String> EXAMPLES = Arrays.asList(Weathers.OVERWORLD_CLEAR.languageKey, Weathers.OVERWORLD_FOG.languageKey);
 
-    public static WeatherArgumentType weather() {
-        return new WeatherArgumentType();
+    public static ArgumentTypeWeather weather() {
+        return new ArgumentTypeWeather();
     }
 
     @Override
diff --git a/src/main/java/net/minecraft/core/net/command/arguments/WorldFeatureArgumentType.java b/src/main/java/net/minecraft/core/net/command/arguments/ArgumentTypeWorldFeature.java
similarity index 94%
rename from src/main/java/net/minecraft/core/net/command/arguments/WorldFeatureArgumentType.java
rename to src/main/java/net/minecraft/core/net/command/arguments/ArgumentTypeWorldFeature.java
index d57950592..6d94479f9 100644
--- a/src/main/java/net/minecraft/core/net/command/arguments/WorldFeatureArgumentType.java
+++ b/src/main/java/net/minecraft/core/net/command/arguments/ArgumentTypeWorldFeature.java
@@ -14,11 +14,11 @@ import java.util.Arrays;
 import java.util.Collection;
 import java.util.concurrent.CompletableFuture;
 
-public class WorldFeatureArgumentType implements ArgumentType<WorldFeature> {
+public class ArgumentTypeWorldFeature implements ArgumentType<WorldFeature> {
     private static final Collection<String> EXAMPLES = Arrays.asList("Dungeon[2, 2, 2]", "Cactus");
 
     public static ArgumentType<WorldFeature> worldFeature() {
-        return new WorldFeatureArgumentType();
+        return new ArgumentTypeWorldFeature();
     }
 
     @Override
diff --git a/src/main/java/net/minecraft/core/net/command/commands/AchievementCommand.java b/src/main/java/net/minecraft/core/net/command/commands/CommandAchievement.java
similarity index 94%
rename from src/main/java/net/minecraft/core/net/command/commands/AchievementCommand.java
rename to src/main/java/net/minecraft/core/net/command/commands/CommandAchievement.java
index cabed5bcb..2da4734d6 100644
--- a/src/main/java/net/minecraft/core/net/command/commands/AchievementCommand.java
+++ b/src/main/java/net/minecraft/core/net/command/commands/CommandAchievement.java
@@ -12,22 +12,22 @@ import net.minecraft.core.entity.Mob;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.lang.I18n;
 import net.minecraft.core.net.command.CommandSource;
-import net.minecraft.core.net.command.arguments.AchievementArgumentType;
-import net.minecraft.core.net.command.arguments.EntityArgumentType;
+import net.minecraft.core.net.command.arguments.ArgumentTypeAchievement;
+import net.minecraft.core.net.command.arguments.ArgumentTypeEntity;
 import net.minecraft.core.net.command.helpers.EntitySelector;
 
 import java.util.ArrayList;
 import java.util.List;
 
-public class AchievementCommand {
+public class CommandAchievement {
     private static final SimpleCommandExceptionType PLAYER_ALREADY_HAS_ACHIEVEMENT = new SimpleCommandExceptionType(() -> I18n.getInstance().translateKey("command.commands.achievement.grant.exception_already_has_achievement"));
 
     public static void register(CommandDispatcher<CommandSource> dispatcher) {
         dispatcher.register(((LiteralArgumentBuilder.<CommandSource>literal("achievement"))
             .requires(CommandSource::hasAdmin)
             .then((LiteralArgumentBuilder.<CommandSource>literal("grant"))
-                .then(RequiredArgumentBuilder.<CommandSource, EntitySelector>argument("entities", EntityArgumentType.players())
-                    .then(RequiredArgumentBuilder.<CommandSource, Achievement>argument("achievement", AchievementArgumentType.achievement())
+                .then(RequiredArgumentBuilder.<CommandSource, EntitySelector>argument("entities", ArgumentTypeEntity.players())
+                    .then(RequiredArgumentBuilder.<CommandSource, Achievement>argument("achievement", ArgumentTypeAchievement.achievement())
                         .executes(c -> {
                             CommandSource source = c.getSource();
                             List<? extends Entity> entities = c.getArgument("entities", EntitySelector.class).get(source);
diff --git a/src/main/java/net/minecraft/core/net/command/commands/BiomeCommand.java b/src/main/java/net/minecraft/core/net/command/commands/CommandBiome.java
similarity index 93%
rename from src/main/java/net/minecraft/core/net/command/commands/BiomeCommand.java
rename to src/main/java/net/minecraft/core/net/command/commands/CommandBiome.java
index 827916db2..1d4f726ad 100644
--- a/src/main/java/net/minecraft/core/net/command/commands/BiomeCommand.java
+++ b/src/main/java/net/minecraft/core/net/command/commands/CommandBiome.java
@@ -10,19 +10,19 @@ import net.minecraft.core.lang.I18n;
 import net.minecraft.core.util.phys.Vec3;
 import net.minecraft.core.world.biome.Biome;
 import net.minecraft.core.net.command.CommandSource;
-import net.minecraft.core.net.command.arguments.BiomeArgumentType;
-import net.minecraft.core.net.command.arguments.IntegerCoordinatesArgumentType;
+import net.minecraft.core.net.command.arguments.ArgumentTypeBiome;
+import net.minecraft.core.net.command.arguments.ArgumentTypeIntegerCoordinates;
 import net.minecraft.core.net.command.helpers.Coordinates2D;
 import net.minecraft.core.net.command.helpers.IntegerCoordinates;
 
-public class BiomeCommand {
+public class CommandBiome {
     private static final DynamicCommandExceptionType FAILURE = new DynamicCommandExceptionType(arg -> () -> I18n.getInstance().translateKeyAndFormat("command.commands.biome.locate.exception_failure", arg));
 
     public static void register(CommandDispatcher<CommandSource> dispatcher) {
         dispatcher.register(LiteralArgumentBuilder.<CommandSource>literal("biome")
                 .requires(CommandSource::hasAdmin)
                 .then(LiteralArgumentBuilder.<CommandSource>literal("get")
-                        .then(RequiredArgumentBuilder.<CommandSource, IntegerCoordinates>argument("position", IntegerCoordinatesArgumentType.intCoordinates())
+                        .then(RequiredArgumentBuilder.<CommandSource, IntegerCoordinates>argument("position", ArgumentTypeIntegerCoordinates.intCoordinates())
                                 .executes(c -> {
                                     IntegerCoordinates position = c.getArgument("position", IntegerCoordinates.class);
                                     Biome biome = c.getSource().getWorld().getBlockBiome(position.getX(c.getSource()), position.getY(c.getSource(), true), position.getZ(c.getSource()));
@@ -30,7 +30,7 @@ public class BiomeCommand {
                                     return Command.SINGLE_SUCCESS;
                                 })))
                 .then(LiteralArgumentBuilder.<CommandSource>literal("locate")
-                        .then(RequiredArgumentBuilder.<CommandSource, Biome>argument("biome", BiomeArgumentType.biome())
+                        .then(RequiredArgumentBuilder.<CommandSource, Biome>argument("biome", ArgumentTypeBiome.biome())
                                 .executes(c -> {
                                     Biome biome = c.getArgument("biome", Biome.class);
                                     Coordinates2D biomeLocation = getBiomeCoords(biome, c.getSource());
diff --git a/src/main/java/net/minecraft/core/net/command/commands/ChunkCommand.java b/src/main/java/net/minecraft/core/net/command/commands/CommandChunk.java
similarity index 90%
rename from src/main/java/net/minecraft/core/net/command/commands/ChunkCommand.java
rename to src/main/java/net/minecraft/core/net/command/commands/CommandChunk.java
index dddb37b1a..ba6971aef 100644
--- a/src/main/java/net/minecraft/core/net/command/commands/ChunkCommand.java
+++ b/src/main/java/net/minecraft/core/net/command/commands/CommandChunk.java
@@ -5,17 +5,17 @@ import com.mojang.brigadier.CommandDispatcher;
 import com.mojang.brigadier.builder.LiteralArgumentBuilder;
 import com.mojang.brigadier.builder.RequiredArgumentBuilder;
 import net.minecraft.core.net.command.CommandSource;
-import net.minecraft.core.net.command.arguments.ChunkCoordinatesArgumentType;
+import net.minecraft.core.net.command.arguments.ArgumentTypeChunkCoordinates;
 import net.minecraft.core.net.command.helpers.Coordinates2D;
 import net.minecraft.core.world.LevelListener;
 import net.minecraft.core.world.World;
 
-public class ChunkCommand {
+public class CommandChunk {
     public static void register(CommandDispatcher<CommandSource> dispatcher) {
         dispatcher.register(LiteralArgumentBuilder.<CommandSource>literal("chunk")
             .requires(CommandSource::hasAdmin)
             .then(LiteralArgumentBuilder.<CommandSource>literal("reset")
-                .then(RequiredArgumentBuilder.<CommandSource, Coordinates2D>argument("position", ChunkCoordinatesArgumentType.chunkCoordinates())
+                .then(RequiredArgumentBuilder.<CommandSource, Coordinates2D>argument("position", ArgumentTypeChunkCoordinates.chunkCoordinates())
                     .executes(c -> {
                         CommandSource source = c.getSource();
                         Coordinates2D coordinates2D = c.getArgument("position", Coordinates2D.class);
diff --git a/src/main/java/net/minecraft/core/net/command/commands/ClearCommand.java b/src/main/java/net/minecraft/core/net/command/commands/CommandClear.java
similarity index 95%
rename from src/main/java/net/minecraft/core/net/command/commands/ClearCommand.java
rename to src/main/java/net/minecraft/core/net/command/commands/CommandClear.java
index 2d8738511..8c22343ce 100644
--- a/src/main/java/net/minecraft/core/net/command/commands/ClearCommand.java
+++ b/src/main/java/net/minecraft/core/net/command/commands/CommandClear.java
@@ -12,8 +12,8 @@ import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.lang.I18n;
 import net.minecraft.core.net.command.CommandSource;
-import net.minecraft.core.net.command.arguments.EntityArgumentType;
-import net.minecraft.core.net.command.arguments.ItemStackArgumentType;
+import net.minecraft.core.net.command.arguments.ArgumentTypeEntity;
+import net.minecraft.core.net.command.arguments.ArgumentTypeItemStack;
 import net.minecraft.core.net.command.exceptions.CommandExceptions;
 import net.minecraft.core.net.command.helpers.EntitySelector;
 import org.jetbrains.annotations.Nullable;
@@ -23,7 +23,7 @@ import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 
-public class ClearCommand {
+public class CommandClear {
     private static final Logger LOGGER = LogUtils.getLogger();
 
     private static final SimpleCommandExceptionType FAILURE = new SimpleCommandExceptionType(() -> I18n.getInstance().translateKey("command.commands.clear.exception_failure"));
@@ -44,7 +44,7 @@ public class ClearCommand {
 
                 return Command.SINGLE_SUCCESS;
             })
-            .then(RequiredArgumentBuilder.<CommandSource, EntitySelector>argument("players", EntityArgumentType.players())
+            .then(RequiredArgumentBuilder.<CommandSource, EntitySelector>argument("players", ArgumentTypeEntity.players())
                 .executes(c -> {
                     CommandSource source = c.getSource();
                     List<? extends Entity> players = c.getArgument("players", EntitySelector.class).get(source);
@@ -60,7 +60,7 @@ public class ClearCommand {
 
                     return Command.SINGLE_SUCCESS;
                 })
-                .then(RequiredArgumentBuilder.<CommandSource, ItemStack>argument("item", ItemStackArgumentType.itemStack())
+                .then(RequiredArgumentBuilder.<CommandSource, ItemStack>argument("item", ArgumentTypeItemStack.itemStack())
                     .executes(c -> {
                         CommandSource source = c.getSource();
                         List<? extends Entity> players = c.getArgument("players", EntitySelector.class).get(source);
diff --git a/src/main/java/net/minecraft/core/net/command/commands/CloneCommand.java b/src/main/java/net/minecraft/core/net/command/commands/CommandClone.java
similarity index 93%
rename from src/main/java/net/minecraft/core/net/command/commands/CloneCommand.java
rename to src/main/java/net/minecraft/core/net/command/commands/CommandClone.java
index 1ca536007..8c3138a4e 100644
--- a/src/main/java/net/minecraft/core/net/command/commands/CloneCommand.java
+++ b/src/main/java/net/minecraft/core/net/command/commands/CommandClone.java
@@ -8,7 +8,7 @@ import com.mojang.brigadier.context.CommandContext;
 import com.mojang.brigadier.exceptions.CommandSyntaxException;
 import com.mojang.brigadier.exceptions.SimpleCommandExceptionType;
 import com.mojang.nbt.CompoundTag;
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.lang.I18n;
 import net.minecraft.core.net.command.util.CommandHelper;
 import net.minecraft.core.util.phys.AABB;
@@ -16,9 +16,9 @@ import net.minecraft.core.util.phys.Vec3;
 import net.minecraft.core.world.Dimension;
 import net.minecraft.core.world.World;
 import net.minecraft.core.net.command.CommandSource;
-import net.minecraft.core.net.command.arguments.BlockArgumentType;
-import net.minecraft.core.net.command.arguments.DimensionArgumentType;
-import net.minecraft.core.net.command.arguments.IntegerCoordinatesArgumentType;
+import net.minecraft.core.net.command.arguments.ArgumentTypeBlock;
+import net.minecraft.core.net.command.arguments.ArgumentTypeDimension;
+import net.minecraft.core.net.command.arguments.ArgumentTypeIntegerCoordinates;
 import net.minecraft.core.net.command.helpers.BlockInput;
 import net.minecraft.core.net.command.helpers.ClonedBlock;
 import net.minecraft.core.net.command.helpers.IntegerCoordinate;
@@ -28,7 +28,7 @@ import org.jetbrains.annotations.Nullable;
 import java.util.HashMap;
 import java.util.Map;
 
-public class CloneCommand {
+public class CommandClone {
     private static final SimpleCommandExceptionType INSIDE_CLONED_AREA = new SimpleCommandExceptionType(() -> I18n.getInstance().translateKey("command.commands.clone.exception_inside_cloned_area"));
     private static final SimpleCommandExceptionType DESTINATION_NOT_LOADED = new SimpleCommandExceptionType(() -> I18n.getInstance().translateKey("command.commands.clone.exception_destination_not_loaded"));
     private static final SimpleCommandExceptionType SOURCE_NOT_LOADED = new SimpleCommandExceptionType(() -> I18n.getInstance().translateKey("command.commands.clone.exception_source_not_loaded"));
@@ -41,20 +41,20 @@ public class CloneCommand {
                     return c.getSource().getWorld();
                 }))
                 .then(LiteralArgumentBuilder.<CommandSource>literal("from")
-                        .then((RequiredArgumentBuilder.<CommandSource, Dimension>argument("sourceDimension", DimensionArgumentType.dimension()))
+                        .then((RequiredArgumentBuilder.<CommandSource, Dimension>argument("sourceDimension", ArgumentTypeDimension.dimension()))
                                 .then(beginEndDestinationAndModeSuffix(c -> {
                                     return c.getSource().getWorld(c.getArgument("sourceDimension", Dimension.class).id);
                                 })))));
     }
 
     private static ArgumentBuilder<CommandSource, ?> beginEndDestinationAndModeSuffix(CommandFunction<CommandContext<CommandSource>, World> commandFunction) {
-        return RequiredArgumentBuilder.<CommandSource, IntegerCoordinates>argument("begin", IntegerCoordinatesArgumentType.intCoordinates())
-                .then(RequiredArgumentBuilder.<CommandSource, IntegerCoordinates>argument("end", IntegerCoordinatesArgumentType.intCoordinates())
+        return RequiredArgumentBuilder.<CommandSource, IntegerCoordinates>argument("begin", ArgumentTypeIntegerCoordinates.intCoordinates())
+                .then(RequiredArgumentBuilder.<CommandSource, IntegerCoordinates>argument("end", ArgumentTypeIntegerCoordinates.intCoordinates())
                         .then(destinationAndModeSuffix(commandFunction, c -> {
                             return c.getSource().getWorld();
                         }))
                         .then(LiteralArgumentBuilder.<CommandSource>literal("to")
-                                .then((RequiredArgumentBuilder.<CommandSource, Dimension>argument("targetDimension", DimensionArgumentType.dimension()))
+                                .then((RequiredArgumentBuilder.<CommandSource, Dimension>argument("targetDimension", ArgumentTypeDimension.dimension()))
                                         .then(destinationAndModeSuffix(commandFunction, c -> {
                                             return c.getSource().getWorld(c.getArgument("targetDimension", Dimension.class).id);
                                         })))));
@@ -69,7 +69,7 @@ public class CloneCommand {
         CommandFunction<CommandContext<CommandSource>, WorldAndPosition> commandFunction3 = c -> getWorldAndPosition(c, commandFunction.apply(c), "begin");
         CommandFunction<CommandContext<CommandSource>, WorldAndPosition> commandFunction4 = c -> getWorldAndPosition(c, commandFunction.apply(c), "end");
         CommandFunction<CommandContext<CommandSource>, WorldAndPosition> commandFunction5 = c -> getWorldAndPosition(c, commandFunction2.apply(c), "destination");
-        return RequiredArgumentBuilder.<CommandSource, IntegerCoordinates>argument("destination", IntegerCoordinatesArgumentType.intCoordinates())
+        return RequiredArgumentBuilder.<CommandSource, IntegerCoordinates>argument("destination", ArgumentTypeIntegerCoordinates.intCoordinates())
                 .executes(c -> {
                     return clone(c.getSource(), commandFunction3.apply(c), commandFunction4.apply(c), commandFunction5.apply(c), null, CloneMode.NORMAL);
                 })
@@ -84,7 +84,7 @@ public class CloneCommand {
                 .then(LiteralArgumentBuilder.<CommandSource>literal("filtered")
                         .then(wrapWithCloneMode(commandFunction3, commandFunction4, commandFunction5, c -> {
                             return c.getArgument("filter", BlockInput.class);
-                            }, RequiredArgumentBuilder.<CommandSource, BlockInput>argument("filter", BlockArgumentType.block())
+                            }, RequiredArgumentBuilder.<CommandSource, BlockInput>argument("filter", ArgumentTypeBlock.block())
                                 .executes(c -> {
                                     return clone(c.getSource(), commandFunction3.apply(c), commandFunction4.apply(c), commandFunction5.apply(c), c.getArgument("filter", BlockInput.class), CloneMode.NORMAL);
                                 }))));
@@ -170,8 +170,8 @@ public class CloneCommand {
             int offsetDestinationY = destinationY + entry.getKey().getY(source, true);
             int offsetDestinationZ = destinationZ + entry.getKey().getZ(source);
             CompoundTag blockTag = new CompoundTag();
-            BlockEntity blockEntity = destination.getWorld().getBlockEntity(offsetDestinationX, offsetDestinationY, offsetDestinationZ);
-            if (blockEntity != null) blockEntity.writeToNBT(blockTag);
+            TileEntity tileEntity = destination.getWorld().getBlockEntity(offsetDestinationX, offsetDestinationY, offsetDestinationZ);
+            if (tileEntity != null) tileEntity.writeToNBT(blockTag);
             if (filter == null || (destination.getWorld().getBlockId(offsetDestinationX, offsetDestinationY, offsetDestinationZ) == filter.getBlockId() && destination.getWorld().getBlockMetadata(offsetDestinationX, offsetDestinationY, offsetDestinationZ) == filter.getMetadata() && (filter.getTag().getValues().isEmpty() || CommandHelper.blockEntitiesAreEqual(blockTag, filter.getTag())))) {
                 if (destination.getWorld().getBlockId(offsetDestinationX, offsetDestinationY, offsetDestinationZ) != entry.getValue().getBlockId() || destination.getWorld().getBlockMetadata(offsetDestinationX, offsetDestinationY, offsetDestinationZ) != entry.getValue().getMetadata()) ++clonedBlocks;
                 destination.getWorld().setBlockWithNotify(offsetDestinationX, offsetDestinationY, offsetDestinationZ, entry.getValue().getBlockId());
diff --git a/src/main/java/net/minecraft/core/net/command/commands/DamageCommand.java b/src/main/java/net/minecraft/core/net/command/commands/CommandDamage.java
similarity index 87%
rename from src/main/java/net/minecraft/core/net/command/commands/DamageCommand.java
rename to src/main/java/net/minecraft/core/net/command/commands/CommandDamage.java
index f1cad1e5b..2c0c70802 100644
--- a/src/main/java/net/minecraft/core/net/command/commands/DamageCommand.java
+++ b/src/main/java/net/minecraft/core/net/command/commands/CommandDamage.java
@@ -7,18 +7,18 @@ import com.mojang.brigadier.builder.RequiredArgumentBuilder;
 import net.minecraft.core.entity.Entity;
 import net.minecraft.core.util.helper.DamageType;
 import net.minecraft.core.net.command.CommandSource;
-import net.minecraft.core.net.command.arguments.DamageTypeArgumentType;
-import net.minecraft.core.net.command.arguments.EntityArgumentType;
+import net.minecraft.core.net.command.arguments.ArgumentTypeDamageType;
+import net.minecraft.core.net.command.arguments.ArgumentTypeEntity;
 import net.minecraft.core.net.command.helpers.EntitySelector;
 
 import java.util.List;
 
-public class DamageCommand {
+public class CommandDamage {
     public static void register(CommandDispatcher<CommandSource> dispatcher) {
         dispatcher.register(LiteralArgumentBuilder.<CommandSource>literal("damage")
                 .requires(CommandSource::hasAdmin)
-                .then(RequiredArgumentBuilder.<CommandSource, EntitySelector>argument("entities", EntityArgumentType.entities())
-                        .then(RequiredArgumentBuilder.<CommandSource, DamageType>argument("type", DamageTypeArgumentType.damageType())
+                .then(RequiredArgumentBuilder.<CommandSource, EntitySelector>argument("entities", ArgumentTypeEntity.entities())
+                        .then(RequiredArgumentBuilder.<CommandSource, DamageType>argument("type", ArgumentTypeDamageType.damageType())
                                 .then(RequiredArgumentBuilder.<CommandSource, Integer>argument("amount", IntegerArgumentType.integer(0, 32768))
                                         .executes(c -> {
                                             List<? extends Entity> entities = c.getArgument("entities", EntitySelector.class).get(c.getSource());
diff --git a/src/main/java/net/minecraft/core/net/command/commands/FillCommand.java b/src/main/java/net/minecraft/core/net/command/commands/CommandFill.java
similarity index 95%
rename from src/main/java/net/minecraft/core/net/command/commands/FillCommand.java
rename to src/main/java/net/minecraft/core/net/command/commands/CommandFill.java
index 20805ea11..c61e6c494 100644
--- a/src/main/java/net/minecraft/core/net/command/commands/FillCommand.java
+++ b/src/main/java/net/minecraft/core/net/command/commands/CommandFill.java
@@ -5,11 +5,11 @@ import com.mojang.brigadier.builder.LiteralArgumentBuilder;
 import com.mojang.brigadier.builder.RequiredArgumentBuilder;
 import com.mojang.brigadier.exceptions.CommandSyntaxException;
 import com.mojang.nbt.CompoundTag;
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.net.command.CommandSource;
-import net.minecraft.core.net.command.arguments.BlockArgumentType;
-import net.minecraft.core.net.command.arguments.IntegerCoordinatesArgumentType;
+import net.minecraft.core.net.command.arguments.ArgumentTypeBlock;
+import net.minecraft.core.net.command.arguments.ArgumentTypeIntegerCoordinates;
 import net.minecraft.core.net.command.exceptions.CommandExceptions;
 import net.minecraft.core.net.command.helpers.BlockInput;
 import net.minecraft.core.net.command.helpers.IntegerCoordinates;
@@ -17,13 +17,13 @@ import net.minecraft.core.net.command.util.CommandHelper;
 import net.minecraft.core.world.World;
 import org.jetbrains.annotations.Nullable;
 
-public class FillCommand {
+public class CommandFill {
     public static void register(CommandDispatcher<CommandSource> dispatcher) {
         dispatcher.register(LiteralArgumentBuilder.<CommandSource>literal("fill")
             .requires(CommandSource::hasAdmin)
-            .then(RequiredArgumentBuilder.<CommandSource, IntegerCoordinates>argument("first", IntegerCoordinatesArgumentType.intCoordinates())
-                .then(RequiredArgumentBuilder.<CommandSource, IntegerCoordinates>argument("second", IntegerCoordinatesArgumentType.intCoordinates())
-                    .then(RequiredArgumentBuilder.<CommandSource, BlockInput>argument("block", BlockArgumentType.block())
+            .then(RequiredArgumentBuilder.<CommandSource, IntegerCoordinates>argument("first", ArgumentTypeIntegerCoordinates.intCoordinates())
+                .then(RequiredArgumentBuilder.<CommandSource, IntegerCoordinates>argument("second", ArgumentTypeIntegerCoordinates.intCoordinates())
+                    .then(RequiredArgumentBuilder.<CommandSource, BlockInput>argument("block", ArgumentTypeBlock.block())
                         .executes(c -> {
                             IntegerCoordinates first = c.getArgument("first", IntegerCoordinates.class);
                             IntegerCoordinates second = c.getArgument("second", IntegerCoordinates.class);
@@ -45,7 +45,7 @@ public class FillCommand {
                                 c.getSource().sendTranslatableMessage(blocksFilled == 1 ? "command.commands.fill.success_single" : "command.commands.fill.success_multiple", blocksFilled);
                                 return blocksFilled;
                             })
-                            .then(RequiredArgumentBuilder.<CommandSource, BlockInput>argument("filter", BlockArgumentType.block())
+                            .then(RequiredArgumentBuilder.<CommandSource, BlockInput>argument("filter", ArgumentTypeBlock.block())
                                 .executes(c -> {
                                     IntegerCoordinates first = c.getArgument("first", IntegerCoordinates.class);
                                     IntegerCoordinates second = c.getArgument("second", IntegerCoordinates.class);
@@ -125,8 +125,8 @@ public class FillCommand {
             for (int y = minY; y <= maxY; y++) {
                 for (int z = minZ; z <= maxZ; z++) {
                     CompoundTag blockTag = new CompoundTag();
-                    BlockEntity blockEntity = world.getBlockEntity(x, y, z);
-                    if (blockEntity != null) blockEntity.writeToNBT(blockTag);
+                    TileEntity tileEntity = world.getBlockEntity(x, y, z);
+                    if (tileEntity != null) tileEntity.writeToNBT(blockTag);
                     if ((block.getBlockId() != world.getBlockId(x, y, z) || block.getMetadata() != world.getBlockMetadata(x, y, z) || !CommandHelper.blockEntitiesAreEqual(block.getTag(), CommandHelper.tagFrom(world.getBlockEntity(x, y, z)))) && (filter == null || (world.getBlockId(x, y, z) == filter.getBlockId() && world.getBlockMetadata(x, y, z) == filter.getMetadata() && (filter.getTag().getValues().isEmpty() || CommandHelper.blockEntitiesAreEqual(blockTag, filter.getTag()))))) {
                         ++blocksFilled;
                         if (destroy && world.getBlock(x, y, z) != null)
diff --git a/src/main/java/net/minecraft/core/net/command/commands/GameModeCommand.java b/src/main/java/net/minecraft/core/net/command/commands/CommandGameMode.java
similarity index 91%
rename from src/main/java/net/minecraft/core/net/command/commands/GameModeCommand.java
rename to src/main/java/net/minecraft/core/net/command/commands/CommandGameMode.java
index fbf3b7865..5a2aae16d 100644
--- a/src/main/java/net/minecraft/core/net/command/commands/GameModeCommand.java
+++ b/src/main/java/net/minecraft/core/net/command/commands/CommandGameMode.java
@@ -8,8 +8,8 @@ import net.minecraft.core.entity.Entity;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.lang.I18n;
 import net.minecraft.core.net.command.CommandSource;
-import net.minecraft.core.net.command.arguments.EntityArgumentType;
-import net.minecraft.core.net.command.arguments.GameModeArgumentType;
+import net.minecraft.core.net.command.arguments.ArgumentTypeEntity;
+import net.minecraft.core.net.command.arguments.ArgumentTypeGameMode;
 import net.minecraft.core.net.command.exceptions.CommandExceptions;
 import net.minecraft.core.net.command.helpers.EntitySelector;
 import net.minecraft.core.net.command.util.CommandHelper;
@@ -17,11 +17,11 @@ import net.minecraft.core.player.gamemode.Gamemode;
 
 import java.util.List;
 
-public class GameModeCommand {
+public class CommandGameMode {
     public static void register(CommandDispatcher<CommandSource> dispatcher) {
         dispatcher.register(LiteralArgumentBuilder.<CommandSource>literal("gamemode")
             .requires(CommandSource::hasAdmin)
-            .then(RequiredArgumentBuilder.<CommandSource, Gamemode>argument("gamemode", GameModeArgumentType.gameMode())
+            .then(RequiredArgumentBuilder.<CommandSource, Gamemode>argument("gamemode", ArgumentTypeGameMode.gameMode())
                 .executes(c -> {
                     CommandSource source = c.getSource();
                     Gamemode gameMode = c.getArgument("gamemode", Gamemode.class);
@@ -34,7 +34,7 @@ public class GameModeCommand {
                     source.sendTranslatableMessage("command.commands.gamemode.success_self", I18n.getInstance().translateKey(gameMode.getLanguageKey() + ".name"));
                     return Command.SINGLE_SUCCESS;
                 })
-                .then(RequiredArgumentBuilder.<CommandSource, EntitySelector>argument("targets", EntityArgumentType.players())
+                .then(RequiredArgumentBuilder.<CommandSource, EntitySelector>argument("targets", ArgumentTypeEntity.players())
                     .executes(c -> {
                         CommandSource source = c.getSource();
                         Gamemode gameMode = c.getArgument("gamemode", Gamemode.class);
diff --git a/src/main/java/net/minecraft/core/net/command/commands/GameRuleCommand.java b/src/main/java/net/minecraft/core/net/command/commands/CommandGameRule.java
similarity index 94%
rename from src/main/java/net/minecraft/core/net/command/commands/GameRuleCommand.java
rename to src/main/java/net/minecraft/core/net/command/commands/CommandGameRule.java
index 3805858a9..f396d100d 100644
--- a/src/main/java/net/minecraft/core/net/command/commands/GameRuleCommand.java
+++ b/src/main/java/net/minecraft/core/net/command/commands/CommandGameRule.java
@@ -10,11 +10,11 @@ import net.minecraft.core.data.gamerule.GameRule;
 import net.minecraft.core.data.gamerule.GameRuleBoolean;
 import net.minecraft.core.data.registry.Registries;
 import net.minecraft.core.net.command.CommandSource;
-import net.minecraft.core.net.command.arguments.GenericGameRuleArgumentType;
+import net.minecraft.core.net.command.arguments.ArgumentTypeGameruleGeneric;
 import net.minecraft.core.net.packet.GameRulePacket;
 import net.minecraft.server.net.command.ServerCommandSource;
 
-public class GameRuleCommand {
+public class CommandGameRule {
     public static void register(CommandDispatcher<CommandSource> dispatcher) {
         final LiteralArgumentBuilder<CommandSource> argumentBuilder = LiteralArgumentBuilder.<CommandSource>literal("gamerule").requires(CommandSource::hasAdmin);
         for (final GameRule<?> gameRule : Registries.GAME_RULES) {
@@ -30,7 +30,7 @@ public class GameRuleCommand {
                             return Command.SINGLE_SUCCESS;
                         });
             } else {
-                gameRuleValueArgument = RequiredArgumentBuilder.<CommandSource, Object>argument("value", GenericGameRuleArgumentType.gameRule(gameRule))
+                gameRuleValueArgument = RequiredArgumentBuilder.<CommandSource, Object>argument("value", ArgumentTypeGameruleGeneric.gameRule(gameRule))
                         .executes(c -> {
                             Object o = c.getArgument("value", Object.class);
                             c.getSource().getWorld().getLevelData().getGameRules().setValue((GameRule<? super Object>) gameRule, o);
diff --git a/src/main/java/net/minecraft/core/net/command/commands/GiveCommand.java b/src/main/java/net/minecraft/core/net/command/commands/CommandGive.java
similarity index 94%
rename from src/main/java/net/minecraft/core/net/command/commands/GiveCommand.java
rename to src/main/java/net/minecraft/core/net/command/commands/CommandGive.java
index d9dba700c..36ded5a31 100644
--- a/src/main/java/net/minecraft/core/net/command/commands/GiveCommand.java
+++ b/src/main/java/net/minecraft/core/net/command/commands/CommandGive.java
@@ -10,18 +10,18 @@ import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.net.command.util.CommandHelper;
 import net.minecraft.core.net.command.CommandSource;
-import net.minecraft.core.net.command.arguments.EntityArgumentType;
-import net.minecraft.core.net.command.arguments.ItemStackArgumentType;
+import net.minecraft.core.net.command.arguments.ArgumentTypeEntity;
+import net.minecraft.core.net.command.arguments.ArgumentTypeItemStack;
 import net.minecraft.core.net.command.helpers.EntitySelector;
 
 import java.util.List;
 
-public class GiveCommand {
+public class CommandGive {
     public static void register(CommandDispatcher<CommandSource> dispatcher) {
         dispatcher.register(LiteralArgumentBuilder.<CommandSource>literal("give")
                 .requires(CommandSource::hasAdmin)
-                .then(RequiredArgumentBuilder.<CommandSource, EntitySelector>argument("target", EntityArgumentType.players())
-                        .then(RequiredArgumentBuilder.<CommandSource, ItemStack>argument("item", ItemStackArgumentType.itemStack())
+                .then(RequiredArgumentBuilder.<CommandSource, EntitySelector>argument("target", ArgumentTypeEntity.players())
+                        .then(RequiredArgumentBuilder.<CommandSource, ItemStack>argument("item", ArgumentTypeItemStack.itemStack())
                                 .executes(c -> {
                                     CommandSource source = c.getSource();
                                     ItemStack itemStack = c.getArgument("item", ItemStack.class);
diff --git a/src/main/java/net/minecraft/core/net/command/commands/HealCommand.java b/src/main/java/net/minecraft/core/net/command/commands/CommandHeal.java
similarity index 94%
rename from src/main/java/net/minecraft/core/net/command/commands/HealCommand.java
rename to src/main/java/net/minecraft/core/net/command/commands/CommandHeal.java
index f11a5d3b6..cbcf96366 100644
--- a/src/main/java/net/minecraft/core/net/command/commands/HealCommand.java
+++ b/src/main/java/net/minecraft/core/net/command/commands/CommandHeal.java
@@ -9,17 +9,17 @@ import net.minecraft.core.entity.Mob;
 import net.minecraft.core.util.helper.MathHelper;
 import net.minecraft.core.world.World;
 import net.minecraft.core.net.command.CommandSource;
-import net.minecraft.core.net.command.arguments.EntityArgumentType;
+import net.minecraft.core.net.command.arguments.ArgumentTypeEntity;
 import net.minecraft.core.net.command.helpers.EntitySelector;
 
 import java.lang.reflect.InvocationTargetException;
 import java.util.List;
 
-public class HealCommand {
+public class CommandHeal {
     public static void register(CommandDispatcher<CommandSource> dispatcher) {
         dispatcher.register(LiteralArgumentBuilder.<CommandSource>literal("heal")
                 .requires(CommandSource::hasAdmin)
-                .then(RequiredArgumentBuilder.<CommandSource, EntitySelector>argument("entities", EntityArgumentType.entities())
+                .then(RequiredArgumentBuilder.<CommandSource, EntitySelector>argument("entities", ArgumentTypeEntity.entities())
                         .then(RequiredArgumentBuilder.<CommandSource, Integer>argument("amount", IntegerArgumentType.integer(0, 32768))
                                 .executes(c -> {
                                     List<? extends Entity> entities = c.getArgument("entities", EntitySelector.class).get(c.getSource());
diff --git a/src/main/java/net/minecraft/core/net/command/commands/HelpCommand.java b/src/main/java/net/minecraft/core/net/command/commands/CommandHelp.java
similarity index 97%
rename from src/main/java/net/minecraft/core/net/command/commands/HelpCommand.java
rename to src/main/java/net/minecraft/core/net/command/commands/CommandHelp.java
index 5119abc86..57a9aa602 100644
--- a/src/main/java/net/minecraft/core/net/command/commands/HelpCommand.java
+++ b/src/main/java/net/minecraft/core/net/command/commands/CommandHelp.java
@@ -11,11 +11,9 @@ import net.minecraft.core.lang.I18n;
 import net.minecraft.core.net.command.CommandSource;
 import net.minecraft.core.net.command.util.Iterables;
 
-import java.util.Arrays;
-import java.util.List;
 import java.util.Map;
 
-public class HelpCommand {
+public class CommandHelp {
     private static final SimpleCommandExceptionType FAILURE = new SimpleCommandExceptionType(() -> I18n.getInstance().translateKey("command.commands.help.exception_failure"));
 
     public static void register(CommandDispatcher<CommandSource> commandDispatcher) {
diff --git a/src/main/java/net/minecraft/core/net/command/commands/KillCommand.java b/src/main/java/net/minecraft/core/net/command/commands/CommandKill.java
similarity index 95%
rename from src/main/java/net/minecraft/core/net/command/commands/KillCommand.java
rename to src/main/java/net/minecraft/core/net/command/commands/CommandKill.java
index 13e5df255..96c353d82 100644
--- a/src/main/java/net/minecraft/core/net/command/commands/KillCommand.java
+++ b/src/main/java/net/minecraft/core/net/command/commands/CommandKill.java
@@ -11,13 +11,13 @@ import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.lang.I18n;
 import net.minecraft.core.net.command.util.CommandHelper;
 import net.minecraft.core.net.command.CommandSource;
-import net.minecraft.core.net.command.arguments.EntityArgumentType;
+import net.minecraft.core.net.command.arguments.ArgumentTypeEntity;
 import net.minecraft.core.net.command.exceptions.CommandExceptions;
 import net.minecraft.core.net.command.helpers.EntitySelector;
 
 import java.util.concurrent.CopyOnWriteArrayList;
 
-public class KillCommand {
+public class CommandKill {
     private static final SimpleCommandExceptionType FAILURE = new SimpleCommandExceptionType(() -> I18n.getInstance().translateKey("command.commands.kill.exception_failure"));
 
     public static void register(CommandDispatcher<CommandSource> dispatcher) {
@@ -35,7 +35,7 @@ public class KillCommand {
 
                     return Command.SINGLE_SUCCESS;
                 })
-                .then(RequiredArgumentBuilder.<CommandSource, EntitySelector>argument("entities", EntityArgumentType.entities())
+                .then(RequiredArgumentBuilder.<CommandSource, EntitySelector>argument("entities", ArgumentTypeEntity.entities())
                         .executes(c -> {
                             CommandSource source = c.getSource();
                             EntitySelector entitySelector = c.getArgument("entities", EntitySelector.class);
diff --git a/src/main/java/net/minecraft/core/net/command/commands/MessageCommand.java b/src/main/java/net/minecraft/core/net/command/commands/CommandMessage.java
similarity index 94%
rename from src/main/java/net/minecraft/core/net/command/commands/MessageCommand.java
rename to src/main/java/net/minecraft/core/net/command/commands/CommandMessage.java
index 0d52eb076..04aaea7c3 100644
--- a/src/main/java/net/minecraft/core/net/command/commands/MessageCommand.java
+++ b/src/main/java/net/minecraft/core/net/command/commands/CommandMessage.java
@@ -11,16 +11,16 @@ import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.lang.I18n;
 import net.minecraft.core.net.command.TextFormatting;
 import net.minecraft.core.net.command.CommandSource;
-import net.minecraft.core.net.command.arguments.EntityArgumentType;
+import net.minecraft.core.net.command.arguments.ArgumentTypeEntity;
 import net.minecraft.core.net.command.helpers.EntitySelector;
 import net.minecraft.core.util.helper.LoggedPrintStream;
 
 import java.util.List;
 
-public class MessageCommand {
+public class CommandMessage {
     public static void register(CommandDispatcher<CommandSource> dispatcher) {
         CommandNode<CommandSource> command = dispatcher.register(LiteralArgumentBuilder.<CommandSource>literal("message")
-                .then(RequiredArgumentBuilder.<CommandSource, EntitySelector>argument("targets", EntityArgumentType.players())
+                .then(RequiredArgumentBuilder.<CommandSource, EntitySelector>argument("targets", ArgumentTypeEntity.players())
                         .then(RequiredArgumentBuilder.<CommandSource, String>argument("message", StringArgumentType.greedyString())
                                 .executes(c -> {
                                     CommandSource source = c.getSource();
diff --git a/src/main/java/net/minecraft/core/net/command/commands/MobSpawningCommand.java b/src/main/java/net/minecraft/core/net/command/commands/CommandMobSpawning.java
similarity index 94%
rename from src/main/java/net/minecraft/core/net/command/commands/MobSpawningCommand.java
rename to src/main/java/net/minecraft/core/net/command/commands/CommandMobSpawning.java
index 9734b8079..d13ac478a 100644
--- a/src/main/java/net/minecraft/core/net/command/commands/MobSpawningCommand.java
+++ b/src/main/java/net/minecraft/core/net/command/commands/CommandMobSpawning.java
@@ -10,14 +10,13 @@ import net.minecraft.core.entity.Entity;
 import net.minecraft.core.entity.EntityDispatcher;
 import net.minecraft.core.lang.I18n;
 import net.minecraft.core.net.command.CommandSource;
-import net.minecraft.core.net.command.arguments.EntitySummonArgumentType;
-import net.minecraft.core.world.SpawnerMobs;
+import net.minecraft.core.net.command.arguments.ArgumentTypeEntitySummon;
 import net.minecraft.core.world.World;
 import net.minecraft.core.world.config.spawning.SpawnerConfig;
 
 import java.util.Collection;
 
-public class MobSpawningCommand {
+public class CommandMobSpawning {
     private static final DynamicCommandExceptionType FAILURE =
         new DynamicCommandExceptionType(arg -> () -> I18n.getInstance().translateKeyAndFormat("command.commands.mobspawning.exception_failure", arg));
 
@@ -39,7 +38,7 @@ public class MobSpawningCommand {
                         return Command.SINGLE_SUCCESS;
                     }))
                     .then(LiteralArgumentBuilder.<CommandSource>literal("set")
-                        .then(RequiredArgumentBuilder.<CommandSource, Class<? extends Entity>>argument("entity", EntitySummonArgumentType.entity())
+                        .then(RequiredArgumentBuilder.<CommandSource, Class<? extends Entity>>argument("entity", ArgumentTypeEntitySummon.entity())
                             .then(RequiredArgumentBuilder.<CommandSource, Boolean>argument("value", BoolArgumentType.bool())
                                 .executes(c -> {
                                     World world = c.getSource().getWorld();
diff --git a/src/main/java/net/minecraft/core/net/command/commands/PlaceCommand.java b/src/main/java/net/minecraft/core/net/command/commands/CommandPlace.java
similarity index 90%
rename from src/main/java/net/minecraft/core/net/command/commands/PlaceCommand.java
rename to src/main/java/net/minecraft/core/net/command/commands/CommandPlace.java
index 5bb224441..b2cd4b023 100644
--- a/src/main/java/net/minecraft/core/net/command/commands/PlaceCommand.java
+++ b/src/main/java/net/minecraft/core/net/command/commands/CommandPlace.java
@@ -11,19 +11,19 @@ import net.minecraft.core.world.LevelListener;
 import net.minecraft.core.world.World;
 import net.minecraft.core.world.generate.feature.WorldFeature;
 import net.minecraft.core.net.command.CommandSource;
-import net.minecraft.core.net.command.arguments.IntegerCoordinatesArgumentType;
-import net.minecraft.core.net.command.arguments.WorldFeatureArgumentType;
+import net.minecraft.core.net.command.arguments.ArgumentTypeIntegerCoordinates;
+import net.minecraft.core.net.command.arguments.ArgumentTypeWorldFeature;
 import net.minecraft.core.net.command.exceptions.CommandExceptions;
 import net.minecraft.core.net.command.helpers.IntegerCoordinates;
 
-public class PlaceCommand {
+public class CommandPlace {
     private static final SimpleCommandExceptionType FAILURE = new SimpleCommandExceptionType(() -> I18n.getInstance().translateKey("command.commands.place.exception_failure"));
 
     public static void register(CommandDispatcher<CommandSource> dispatcher) {
         CommandNode<CommandSource> command = dispatcher.register(LiteralArgumentBuilder.<CommandSource>literal("place")
                 .requires(CommandSource::hasAdmin)
-                .then(RequiredArgumentBuilder.<CommandSource, WorldFeature>argument("feature", WorldFeatureArgumentType.worldFeature())
-                        .then(RequiredArgumentBuilder.<CommandSource, IntegerCoordinates>argument("position", IntegerCoordinatesArgumentType.intCoordinates())
+                .then(RequiredArgumentBuilder.<CommandSource, WorldFeature>argument("feature", ArgumentTypeWorldFeature.worldFeature())
+                        .then(RequiredArgumentBuilder.<CommandSource, IntegerCoordinates>argument("position", ArgumentTypeIntegerCoordinates.intCoordinates())
                                 .executes(c -> {
                                     CommandSource source = c.getSource();
                                     WorldFeature feature = c.getArgument("feature", WorldFeature.class);
diff --git a/src/main/java/net/minecraft/core/net/command/commands/PlaySoundCommand.java b/src/main/java/net/minecraft/core/net/command/commands/CommandPlaySound.java
similarity index 94%
rename from src/main/java/net/minecraft/core/net/command/commands/PlaySoundCommand.java
rename to src/main/java/net/minecraft/core/net/command/commands/CommandPlaySound.java
index fa1a63021..4b75031bd 100644
--- a/src/main/java/net/minecraft/core/net/command/commands/PlaySoundCommand.java
+++ b/src/main/java/net/minecraft/core/net/command/commands/CommandPlaySound.java
@@ -8,10 +8,10 @@ import com.mojang.brigadier.builder.RequiredArgumentBuilder;
 import net.minecraft.core.entity.Entity;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.net.command.CommandSource;
-import net.minecraft.core.net.command.arguments.EntityArgumentType;
-import net.minecraft.core.net.command.arguments.SoundCategoryArgumentType;
-import net.minecraft.core.net.command.arguments.SoundIdArgumentType;
-import net.minecraft.core.net.command.arguments.Vec3ArgumentType;
+import net.minecraft.core.net.command.arguments.ArgumentTypeEntity;
+import net.minecraft.core.net.command.arguments.ArgumentTypeSoundCategory;
+import net.minecraft.core.net.command.arguments.ArgumentTypeSoundId;
+import net.minecraft.core.net.command.arguments.ArgumentTypeVec3;
 import net.minecraft.core.net.command.helpers.DoubleCoordinates;
 import net.minecraft.core.net.command.helpers.EntitySelector;
 import net.minecraft.core.sound.SoundCategory;
@@ -20,14 +20,14 @@ import net.minecraft.core.world.World;
 
 import java.util.List;
 
-public class PlaySoundCommand {
+public class CommandPlaySound {
     public static void register(CommandDispatcher<CommandSource> dispatcher) {
         dispatcher.register
             (
                 LiteralArgumentBuilder.<CommandSource>literal("playsound")
                     .requires(CommandSource::hasAdmin)
-                    .then(RequiredArgumentBuilder.<CommandSource, String>argument("soundId", SoundIdArgumentType.soundId())
-                        .then(RequiredArgumentBuilder.<CommandSource, SoundCategory>argument("type", SoundCategoryArgumentType.soundCategory())
+                    .then(RequiredArgumentBuilder.<CommandSource, String>argument("soundId", ArgumentTypeSoundId.soundId())
+                        .then(RequiredArgumentBuilder.<CommandSource, SoundCategory>argument("type", ArgumentTypeSoundCategory.soundCategory())
                             .executes(c -> {
                                 String soundId = c.getArgument("soundId", String.class);
                                 SoundCategory category = c.getArgument("type", SoundCategory.class);
@@ -39,7 +39,7 @@ public class PlaySoundCommand {
                                 }
                                 return 0;
                             })
-                            .then(RequiredArgumentBuilder.<CommandSource, DoubleCoordinates>argument("position", Vec3ArgumentType.vec3d())
+                            .then(RequiredArgumentBuilder.<CommandSource, DoubleCoordinates>argument("position", ArgumentTypeVec3.vec3d())
                                 .executes(c -> {
                                     String soundId = c.getArgument("soundId", String.class);
                                     SoundCategory category = c.getArgument("type", SoundCategory.class);
@@ -87,7 +87,7 @@ public class PlaySoundCommand {
                                     )
                                 )
                             )
-                            .then(RequiredArgumentBuilder.<CommandSource, EntitySelector>argument("target", EntityArgumentType.entities())
+                            .then(RequiredArgumentBuilder.<CommandSource, EntitySelector>argument("target", ArgumentTypeEntity.entities())
                                 .executes(c -> {
                                     String soundId = c.getArgument("soundId", String.class);
                                     SoundCategory category = c.getArgument("type", SoundCategory.class);
diff --git a/src/main/java/net/minecraft/core/net/command/commands/SayCommand.java b/src/main/java/net/minecraft/core/net/command/commands/CommandSay.java
similarity index 97%
rename from src/main/java/net/minecraft/core/net/command/commands/SayCommand.java
rename to src/main/java/net/minecraft/core/net/command/commands/CommandSay.java
index 260d02158..43be12bb8 100644
--- a/src/main/java/net/minecraft/core/net/command/commands/SayCommand.java
+++ b/src/main/java/net/minecraft/core/net/command/commands/CommandSay.java
@@ -7,7 +7,7 @@ import com.mojang.brigadier.builder.LiteralArgumentBuilder;
 import com.mojang.brigadier.builder.RequiredArgumentBuilder;
 import net.minecraft.core.net.command.CommandSource;
 
-public class SayCommand {
+public class CommandSay {
     public static void register(CommandDispatcher<CommandSource> dispatcher) {
         dispatcher.register(LiteralArgumentBuilder.<CommandSource>literal("say")
                 .requires(CommandSource::hasAdmin)
diff --git a/src/main/java/net/minecraft/core/net/command/commands/SeedCommand.java b/src/main/java/net/minecraft/core/net/command/commands/CommandSeed.java
similarity index 96%
rename from src/main/java/net/minecraft/core/net/command/commands/SeedCommand.java
rename to src/main/java/net/minecraft/core/net/command/commands/CommandSeed.java
index 77845be9e..ee350fbf6 100644
--- a/src/main/java/net/minecraft/core/net/command/commands/SeedCommand.java
+++ b/src/main/java/net/minecraft/core/net/command/commands/CommandSeed.java
@@ -5,7 +5,7 @@ import com.mojang.brigadier.CommandDispatcher;
 import com.mojang.brigadier.builder.LiteralArgumentBuilder;
 import net.minecraft.core.net.command.CommandSource;
 
-public class SeedCommand {
+public class CommandSeed {
     public static void register(CommandDispatcher<CommandSource> dispatcher) {
         dispatcher.register(LiteralArgumentBuilder.<CommandSource>literal("seed")
                 .requires(CommandSource::hasAdmin)
diff --git a/src/main/java/net/minecraft/core/net/command/commands/SetBlockCommand.java b/src/main/java/net/minecraft/core/net/command/commands/CommandSetBlock.java
similarity index 93%
rename from src/main/java/net/minecraft/core/net/command/commands/SetBlockCommand.java
rename to src/main/java/net/minecraft/core/net/command/commands/CommandSetBlock.java
index 7fdc85895..82bdd8af0 100644
--- a/src/main/java/net/minecraft/core/net/command/commands/SetBlockCommand.java
+++ b/src/main/java/net/minecraft/core/net/command/commands/CommandSetBlock.java
@@ -13,14 +13,14 @@ import net.minecraft.core.net.command.arguments.*;
 import net.minecraft.core.net.command.helpers.BlockInput;
 import net.minecraft.core.net.command.helpers.IntegerCoordinates;
 
-public class SetBlockCommand {
+public class CommandSetBlock {
     private static final SimpleCommandExceptionType FAILURE = new SimpleCommandExceptionType(() -> I18n.getInstance().translateKey("command.commands.setblock.exception_failure"));
 
     public static void register(CommandDispatcher<CommandSource> dispatcher) {
         dispatcher.register(LiteralArgumentBuilder.<CommandSource>literal("setblock")
                 .requires(CommandSource::hasAdmin)
-                .then(RequiredArgumentBuilder.<CommandSource, IntegerCoordinates>argument("position", IntegerCoordinatesArgumentType.intCoordinates())
-                        .then(RequiredArgumentBuilder.<CommandSource, BlockInput>argument("block", BlockArgumentType.block())
+                .then(RequiredArgumentBuilder.<CommandSource, IntegerCoordinates>argument("position", ArgumentTypeIntegerCoordinates.intCoordinates())
+                        .then(RequiredArgumentBuilder.<CommandSource, BlockInput>argument("block", ArgumentTypeBlock.block())
                                 .executes(c -> {
                                     CommandSource source = c.getSource();
                                     IntegerCoordinates coordinates = c.getArgument("position", IntegerCoordinates.class);
diff --git a/src/main/java/net/minecraft/core/net/command/commands/SetSpawnCommand.java b/src/main/java/net/minecraft/core/net/command/commands/CommandSetSpawn.java
similarity index 89%
rename from src/main/java/net/minecraft/core/net/command/commands/SetSpawnCommand.java
rename to src/main/java/net/minecraft/core/net/command/commands/CommandSetSpawn.java
index fd27ebdf1..f23f98ea5 100644
--- a/src/main/java/net/minecraft/core/net/command/commands/SetSpawnCommand.java
+++ b/src/main/java/net/minecraft/core/net/command/commands/CommandSetSpawn.java
@@ -7,14 +7,14 @@ import com.mojang.brigadier.builder.RequiredArgumentBuilder;
 import com.mojang.brigadier.tree.CommandNode;
 import net.minecraft.core.world.chunk.ChunkCoordinates;
 import net.minecraft.core.net.command.CommandSource;
-import net.minecraft.core.net.command.arguments.IntegerCoordinatesArgumentType;
+import net.minecraft.core.net.command.arguments.ArgumentTypeIntegerCoordinates;
 import net.minecraft.core.net.command.helpers.IntegerCoordinates;
 
-public class SetSpawnCommand {
+public class CommandSetSpawn {
     public static void register(CommandDispatcher<CommandSource> dispatcher) {
         CommandNode<CommandSource> command = dispatcher.register(LiteralArgumentBuilder.<CommandSource>literal("setworldspawn")
                 .requires(CommandSource::hasAdmin)
-                .then(RequiredArgumentBuilder.<CommandSource, IntegerCoordinates>argument("position", IntegerCoordinatesArgumentType.intCoordinates())
+                .then(RequiredArgumentBuilder.<CommandSource, IntegerCoordinates>argument("position", ArgumentTypeIntegerCoordinates.intCoordinates())
                         .executes(c -> {
                             CommandSource source = c.getSource();
                             IntegerCoordinates coordinates = c.getArgument("position", IntegerCoordinates.class);
diff --git a/src/main/java/net/minecraft/core/net/command/commands/SpawnCommand.java b/src/main/java/net/minecraft/core/net/command/commands/CommandSpawn.java
similarity index 96%
rename from src/main/java/net/minecraft/core/net/command/commands/SpawnCommand.java
rename to src/main/java/net/minecraft/core/net/command/commands/CommandSpawn.java
index e95815b03..e89488580 100644
--- a/src/main/java/net/minecraft/core/net/command/commands/SpawnCommand.java
+++ b/src/main/java/net/minecraft/core/net/command/commands/CommandSpawn.java
@@ -12,12 +12,12 @@ import net.minecraft.core.world.World;
 import net.minecraft.core.world.chunk.ChunkCoordinates;
 import net.minecraft.core.net.command.util.CommandHelper;
 import net.minecraft.core.net.command.CommandSource;
-import net.minecraft.core.net.command.arguments.EntityArgumentType;
+import net.minecraft.core.net.command.arguments.ArgumentTypeEntity;
 import net.minecraft.core.net.command.helpers.EntitySelector;
 
 import java.util.List;
 
-public class SpawnCommand {
+public class CommandSpawn {
     public static void register(CommandDispatcher<CommandSource> dispatcher) {
         dispatcher.register(LiteralArgumentBuilder.<CommandSource>literal("spawn")
                 .requires(CommandSource::hasAdmin)
@@ -34,7 +34,7 @@ public class SpawnCommand {
                     source.sendTranslatableMessage("command.commands.spawn.success");
                     return Command.SINGLE_SUCCESS;
                 })
-                .then(RequiredArgumentBuilder.<CommandSource, EntitySelector>argument("players", EntityArgumentType.players())
+                .then(RequiredArgumentBuilder.<CommandSource, EntitySelector>argument("players", ArgumentTypeEntity.players())
                         .executes(c -> {
                             CommandSource source = c.getSource();
                             Player sender = source.getSender();
diff --git a/src/main/java/net/minecraft/core/net/command/commands/SpawnParticleCommand.java b/src/main/java/net/minecraft/core/net/command/commands/CommandSpawnParticle.java
similarity index 94%
rename from src/main/java/net/minecraft/core/net/command/commands/SpawnParticleCommand.java
rename to src/main/java/net/minecraft/core/net/command/commands/CommandSpawnParticle.java
index 7527010f7..6010c839b 100644
--- a/src/main/java/net/minecraft/core/net/command/commands/SpawnParticleCommand.java
+++ b/src/main/java/net/minecraft/core/net/command/commands/CommandSpawnParticle.java
@@ -9,22 +9,22 @@ import com.mojang.brigadier.builder.RequiredArgumentBuilder;
 import net.minecraft.core.entity.Entity;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.net.command.CommandSource;
-import net.minecraft.core.net.command.arguments.EntityArgumentType;
-import net.minecraft.core.net.command.arguments.ParticleIdArgumentType;
-import net.minecraft.core.net.command.arguments.Vec3ArgumentType;
+import net.minecraft.core.net.command.arguments.ArgumentTypeEntity;
+import net.minecraft.core.net.command.arguments.ArgumentTypeParticleId;
+import net.minecraft.core.net.command.arguments.ArgumentTypeVec3;
 import net.minecraft.core.net.command.helpers.DoubleCoordinates;
 import net.minecraft.core.net.command.helpers.EntitySelector;
 import org.jetbrains.annotations.Nullable;
 
 import java.util.List;
 
-public class SpawnParticleCommand {
+public class CommandSpawnParticle {
     public static void register(CommandDispatcher<CommandSource> dispatcher) {
         dispatcher.register
             (
                 LiteralArgumentBuilder.<CommandSource>literal("spawnparticle")
                     .requires(CommandSource::hasAdmin)
-                    .then(RequiredArgumentBuilder.<CommandSource, String>argument("particleId", ParticleIdArgumentType.particleId())
+                    .then(RequiredArgumentBuilder.<CommandSource, String>argument("particleId", ArgumentTypeParticleId.particleId())
                         .executes(c -> {
                             String particleId = c.getArgument("particleId", String.class);
                             Player player = c.getSource().getSender();
@@ -33,7 +33,7 @@ public class SpawnParticleCommand {
                             }
                             return Command.SINGLE_SUCCESS;
                         })
-                        .then(RequiredArgumentBuilder.<CommandSource, DoubleCoordinates>argument("position", Vec3ArgumentType.vec3d())
+                        .then(RequiredArgumentBuilder.<CommandSource, DoubleCoordinates>argument("position", ArgumentTypeVec3.vec3d())
                             .executes(c -> {
                                 String particleId = c.getArgument("particleId", String.class);
                                 DoubleCoordinates pos = c.getArgument("position", DoubleCoordinates.class);
@@ -41,7 +41,7 @@ public class SpawnParticleCommand {
 
                                 return Command.SINGLE_SUCCESS;
                             })
-                            .then(RequiredArgumentBuilder.<CommandSource, DoubleCoordinates>argument("motion", Vec3ArgumentType.vec3d())
+                            .then(RequiredArgumentBuilder.<CommandSource, DoubleCoordinates>argument("motion", ArgumentTypeVec3.vec3d())
                                 .executes(c -> {
                                     String particleId = c.getArgument("particleId", String.class);
                                     DoubleCoordinates pos = c.getArgument("position", DoubleCoordinates.class);
@@ -80,7 +80,7 @@ public class SpawnParticleCommand {
                                 )
                             )
                         )
-                        .then(RequiredArgumentBuilder.<CommandSource, EntitySelector>argument("target", EntityArgumentType.entities())
+                        .then(RequiredArgumentBuilder.<CommandSource, EntitySelector>argument("target", ArgumentTypeEntity.entities())
                             .executes(c -> {
                                 String particleId = c.getArgument("particleId", String.class);
                                 EntitySelector selector = c.getArgument("target", EntitySelector.class);
@@ -91,7 +91,7 @@ public class SpawnParticleCommand {
 
                                 return Command.SINGLE_SUCCESS;
                             })
-                            .then(RequiredArgumentBuilder.<CommandSource, DoubleCoordinates>argument("motion", Vec3ArgumentType.vec3d())
+                            .then(RequiredArgumentBuilder.<CommandSource, DoubleCoordinates>argument("motion", ArgumentTypeVec3.vec3d())
                                 .executes(c -> {
                                     String particleId = c.getArgument("particleId", String.class);
                                     DoubleCoordinates motion = c.getArgument("motion", DoubleCoordinates.class);
diff --git a/src/main/java/net/minecraft/core/net/command/commands/SummonCommand.java b/src/main/java/net/minecraft/core/net/command/commands/CommandSummon.java
similarity index 93%
rename from src/main/java/net/minecraft/core/net/command/commands/SummonCommand.java
rename to src/main/java/net/minecraft/core/net/command/commands/CommandSummon.java
index 21530fc3b..a2bfccb53 100644
--- a/src/main/java/net/minecraft/core/net/command/commands/SummonCommand.java
+++ b/src/main/java/net/minecraft/core/net/command/commands/CommandSummon.java
@@ -11,16 +11,16 @@ import net.minecraft.core.util.phys.Vec3;
 import net.minecraft.core.world.World;
 import net.minecraft.core.net.command.util.CommandHelper;
 import net.minecraft.core.net.command.CommandSource;
-import net.minecraft.core.net.command.arguments.EntitySummonArgumentType;
-import net.minecraft.core.net.command.arguments.Vec3ArgumentType;
+import net.minecraft.core.net.command.arguments.ArgumentTypeEntitySummon;
+import net.minecraft.core.net.command.arguments.ArgumentTypeVec3;
 import net.minecraft.core.net.command.exceptions.CommandExceptions;
 import net.minecraft.core.net.command.helpers.DoubleCoordinates;
 
-public class SummonCommand {
+public class CommandSummon {
     public static void register(CommandDispatcher<CommandSource> dispatcher) {
         dispatcher.register(LiteralArgumentBuilder.<CommandSource>literal("summon")
                 .requires(CommandSource::hasAdmin)
-                .then(RequiredArgumentBuilder.<CommandSource, Class<? extends Entity>>argument("entity", EntitySummonArgumentType.entity())
+                .then(RequiredArgumentBuilder.<CommandSource, Class<? extends Entity>>argument("entity", ArgumentTypeEntitySummon.entity())
                         .executes(c -> {
                             CommandSource source = c.getSource();
                             Vec3 coordinates = source.getCoordinates(false);
@@ -32,7 +32,7 @@ public class SummonCommand {
 
                             return Command.SINGLE_SUCCESS;
                         })
-                        .then(RequiredArgumentBuilder.<CommandSource, DoubleCoordinates>argument("position", Vec3ArgumentType.vec3d())
+                        .then(RequiredArgumentBuilder.<CommandSource, DoubleCoordinates>argument("position", ArgumentTypeVec3.vec3d())
                                 .executes(c -> {
                                     CommandSource source = c.getSource();
                                     DoubleCoordinates coordinates = c.getArgument("position", DoubleCoordinates.class);
diff --git a/src/main/java/net/minecraft/core/net/command/commands/TeleportCommand.java b/src/main/java/net/minecraft/core/net/command/commands/CommandTeleport.java
similarity index 92%
rename from src/main/java/net/minecraft/core/net/command/commands/TeleportCommand.java
rename to src/main/java/net/minecraft/core/net/command/commands/CommandTeleport.java
index c8695b61d..6105e7c01 100644
--- a/src/main/java/net/minecraft/core/net/command/commands/TeleportCommand.java
+++ b/src/main/java/net/minecraft/core/net/command/commands/CommandTeleport.java
@@ -8,19 +8,19 @@ import com.mojang.brigadier.tree.CommandNode;
 import net.minecraft.core.entity.Entity;
 import net.minecraft.core.net.command.util.CommandHelper;
 import net.minecraft.core.net.command.CommandSource;
-import net.minecraft.core.net.command.arguments.EntityArgumentType;
-import net.minecraft.core.net.command.arguments.Vec3ArgumentType;
+import net.minecraft.core.net.command.arguments.ArgumentTypeEntity;
+import net.minecraft.core.net.command.arguments.ArgumentTypeVec3;
 import net.minecraft.core.net.command.exceptions.CommandExceptions;
 import net.minecraft.core.net.command.helpers.DoubleCoordinates;
 import net.minecraft.core.net.command.helpers.EntitySelector;
 
 import java.util.List;
 
-public class TeleportCommand {
+public class CommandTeleport {
     public static void register(CommandDispatcher<CommandSource> dispatcher) {
         CommandNode<CommandSource> command = dispatcher.register(LiteralArgumentBuilder.<CommandSource>literal("teleport")
                 .requires(CommandSource::hasAdmin)
-                .then(RequiredArgumentBuilder.<CommandSource, DoubleCoordinates>argument("position", Vec3ArgumentType.vec3d())
+                .then(RequiredArgumentBuilder.<CommandSource, DoubleCoordinates>argument("position", ArgumentTypeVec3.vec3d())
                         .executes(c -> {
                             CommandSource source = c.getSource();
                             DoubleCoordinates targetCoordinates = c.getArgument("position", DoubleCoordinates.class);
@@ -34,8 +34,8 @@ public class TeleportCommand {
 
                             return Command.SINGLE_SUCCESS;
                         }))
-                .then(RequiredArgumentBuilder.<CommandSource, EntitySelector>argument("entity", EntityArgumentType.entities())
-                        .then(RequiredArgumentBuilder.<CommandSource, DoubleCoordinates>argument("position", Vec3ArgumentType.vec3d())
+                .then(RequiredArgumentBuilder.<CommandSource, EntitySelector>argument("entity", ArgumentTypeEntity.entities())
+                        .then(RequiredArgumentBuilder.<CommandSource, DoubleCoordinates>argument("position", ArgumentTypeVec3.vec3d())
                                 .executes(c -> {
                                     CommandSource source = c.getSource();
                                     EntitySelector entitySelector = c.getArgument("entity", EntitySelector.class);
@@ -55,7 +55,7 @@ public class TeleportCommand {
 
                                     return Command.SINGLE_SUCCESS;
                                 }))
-                .then(RequiredArgumentBuilder.<CommandSource, EntitySelector>argument("target", EntityArgumentType.entity())
+                .then(RequiredArgumentBuilder.<CommandSource, EntitySelector>argument("target", ArgumentTypeEntity.entity())
                         .executes(c -> {
                             CommandSource source = c.getSource();
                             EntitySelector entitySelector = c.getArgument("entity", EntitySelector.class);
diff --git a/src/main/java/net/minecraft/core/net/command/commands/TellRawCommand.java b/src/main/java/net/minecraft/core/net/command/commands/CommandTellRaw.java
similarity index 91%
rename from src/main/java/net/minecraft/core/net/command/commands/TellRawCommand.java
rename to src/main/java/net/minecraft/core/net/command/commands/CommandTellRaw.java
index d37e09736..a1c6e7c1e 100644
--- a/src/main/java/net/minecraft/core/net/command/commands/TellRawCommand.java
+++ b/src/main/java/net/minecraft/core/net/command/commands/CommandTellRaw.java
@@ -8,16 +8,16 @@ import com.mojang.brigadier.builder.RequiredArgumentBuilder;
 import net.minecraft.core.entity.Entity;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.net.command.CommandSource;
-import net.minecraft.core.net.command.arguments.EntityArgumentType;
+import net.minecraft.core.net.command.arguments.ArgumentTypeEntity;
 import net.minecraft.core.net.command.helpers.EntitySelector;
 
 import java.util.List;
 
-public class TellRawCommand {
+public class CommandTellRaw {
     public static void register(CommandDispatcher<CommandSource> dispatcher) {
         dispatcher.register(LiteralArgumentBuilder.<CommandSource>literal("tellraw")
                 .requires(CommandSource::hasAdmin)
-                .then(RequiredArgumentBuilder.<CommandSource, EntitySelector>argument("targets", EntityArgumentType.players())
+                .then(RequiredArgumentBuilder.<CommandSource, EntitySelector>argument("targets", ArgumentTypeEntity.players())
                         .then(RequiredArgumentBuilder.<CommandSource, String>argument("message", StringArgumentType.greedyString())
                                 .executes(c -> {
                                     CommandSource source = c.getSource();
diff --git a/src/main/java/net/minecraft/core/net/command/commands/TestCommand.java b/src/main/java/net/minecraft/core/net/command/commands/CommandTest.java
similarity index 75%
rename from src/main/java/net/minecraft/core/net/command/commands/TestCommand.java
rename to src/main/java/net/minecraft/core/net/command/commands/CommandTest.java
index 5c3cf94ec..452973f3f 100644
--- a/src/main/java/net/minecraft/core/net/command/commands/TestCommand.java
+++ b/src/main/java/net/minecraft/core/net/command/commands/CommandTest.java
@@ -5,19 +5,19 @@ import com.mojang.brigadier.CommandDispatcher;
 import com.mojang.brigadier.builder.LiteralArgumentBuilder;
 import com.mojang.brigadier.builder.RequiredArgumentBuilder;
 import net.minecraft.core.net.command.CommandSource;
-import net.minecraft.core.net.command.arguments.AchievementArgumentType;
+import net.minecraft.core.net.command.arguments.ArgumentTypeAchievement;
 
 @SuppressWarnings("unchecked")
-public class TestCommand {
+public class CommandTest {
     public static void register(CommandDispatcher<CommandSource> dispatcher) {
         dispatcher.register((LiteralArgumentBuilder)(((LiteralArgumentBuilder)LiteralArgumentBuilder.literal("test"))
                 .then(((LiteralArgumentBuilder)LiteralArgumentBuilder.<CommandSource>literal("grant")
-                ).then(RequiredArgumentBuilder.argument("achievement", AchievementArgumentType.achievement())
-                        .then(RequiredArgumentBuilder.argument("achievement1", AchievementArgumentType.achievement())
-                                .then(RequiredArgumentBuilder.argument("achievement2", AchievementArgumentType.achievement())
-                                        .then(RequiredArgumentBuilder.argument("achievement3", AchievementArgumentType.achievement())
-                                                .then(RequiredArgumentBuilder.argument("achievement4", AchievementArgumentType.achievement())
-                                                        .then(RequiredArgumentBuilder.argument("achievement5", AchievementArgumentType.achievement())
+                ).then(RequiredArgumentBuilder.argument("achievement", ArgumentTypeAchievement.achievement())
+                        .then(RequiredArgumentBuilder.argument("achievement1", ArgumentTypeAchievement.achievement())
+                                .then(RequiredArgumentBuilder.argument("achievement2", ArgumentTypeAchievement.achievement())
+                                        .then(RequiredArgumentBuilder.argument("achievement3", ArgumentTypeAchievement.achievement())
+                                                .then(RequiredArgumentBuilder.argument("achievement4", ArgumentTypeAchievement.achievement())
+                                                        .then(RequiredArgumentBuilder.argument("achievement5", ArgumentTypeAchievement.achievement())
                                                                 .executes(c -> {
                                                                     ((CommandSource)c.getSource()).getSender().sendMessage("Command run!");
                                                                     return Command.SINGLE_SUCCESS;
diff --git a/src/main/java/net/minecraft/core/net/command/commands/TestForCommand.java b/src/main/java/net/minecraft/core/net/command/commands/CommandTestFor.java
similarity index 77%
rename from src/main/java/net/minecraft/core/net/command/commands/TestForCommand.java
rename to src/main/java/net/minecraft/core/net/command/commands/CommandTestFor.java
index ed9e35aca..caf9cc437 100644
--- a/src/main/java/net/minecraft/core/net/command/commands/TestForCommand.java
+++ b/src/main/java/net/minecraft/core/net/command/commands/CommandTestFor.java
@@ -6,37 +6,37 @@ import com.mojang.brigadier.builder.LiteralArgumentBuilder;
 import com.mojang.brigadier.builder.RequiredArgumentBuilder;
 import com.mojang.nbt.CompoundTag;
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.entity.Entity;
 import net.minecraft.core.net.command.util.CommandHelper;
 import net.minecraft.core.net.command.CommandSource;
-import net.minecraft.core.net.command.arguments.BlockArgumentType;
-import net.minecraft.core.net.command.arguments.EntityArgumentType;
-import net.minecraft.core.net.command.arguments.IntegerCoordinatesArgumentType;
+import net.minecraft.core.net.command.arguments.ArgumentTypeBlock;
+import net.minecraft.core.net.command.arguments.ArgumentTypeEntity;
+import net.minecraft.core.net.command.arguments.ArgumentTypeIntegerCoordinates;
 import net.minecraft.core.net.command.helpers.*;
 
 import java.util.List;
 
-public class TestForCommand {
+public class CommandTestFor {
     public static void register(CommandDispatcher<CommandSource> dispatcher) {
         dispatcher.register(LiteralArgumentBuilder.<CommandSource>literal("testfor")
                 .requires(CommandSource::hasAdmin)
                 .then(LiteralArgumentBuilder.<CommandSource>literal("entity")
-                        .then(RequiredArgumentBuilder.<CommandSource, EntitySelector>argument("entities", EntityArgumentType.entities())
+                        .then(RequiredArgumentBuilder.<CommandSource, EntitySelector>argument("entities", ArgumentTypeEntity.entities())
                                 .executes(c -> {
                                     List<? extends Entity> entities = c.getArgument("entities", EntitySelector.class).get(c.getSource());
                                     c.getSource().sendTranslatableMessage("command.commands.testfor.entity." + (entities.isEmpty() ? "none" : entities.size() == 1 ? "single" : "multiple"), entities.size());
                                     return entities.size();
                                 })))
                 .then(LiteralArgumentBuilder.<CommandSource>literal("block")
-                        .then(RequiredArgumentBuilder.<CommandSource, BlockInput>argument("block", BlockArgumentType.block())
-                                .then(RequiredArgumentBuilder.<CommandSource, IntegerCoordinates>argument("second", IntegerCoordinatesArgumentType.intCoordinates())
+                        .then(RequiredArgumentBuilder.<CommandSource, BlockInput>argument("block", ArgumentTypeBlock.block())
+                                .then(RequiredArgumentBuilder.<CommandSource, IntegerCoordinates>argument("second", ArgumentTypeIntegerCoordinates.intCoordinates())
                                         .executes(c -> {
                                             BlockInput block = c.getArgument("block", BlockInput.class);
                                             IntegerCoordinates secondPos = c.getArgument("second", IntegerCoordinates.class);
                                             CompoundTag blockInWorldCompoundTag = new CompoundTag();
-                                            BlockEntity blockEntity = c.getSource().getWorld().getBlockEntity(secondPos.getX(c.getSource()), secondPos.getY(c.getSource(), true), secondPos.getZ(c.getSource()));
-                                            if (blockEntity != null) blockEntity.writeToNBT(blockInWorldCompoundTag);
+                                            TileEntity tileEntity = c.getSource().getWorld().getBlockEntity(secondPos.getX(c.getSource()), secondPos.getY(c.getSource(), true), secondPos.getZ(c.getSource()));
+                                            if (tileEntity != null) tileEntity.writeToNBT(blockInWorldCompoundTag);
                                             if (c.getSource().getWorld().getBlock(secondPos.getX(c.getSource()), secondPos.getY(c.getSource(), true), secondPos.getZ(c.getSource())) == block.getBlock()
                                             && c.getSource().getWorld().getBlockMetadata(secondPos.getX(c.getSource()), secondPos.getY(c.getSource(), true), secondPos.getZ(c.getSource())) == block.getMetadata()
                                             && (blockInWorldCompoundTag == block.getTag() || block.getTag().getValues().isEmpty())) {
@@ -46,8 +46,8 @@ public class TestForCommand {
                                             c.getSource().sendTranslatableMessage("command.commands.testfor.block.failure");
                                             return 0;
                                         })))
-                        .then(RequiredArgumentBuilder.<CommandSource, IntegerCoordinates>argument("first", IntegerCoordinatesArgumentType.intCoordinates())
-                                .then(RequiredArgumentBuilder.<CommandSource, IntegerCoordinates>argument("second", IntegerCoordinatesArgumentType.intCoordinates())
+                        .then(RequiredArgumentBuilder.<CommandSource, IntegerCoordinates>argument("first", ArgumentTypeIntegerCoordinates.intCoordinates())
+                                .then(RequiredArgumentBuilder.<CommandSource, IntegerCoordinates>argument("second", ArgumentTypeIntegerCoordinates.intCoordinates())
                                         .executes(c -> {
                                             IntegerCoordinates firstPos = c.getArgument("first", IntegerCoordinates.class);
                                             IntegerCoordinates secondPos = c.getArgument("second", IntegerCoordinates.class);
@@ -69,11 +69,11 @@ public class TestForCommand {
                                             }
 
                                             CompoundTag firstTag = new CompoundTag();
-                                            BlockEntity firstBlockEntity = c.getSource().getWorld().getBlockEntity(firstPos.getX(c.getSource()), firstPos.getY(c.getSource(), true), firstPos.getZ(c.getSource()));
-                                            if (firstBlockEntity != null) firstBlockEntity.writeToNBT(firstTag);
+                                            TileEntity firstTileEntity = c.getSource().getWorld().getBlockEntity(firstPos.getX(c.getSource()), firstPos.getY(c.getSource(), true), firstPos.getZ(c.getSource()));
+                                            if (firstTileEntity != null) firstTileEntity.writeToNBT(firstTag);
                                             CompoundTag secondTag = new CompoundTag();
-                                            BlockEntity secondBlockEntity = c.getSource().getWorld().getBlockEntity(secondPos.getX(c.getSource()), secondPos.getY(c.getSource(), true), secondPos.getZ(c.getSource()));
-                                            if (secondBlockEntity != null) secondBlockEntity.writeToNBT(secondTag);
+                                            TileEntity secondTileEntity = c.getSource().getWorld().getBlockEntity(secondPos.getX(c.getSource()), secondPos.getY(c.getSource(), true), secondPos.getZ(c.getSource()));
+                                            if (secondTileEntity != null) secondTileEntity.writeToNBT(secondTag);
 
                                             if (!CommandHelper.blockEntitiesAreEqual(firstTag, secondTag)) {
                                                 c.getSource().sendTranslatableMessage("command.commands.testfor.block.failure");
diff --git a/src/main/java/net/minecraft/core/net/command/commands/TimeCommand.java b/src/main/java/net/minecraft/core/net/command/commands/CommandTime.java
similarity index 95%
rename from src/main/java/net/minecraft/core/net/command/commands/TimeCommand.java
rename to src/main/java/net/minecraft/core/net/command/commands/CommandTime.java
index eb1613ce8..e90207fd4 100644
--- a/src/main/java/net/minecraft/core/net/command/commands/TimeCommand.java
+++ b/src/main/java/net/minecraft/core/net/command/commands/CommandTime.java
@@ -6,17 +6,16 @@ import com.mojang.brigadier.arguments.IntegerArgumentType;
 import com.mojang.brigadier.builder.LiteralArgumentBuilder;
 import com.mojang.brigadier.builder.RequiredArgumentBuilder;
 import net.minecraft.core.Global;
-import net.minecraft.core.net.command.arguments.SeasonArgumentType;
+import net.minecraft.core.net.command.arguments.ArgumentTypeSeason;
 import net.minecraft.core.world.LevelListener;
 import net.minecraft.core.world.World;
 import net.minecraft.core.net.command.CommandSource;
-import net.minecraft.core.net.command.arguments.TimeArgumentType;
+import net.minecraft.core.net.command.arguments.ArgumentTypeTime;
 import net.minecraft.core.world.season.Season;
-import net.minecraft.core.world.season.SeasonManager;
 import net.minecraft.core.world.season.SeasonManagerCycle;
 import net.minecraft.core.world.season.Seasons;
 
-public class TimeCommand {
+public class CommandTime {
     public static void register(CommandDispatcher<CommandSource> dispatcher) {
         dispatcher.register(LiteralArgumentBuilder.<CommandSource>literal("time")
             .requires(CommandSource::hasAdmin)
@@ -43,7 +42,7 @@ public class TimeCommand {
                         return Command.SINGLE_SUCCESS;
                         })))
             .then(LiteralArgumentBuilder.<CommandSource>literal("set")
-                .then(RequiredArgumentBuilder.<CommandSource, Integer>argument("time", TimeArgumentType.time())
+                .then(RequiredArgumentBuilder.<CommandSource, Integer>argument("time", ArgumentTypeTime.time())
                     .executes(c -> {
                         CommandSource source = c.getSource();
                         int time = c.getArgument("time", Integer.class);
@@ -74,7 +73,7 @@ public class TimeCommand {
                         setDayTime(source, source.getWorld(), 18000);
                         return Command.SINGLE_SUCCESS;
                     }))
-                .then(RequiredArgumentBuilder.<CommandSource, String>argument("season", SeasonArgumentType.season())
+                .then(RequiredArgumentBuilder.<CommandSource, String>argument("season", ArgumentTypeSeason.season())
                     .requires(c -> c.getWorld().getSeasonManager() instanceof SeasonManagerCycle)
                     .executes(c -> {
                         CommandSource source = c.getSource();
@@ -119,7 +118,7 @@ public class TimeCommand {
                 )
             )
             .then(LiteralArgumentBuilder.<CommandSource>literal("add")
-                .then(RequiredArgumentBuilder.<CommandSource, Integer>argument("time", TimeArgumentType.time())
+                .then(RequiredArgumentBuilder.<CommandSource, Integer>argument("time", ArgumentTypeTime.time())
                     .executes(c -> {
                         CommandSource source = c.getSource();
                         int time = c.getArgument("time", Integer.class);
diff --git a/src/main/java/net/minecraft/core/net/command/commands/WeatherCommand.java b/src/main/java/net/minecraft/core/net/command/commands/CommandWeather.java
similarity index 93%
rename from src/main/java/net/minecraft/core/net/command/commands/WeatherCommand.java
rename to src/main/java/net/minecraft/core/net/command/commands/CommandWeather.java
index dd823e5a2..7c9717e24 100644
--- a/src/main/java/net/minecraft/core/net/command/commands/WeatherCommand.java
+++ b/src/main/java/net/minecraft/core/net/command/commands/CommandWeather.java
@@ -9,11 +9,11 @@ import com.mojang.brigadier.tree.CommandNode;
 import net.minecraft.core.world.World;
 import net.minecraft.core.world.weather.Weather;
 import net.minecraft.core.net.command.CommandSource;
-import net.minecraft.core.net.command.arguments.TimeArgumentType;
-import net.minecraft.core.net.command.arguments.WeatherArgumentType;
+import net.minecraft.core.net.command.arguments.ArgumentTypeTime;
+import net.minecraft.core.net.command.arguments.ArgumentTypeWeather;
 import net.minecraft.core.world.weather.Weathers;
 
-public class WeatherCommand {
+public class CommandWeather {
     public static void register(CommandDispatcher<CommandSource> dispatcher) {
         CommandNode<CommandSource> command = dispatcher.register(LiteralArgumentBuilder.<CommandSource>literal("weather")
                 .requires(CommandSource::hasAdmin)
@@ -27,7 +27,7 @@ public class WeatherCommand {
                         source.sendTranslatableMessage("command.commands.weather.success", weather.getTranslatedName());
                         return Command.SINGLE_SUCCESS;
                     }))
-                .then(RequiredArgumentBuilder.<CommandSource, Weather>argument("weather", WeatherArgumentType.weather())
+                .then(RequiredArgumentBuilder.<CommandSource, Weather>argument("weather", ArgumentTypeWeather.weather())
                         .executes(c -> {
                             CommandSource source = c.getSource();
                             World world = source.getWorld();
@@ -37,7 +37,7 @@ public class WeatherCommand {
                             source.sendTranslatableMessage("command.commands.weather.success", weather.getTranslatedName());
                             return Command.SINGLE_SUCCESS;
                         })
-                        .then(RequiredArgumentBuilder.<CommandSource, Integer>argument("duration", TimeArgumentType.time())
+                        .then(RequiredArgumentBuilder.<CommandSource, Integer>argument("duration", ArgumentTypeTime.time())
                                 .executes(c -> {
                                     CommandSource source = c.getSource();
                                     World world = source.getWorld();
diff --git a/src/main/java/net/minecraft/core/net/command/helpers/ClonedBlock.java b/src/main/java/net/minecraft/core/net/command/helpers/ClonedBlock.java
index 969189c34..2eaae1ce7 100644
--- a/src/main/java/net/minecraft/core/net/command/helpers/ClonedBlock.java
+++ b/src/main/java/net/minecraft/core/net/command/helpers/ClonedBlock.java
@@ -1,7 +1,7 @@
 package net.minecraft.core.net.command.helpers;
 
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import org.jetbrains.annotations.Nullable;
 
 public class ClonedBlock {
@@ -9,12 +9,12 @@ public class ClonedBlock {
     private final Block block;
     private final int metadata;
     @Nullable
-    private final BlockEntity blockEntity;
+    private final TileEntity tileEntity;
 
-    public ClonedBlock(@Nullable Block block, int metadata, @Nullable BlockEntity blockEntity) {
+    public ClonedBlock(@Nullable Block block, int metadata, @Nullable TileEntity tileEntity) {
         this.block = block;
         this.metadata = metadata;
-        this.blockEntity = blockEntity;
+        this.tileEntity = tileEntity;
     }
 
     public @Nullable Block getBlock() {
@@ -29,7 +29,7 @@ public class ClonedBlock {
         return this.metadata;
     }
 
-    public BlockEntity getBlockEntity() {
-        return this.blockEntity;
+    public TileEntity getBlockEntity() {
+        return this.tileEntity;
     }
 }
\ No newline at end of file
diff --git a/src/main/java/net/minecraft/core/net/command/helpers/EntitySelectorOptions.java b/src/main/java/net/minecraft/core/net/command/helpers/EntitySelectorOptions.java
index c974674ba..0b7af5318 100644
--- a/src/main/java/net/minecraft/core/net/command/helpers/EntitySelectorOptions.java
+++ b/src/main/java/net/minecraft/core/net/command/helpers/EntitySelectorOptions.java
@@ -11,7 +11,7 @@ import net.minecraft.client.lang.text.ChainText;
 import net.minecraft.client.lang.text.Text;
 import net.minecraft.core.entity.Entity;
 import net.minecraft.core.entity.EntityDispatcher;
-import net.minecraft.core.entity.ItemEntity;
+import net.minecraft.core.entity.EntityItem;
 import net.minecraft.core.entity.Mob;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.lang.I18n;
@@ -87,7 +87,7 @@ public class EntitySelectorOptions {
             }
             parser.addPredicate(entity -> {
                 if (!(entity instanceof Mob))
-                    return entity instanceof ItemEntity && ((ItemEntity) entity).item != null ? LoggedPrintStream.removeColorCodes(((ItemEntity) entity).item.getDisplayName()).equals(string) : bl;
+                    return entity instanceof EntityItem && ((EntityItem) entity).item != null ? LoggedPrintStream.removeColorCodes(((EntityItem) entity).item.getDisplayName()).equals(string) : bl;
                 else if (entity instanceof Player) return ((Player) entity).username.equals(string) != bl;
                 else return LoggedPrintStream.removeColorCodes(((Mob) entity).getDisplayName()).equals(string) != bl;
             });
diff --git a/src/main/java/net/minecraft/core/net/command/util/CommandHelper.java b/src/main/java/net/minecraft/core/net/command/util/CommandHelper.java
index 83306f024..5c9fefbaf 100644
--- a/src/main/java/net/minecraft/core/net/command/util/CommandHelper.java
+++ b/src/main/java/net/minecraft/core/net/command/util/CommandHelper.java
@@ -6,10 +6,10 @@ import com.mojang.brigadier.suggestion.SuggestionsBuilder;
 import com.mojang.nbt.CompoundTag;
 import com.mojang.nbt.Tag;
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.entity.Entity;
 import net.minecraft.core.entity.EntityDispatcher;
-import net.minecraft.core.entity.ItemEntity;
+import net.minecraft.core.entity.EntityItem;
 import net.minecraft.core.entity.Mob;
 import net.minecraft.core.net.command.CommandSource;
 import net.minecraft.core.net.command.helpers.IntegerCoordinates;
@@ -105,8 +105,8 @@ public class CommandHelper {
             if (!LoggedPrintStream.removeColorCodes(((Mob) entity).getDisplayName()).isEmpty()) {
                 return LoggedPrintStream.removeColorCodes(((Mob) entity).getDisplayName());
             }
-        } else if (entity instanceof ItemEntity && ((ItemEntity) entity).item != null) {
-            return LoggedPrintStream.removeColorCodes(((ItemEntity) entity).item.getDisplayName());
+        } else if (entity instanceof EntityItem && ((EntityItem) entity).item != null) {
+            return LoggedPrintStream.removeColorCodes(((EntityItem) entity).item.getDisplayName());
         }
         return EntityDispatcher.getEncodeId(entity);
     }
@@ -145,13 +145,13 @@ public class CommandHelper {
         world.getBlockEntity(x, y, z).readFromNBT(tag);
     }
 
-    public static void setBlockEntity(WorldSource world, int x, int y, int z, BlockEntity blockEntity) {
-        setBlockEntity(world, x, y, z, tagFrom(blockEntity));
+    public static void setBlockEntity(WorldSource world, int x, int y, int z, TileEntity tileEntity) {
+        setBlockEntity(world, x, y, z, tagFrom(tileEntity));
     }
 
-    public static CompoundTag tagFrom(BlockEntity blockEntity) {
+    public static CompoundTag tagFrom(TileEntity tileEntity) {
         CompoundTag tag = new CompoundTag();
-        if (blockEntity != null) blockEntity.writeToNBT(tag);
+        if (tileEntity != null) tileEntity.writeToNBT(tag);
         return tag;
     }
 
diff --git a/src/main/java/net/minecraft/core/net/entity/NetEntityHandler.java b/src/main/java/net/minecraft/core/net/entity/NetEntityHandler.java
index 598bcf8ea..d087fd79f 100644
--- a/src/main/java/net/minecraft/core/net/entity/NetEntityHandler.java
+++ b/src/main/java/net/minecraft/core/net/entity/NetEntityHandler.java
@@ -1,22 +1,22 @@
 package net.minecraft.core.net.entity;
 
-import net.minecraft.core.net.entity.entries.AnimalNetEntry;
-import net.minecraft.core.net.entity.entries.ArrowNetEntry;
-import net.minecraft.core.net.entity.entries.BoatNetEntry;
-import net.minecraft.core.net.entity.entries.BobberNetEntry;
-import net.minecraft.core.net.entity.entries.CannonballEntry;
-import net.minecraft.core.net.entity.entries.EggNetEntry;
-import net.minecraft.core.net.entity.entries.FallingSandNetEntry;
-import net.minecraft.core.net.entity.entries.FireballNetEntry;
-import net.minecraft.core.net.entity.entries.FireflyNetEntry;
-import net.minecraft.core.net.entity.entries.ItemNetEntry;
-import net.minecraft.core.net.entity.entries.MinecartNetEntry;
-import net.minecraft.core.net.entity.entries.PaintingNetEntry;
-import net.minecraft.core.net.entity.entries.PebbleEntry;
-import net.minecraft.core.net.entity.entries.PlayerMPNetEntry;
-import net.minecraft.core.net.entity.entries.SnowballNetEntry;
-import net.minecraft.core.net.entity.entries.SquidNetEntry;
-import net.minecraft.core.net.entity.entries.TNTNetEntry;
+import net.minecraft.core.net.entity.entries.NetEntryAnimal;
+import net.minecraft.core.net.entity.entries.NetEntryArrow;
+import net.minecraft.core.net.entity.entries.NetEntryBoat;
+import net.minecraft.core.net.entity.entries.NetEntryBobber;
+import net.minecraft.core.net.entity.entries.NetEntryCannonball;
+import net.minecraft.core.net.entity.entries.NetEntryEgg;
+import net.minecraft.core.net.entity.entries.NetEntryFallingBlock;
+import net.minecraft.core.net.entity.entries.NetEntryFireball;
+import net.minecraft.core.net.entity.entries.NetEntryFirefly;
+import net.minecraft.core.net.entity.entries.NetEntryItem;
+import net.minecraft.core.net.entity.entries.NetEntryMinecart;
+import net.minecraft.core.net.entity.entries.NetEntryPainting;
+import net.minecraft.core.net.entity.entries.NetEntryPebble;
+import net.minecraft.core.net.entity.entries.NetEntryPlayerServer;
+import net.minecraft.core.net.entity.entries.NetEntrySnowball;
+import net.minecraft.core.net.entity.entries.NetEntrySquid;
+import net.minecraft.core.net.entity.entries.NetEntryPrimedTNT;
 import net.minecraft.core.net.packet.Packet;
 import net.minecraft.server.entity.EntityTrackerEntry;
 import org.jetbrains.annotations.NotNull;
@@ -126,26 +126,26 @@ public class NetEntityHandler {
     }
 
     static {
-        registerNetworkEntry(new AnimalNetEntry<>());
-        registerNetworkEntry(new SquidNetEntry());
-        registerNetworkEntry(new FireflyNetEntry());
-        registerNetworkEntry(new ItemNetEntry());
-        registerNetworkEntry(new PaintingNetEntry());
-        registerNetworkEntry(new PlayerMPNetEntry());
-
-        registerNetworkEntry(new ArrowNetEntry(), 1);
-        registerNetworkEntry(new CannonballEntry(), 2);
-        registerNetworkEntry(new EggNetEntry(), 3);
-        registerNetworkEntry(new FireballNetEntry(), 4);
-        registerNetworkEntry(new PebbleEntry(), 5);
-        registerNetworkEntry(new SnowballNetEntry(), 6);
-
-        registerNetworkEntry(new BoatNetEntry(), 10);
-        registerNetworkEntry(new MinecartNetEntry(), 11);
-
-        registerNetworkEntry(new FallingSandNetEntry(), 20);
-        registerNetworkEntry(new TNTNetEntry(), 21);
-
-        registerNetworkEntry(new BobberNetEntry(), 30);
+        registerNetworkEntry(new NetEntryAnimal<>());
+        registerNetworkEntry(new NetEntrySquid());
+        registerNetworkEntry(new NetEntryFirefly());
+        registerNetworkEntry(new NetEntryItem());
+        registerNetworkEntry(new NetEntryPainting());
+        registerNetworkEntry(new NetEntryPlayerServer());
+
+        registerNetworkEntry(new NetEntryArrow(), 1);
+        registerNetworkEntry(new NetEntryCannonball(), 2);
+        registerNetworkEntry(new NetEntryEgg(), 3);
+        registerNetworkEntry(new NetEntryFireball(), 4);
+        registerNetworkEntry(new NetEntryPebble(), 5);
+        registerNetworkEntry(new NetEntrySnowball(), 6);
+
+        registerNetworkEntry(new NetEntryBoat(), 10);
+        registerNetworkEntry(new NetEntryMinecart(), 11);
+
+        registerNetworkEntry(new NetEntryFallingBlock(), 20);
+        registerNetworkEntry(new NetEntryPrimedTNT(), 21);
+
+        registerNetworkEntry(new NetEntryBobber(), 30);
     }
 }
diff --git a/src/main/java/net/minecraft/core/net/entity/entries/FireflyNetEntry.java b/src/main/java/net/minecraft/core/net/entity/entries/FireflyNetEntry.java
deleted file mode 100644
index 73f14b243..000000000
--- a/src/main/java/net/minecraft/core/net/entity/entries/FireflyNetEntry.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package net.minecraft.core.net.entity.entries;
-
-import net.minecraft.core.entity.animal.FireflyClusterMob;
-import org.jetbrains.annotations.NotNull;
-
-public class FireflyNetEntry extends AnimalNetEntry<FireflyClusterMob>{
-    @Override
-    public @NotNull Class<FireflyClusterMob> getAppliedClass() {
-        return FireflyClusterMob.class;
-    }
-    @Override
-    public int getPacketDelay() {
-        return 40;
-    }
-}
diff --git a/src/main/java/net/minecraft/core/net/entity/entries/AnimalNetEntry.java b/src/main/java/net/minecraft/core/net/entity/entries/NetEntryAnimal.java
similarity index 94%
rename from src/main/java/net/minecraft/core/net/entity/entries/AnimalNetEntry.java
rename to src/main/java/net/minecraft/core/net/entity/entries/NetEntryAnimal.java
index 93dc18279..06ec1769f 100644
--- a/src/main/java/net/minecraft/core/net/entity/entries/AnimalNetEntry.java
+++ b/src/main/java/net/minecraft/core/net/entity/entries/NetEntryAnimal.java
@@ -10,7 +10,7 @@ import net.minecraft.server.entity.EntityTracker;
 import net.minecraft.server.entity.EntityTrackerEntry;
 import org.jetbrains.annotations.NotNull;
 
-public class AnimalNetEntry<T extends Creature> implements IPacketEntry<T>, ITrackedEntry<T> {
+public class NetEntryAnimal<T extends Creature> implements IPacketEntry<T>, ITrackedEntry<T> {
     @Override
     public @NotNull Class<T> getAppliedClass() {
         return (Class<T>) Creature.class;
diff --git a/src/main/java/net/minecraft/core/net/entity/entries/ArrowNetEntry.java b/src/main/java/net/minecraft/core/net/entity/entries/NetEntryArrow.java
similarity index 67%
rename from src/main/java/net/minecraft/core/net/entity/entries/ArrowNetEntry.java
rename to src/main/java/net/minecraft/core/net/entity/entries/NetEntryArrow.java
index 4ca4c183e..3cc67a47d 100644
--- a/src/main/java/net/minecraft/core/net/entity/entries/ArrowNetEntry.java
+++ b/src/main/java/net/minecraft/core/net/entity/entries/NetEntryArrow.java
@@ -2,9 +2,9 @@ package net.minecraft.core.net.entity.entries;
 
 import net.minecraft.core.entity.Entity;
 import net.minecraft.core.entity.Mob;
-import net.minecraft.core.entity.projectile.ArrowProjectile;
-import net.minecraft.core.entity.projectile.GoldenArrowProjectile;
-import net.minecraft.core.entity.projectile.PurpleArrowProjectile;
+import net.minecraft.core.entity.projectile.ProjectileArrow;
+import net.minecraft.core.entity.projectile.ProjectileArrowGolden;
+import net.minecraft.core.entity.projectile.ProjectileArrowPurple;
 import net.minecraft.core.net.entity.ITrackedEntry;
 import net.minecraft.core.net.entity.IVehicleEntry;
 import net.minecraft.core.net.packet.AddEntityPacket;
@@ -13,10 +13,10 @@ import net.minecraft.server.entity.EntityTracker;
 import net.minecraft.server.entity.EntityTrackerEntry;
 import org.jetbrains.annotations.NotNull;
 
-public class ArrowNetEntry implements IVehicleEntry<ArrowProjectile>, ITrackedEntry<ArrowProjectile> {
+public class NetEntryArrow implements IVehicleEntry<ProjectileArrow>, ITrackedEntry<ProjectileArrow> {
     @Override
-    public @NotNull Class<ArrowProjectile> getAppliedClass() {
-        return ArrowProjectile.class;
+    public @NotNull Class<ProjectileArrow> getAppliedClass() {
+        return ProjectileArrow.class;
     }
 
     @Override
@@ -35,23 +35,23 @@ public class ArrowNetEntry implements IVehicleEntry<ArrowProjectile>, ITrackedEn
     }
 
     @Override
-    public void onEntityTracked(EntityTracker tracker, EntityTrackerEntry trackerEntry, ArrowProjectile trackedObject) {
+    public void onEntityTracked(EntityTracker tracker, EntityTrackerEntry trackerEntry, ProjectileArrow trackedObject) {
 
     }
 
     @Override
     public Entity getEntity(World world, double x, double y, double z, int metadata, boolean hasVelocity, double xd, double yd, double zd, Entity owner) {
         if (metadata == 2) {
-            return new GoldenArrowProjectile(world, x, y, z);
+            return new ProjectileArrowGolden(world, x, y, z);
         } else if (metadata == 1) {
-            return new PurpleArrowProjectile(world, x, y, z);
+            return new ProjectileArrowPurple(world, x, y, z);
         } else {
-            return new ArrowProjectile(world, x, y, z, metadata);
+            return new ProjectileArrow(world, x, y, z, metadata);
         }
     }
 
     @Override
-    public AddEntityPacket getSpawnPacket(EntityTrackerEntry tracker, ArrowProjectile trackedObject) {
+    public AddEntityPacket getSpawnPacket(EntityTrackerEntry tracker, ProjectileArrow trackedObject) {
         Mob entityliving = trackedObject.owner;
         return new AddEntityPacket(trackedObject,
             trackedObject.getArrowType(), entityliving == null ? -1 : entityliving.id,
diff --git a/src/main/java/net/minecraft/core/net/entity/entries/BoatNetEntry.java b/src/main/java/net/minecraft/core/net/entity/entries/NetEntryBoat.java
similarity index 95%
rename from src/main/java/net/minecraft/core/net/entity/entries/BoatNetEntry.java
rename to src/main/java/net/minecraft/core/net/entity/entries/NetEntryBoat.java
index 2adf2535c..7ca1d23a1 100644
--- a/src/main/java/net/minecraft/core/net/entity/entries/BoatNetEntry.java
+++ b/src/main/java/net/minecraft/core/net/entity/entries/NetEntryBoat.java
@@ -10,7 +10,7 @@ import net.minecraft.server.entity.EntityTracker;
 import net.minecraft.server.entity.EntityTrackerEntry;
 import org.jetbrains.annotations.NotNull;
 
-public class BoatNetEntry implements IVehicleEntry<BoatEntity>, ITrackedEntry<BoatEntity> {
+public class NetEntryBoat implements IVehicleEntry<BoatEntity>, ITrackedEntry<BoatEntity> {
     @Override
     public @NotNull Class<BoatEntity> getAppliedClass() {
         return BoatEntity.class;
diff --git a/src/main/java/net/minecraft/core/net/entity/entries/BobberNetEntry.java b/src/main/java/net/minecraft/core/net/entity/entries/NetEntryBobber.java
similarity index 75%
rename from src/main/java/net/minecraft/core/net/entity/entries/BobberNetEntry.java
rename to src/main/java/net/minecraft/core/net/entity/entries/NetEntryBobber.java
index 51ba03a60..753663735 100644
--- a/src/main/java/net/minecraft/core/net/entity/entries/BobberNetEntry.java
+++ b/src/main/java/net/minecraft/core/net/entity/entries/NetEntryBobber.java
@@ -1,7 +1,7 @@
 package net.minecraft.core.net.entity.entries;
 
 import net.minecraft.core.entity.Entity;
-import net.minecraft.core.entity.FishingBobberEntity;
+import net.minecraft.core.entity.EntityFishingBobber;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.net.entity.ITrackedEntry;
 import net.minecraft.core.net.entity.IVehicleEntry;
@@ -11,10 +11,10 @@ import net.minecraft.server.entity.EntityTracker;
 import net.minecraft.server.entity.EntityTrackerEntry;
 import org.jetbrains.annotations.NotNull;
 
-public class BobberNetEntry implements IVehicleEntry<FishingBobberEntity>, ITrackedEntry<FishingBobberEntity> {
+public class NetEntryBobber implements IVehicleEntry<EntityFishingBobber>, ITrackedEntry<EntityFishingBobber> {
     @Override
-    public @NotNull Class<FishingBobberEntity> getAppliedClass() {
-        return FishingBobberEntity.class;
+    public @NotNull Class<EntityFishingBobber> getAppliedClass() {
+        return EntityFishingBobber.class;
     }
 
     @Override
@@ -33,13 +33,13 @@ public class BobberNetEntry implements IVehicleEntry<FishingBobberEntity>, ITrac
     }
 
     @Override
-    public void onEntityTracked(EntityTracker tracker, EntityTrackerEntry trackerEntry, FishingBobberEntity trackedObject) {
+    public void onEntityTracked(EntityTracker tracker, EntityTrackerEntry trackerEntry, EntityFishingBobber trackedObject) {
 
     }
 
     @Override
     public Entity getEntity(World world, double x, double y, double z, int metadata, boolean hasVelocity, double xd, double yd, double zd, Entity owner) {
-        FishingBobberEntity bobber = new FishingBobberEntity(world, x, y, z);
+        EntityFishingBobber bobber = new EntityFishingBobber(world, x, y, z);
         if (owner != null) {
             bobber.owner = (Player) owner;
             ((Player) owner).bobberEntity = bobber;
@@ -48,7 +48,7 @@ public class BobberNetEntry implements IVehicleEntry<FishingBobberEntity>, ITrac
     }
 
     @Override
-    public AddEntityPacket getSpawnPacket(EntityTrackerEntry tracker, FishingBobberEntity bobber) {
+    public AddEntityPacket getSpawnPacket(EntityTrackerEntry tracker, EntityFishingBobber bobber) {
         return new AddEntityPacket(bobber, 0, bobber.owner == null ? -1 : bobber.owner.id);
     }
 }
diff --git a/src/main/java/net/minecraft/core/net/entity/entries/CannonballEntry.java b/src/main/java/net/minecraft/core/net/entity/entries/NetEntryCannonball.java
similarity index 74%
rename from src/main/java/net/minecraft/core/net/entity/entries/CannonballEntry.java
rename to src/main/java/net/minecraft/core/net/entity/entries/NetEntryCannonball.java
index 605d42e09..fa46e44e6 100644
--- a/src/main/java/net/minecraft/core/net/entity/entries/CannonballEntry.java
+++ b/src/main/java/net/minecraft/core/net/entity/entries/NetEntryCannonball.java
@@ -2,7 +2,7 @@ package net.minecraft.core.net.entity.entries;
 
 import net.minecraft.core.entity.Entity;
 import net.minecraft.core.entity.Mob;
-import net.minecraft.core.entity.projectile.CannonballProjectile;
+import net.minecraft.core.entity.projectile.ProjectileCannonball;
 import net.minecraft.core.net.entity.ITrackedEntry;
 import net.minecraft.core.net.entity.IVehicleEntry;
 import net.minecraft.core.net.packet.AddEntityPacket;
@@ -11,10 +11,10 @@ import net.minecraft.server.entity.EntityTracker;
 import net.minecraft.server.entity.EntityTrackerEntry;
 import org.jetbrains.annotations.NotNull;
 
-public class CannonballEntry implements IVehicleEntry<CannonballProjectile>, ITrackedEntry<CannonballProjectile> {
+public class NetEntryCannonball implements IVehicleEntry<ProjectileCannonball>, ITrackedEntry<ProjectileCannonball> {
     @Override
-    public @NotNull Class<CannonballProjectile> getAppliedClass() {
-        return CannonballProjectile.class;
+    public @NotNull Class<ProjectileCannonball> getAppliedClass() {
+        return ProjectileCannonball.class;
     }
 
     @Override
@@ -33,17 +33,17 @@ public class CannonballEntry implements IVehicleEntry<CannonballProjectile>, ITr
     }
 
     @Override
-    public void onEntityTracked(EntityTracker tracker, EntityTrackerEntry trackerEntry, CannonballProjectile trackedObject) {
+    public void onEntityTracked(EntityTracker tracker, EntityTrackerEntry trackerEntry, ProjectileCannonball trackedObject) {
 
     }
 
     @Override
     public Entity getEntity(World world, double x, double y, double z, int metadata, boolean hasVelocity, double xd, double yd, double zd, Entity owner) {
-        return new CannonballProjectile(world, x, y, z);
+        return new ProjectileCannonball(world, x, y, z);
     }
 
     @Override
-    public AddEntityPacket getSpawnPacket(EntityTrackerEntry tracker, CannonballProjectile trackedObject) {
+    public AddEntityPacket getSpawnPacket(EntityTrackerEntry tracker, ProjectileCannonball trackedObject) {
         Mob entityliving = trackedObject.owner;
         return new AddEntityPacket(trackedObject, -1,
             entityliving == null ? -1 : entityliving.id,
diff --git a/src/main/java/net/minecraft/core/net/entity/entries/EggNetEntry.java b/src/main/java/net/minecraft/core/net/entity/entries/NetEntryEgg.java
similarity index 73%
rename from src/main/java/net/minecraft/core/net/entity/entries/EggNetEntry.java
rename to src/main/java/net/minecraft/core/net/entity/entries/NetEntryEgg.java
index ada44ecc5..27a5459b9 100644
--- a/src/main/java/net/minecraft/core/net/entity/entries/EggNetEntry.java
+++ b/src/main/java/net/minecraft/core/net/entity/entries/NetEntryEgg.java
@@ -1,7 +1,7 @@
 package net.minecraft.core.net.entity.entries;
 
 import net.minecraft.core.entity.Entity;
-import net.minecraft.core.entity.projectile.EggProjectile;
+import net.minecraft.core.entity.projectile.ProjectileEgg;
 import net.minecraft.core.net.entity.ITrackedEntry;
 import net.minecraft.core.net.entity.IVehicleEntry;
 import net.minecraft.core.net.packet.AddEntityPacket;
@@ -10,10 +10,10 @@ import net.minecraft.server.entity.EntityTracker;
 import net.minecraft.server.entity.EntityTrackerEntry;
 import org.jetbrains.annotations.NotNull;
 
-public class EggNetEntry implements IVehicleEntry<EggProjectile>, ITrackedEntry<EggProjectile> {
+public class NetEntryEgg implements IVehicleEntry<ProjectileEgg>, ITrackedEntry<ProjectileEgg> {
     @Override
-    public @NotNull Class<EggProjectile> getAppliedClass() {
-        return EggProjectile.class;
+    public @NotNull Class<ProjectileEgg> getAppliedClass() {
+        return ProjectileEgg.class;
     }
 
     @Override
@@ -32,17 +32,17 @@ public class EggNetEntry implements IVehicleEntry<EggProjectile>, ITrackedEntry<
     }
 
     @Override
-    public void onEntityTracked(EntityTracker tracker, EntityTrackerEntry trackerEntry, EggProjectile trackedObject) {
+    public void onEntityTracked(EntityTracker tracker, EntityTrackerEntry trackerEntry, ProjectileEgg trackedObject) {
 
     }
 
     @Override
     public Entity getEntity(World world, double x, double y, double z, int metadata, boolean hasVelocity, double xd, double yd, double zd, Entity owner) {
-        return new EggProjectile(world, x, y, z);
+        return new ProjectileEgg(world, x, y, z);
     }
 
     @Override
-    public AddEntityPacket getSpawnPacket(EntityTrackerEntry tracker, EggProjectile trackedObject) {
+    public AddEntityPacket getSpawnPacket(EntityTrackerEntry tracker, ProjectileEgg trackedObject) {
         return new AddEntityPacket(trackedObject);
     }
 }
diff --git a/src/main/java/net/minecraft/core/net/entity/entries/FallingSandNetEntry.java b/src/main/java/net/minecraft/core/net/entity/entries/NetEntryFallingBlock.java
similarity index 74%
rename from src/main/java/net/minecraft/core/net/entity/entries/FallingSandNetEntry.java
rename to src/main/java/net/minecraft/core/net/entity/entries/NetEntryFallingBlock.java
index 907a78e46..c6daabc21 100644
--- a/src/main/java/net/minecraft/core/net/entity/entries/FallingSandNetEntry.java
+++ b/src/main/java/net/minecraft/core/net/entity/entries/NetEntryFallingBlock.java
@@ -2,7 +2,7 @@ package net.minecraft.core.net.entity.entries;
 
 import net.minecraft.core.block.Block;
 import net.minecraft.core.entity.Entity;
-import net.minecraft.core.entity.FallingBlockEntity;
+import net.minecraft.core.entity.EntityFallingBlock;
 import net.minecraft.core.net.entity.ITrackedEntry;
 import net.minecraft.core.net.entity.IVehicleEntry;
 import net.minecraft.core.net.packet.AddEntityPacket;
@@ -12,10 +12,10 @@ import net.minecraft.server.entity.EntityTracker;
 import net.minecraft.server.entity.EntityTrackerEntry;
 import org.jetbrains.annotations.NotNull;
 
-public class FallingSandNetEntry implements IVehicleEntry<FallingBlockEntity>, ITrackedEntry<FallingBlockEntity> {
+public class NetEntryFallingBlock implements IVehicleEntry<EntityFallingBlock>, ITrackedEntry<EntityFallingBlock> {
     @Override
-    public @NotNull Class<FallingBlockEntity> getAppliedClass() {
-        return FallingBlockEntity.class;
+    public @NotNull Class<EntityFallingBlock> getAppliedClass() {
+        return EntityFallingBlock.class;
     }
 
     @Override
@@ -34,17 +34,17 @@ public class FallingSandNetEntry implements IVehicleEntry<FallingBlockEntity>, I
     }
 
     @Override
-    public void onEntityTracked(EntityTracker tracker, EntityTrackerEntry trackerEntry, FallingBlockEntity trackedObject) {
+    public void onEntityTracked(EntityTracker tracker, EntityTrackerEntry trackerEntry, EntityFallingBlock trackedObject) {
 
     }
 
     @Override
     public Entity getEntity(World world, double x, double y, double z, int metadata, boolean hasVelocity, double xd, double yd, double zd, Entity owner) {
-        return new FallingBlockEntity(world, x, y, z, MathHelper.clamp(metadata, 0, Block.blocksList.length), 0, null);
+        return new EntityFallingBlock(world, x, y, z, MathHelper.clamp(metadata, 0, Block.blocksList.length), 0, null);
     }
 
     @Override
-    public AddEntityPacket getSpawnPacket(EntityTrackerEntry tracker, FallingBlockEntity trackedObject) {
+    public AddEntityPacket getSpawnPacket(EntityTrackerEntry tracker, EntityFallingBlock trackedObject) {
         return new AddEntityPacket(trackedObject, trackedObject.carriedBlock.blockId);
     }
 }
diff --git a/src/main/java/net/minecraft/core/net/entity/entries/FireballNetEntry.java b/src/main/java/net/minecraft/core/net/entity/entries/NetEntryFireball.java
similarity index 72%
rename from src/main/java/net/minecraft/core/net/entity/entries/FireballNetEntry.java
rename to src/main/java/net/minecraft/core/net/entity/entries/NetEntryFireball.java
index e1b905560..990bd5f29 100644
--- a/src/main/java/net/minecraft/core/net/entity/entries/FireballNetEntry.java
+++ b/src/main/java/net/minecraft/core/net/entity/entries/NetEntryFireball.java
@@ -1,7 +1,7 @@
 package net.minecraft.core.net.entity.entries;
 
 import net.minecraft.core.entity.Entity;
-import net.minecraft.core.entity.projectile.FireballProjectile;
+import net.minecraft.core.entity.projectile.ProjectileFireball;
 import net.minecraft.core.net.entity.ITrackedEntry;
 import net.minecraft.core.net.entity.IVehicleEntry;
 import net.minecraft.core.net.packet.AddEntityPacket;
@@ -10,10 +10,10 @@ import net.minecraft.server.entity.EntityTracker;
 import net.minecraft.server.entity.EntityTrackerEntry;
 import org.jetbrains.annotations.NotNull;
 
-public class FireballNetEntry implements IVehicleEntry<FireballProjectile>, ITrackedEntry<FireballProjectile> {
+public class NetEntryFireball implements IVehicleEntry<ProjectileFireball>, ITrackedEntry<ProjectileFireball> {
     @Override
-    public @NotNull Class<FireballProjectile> getAppliedClass() {
-        return FireballProjectile.class;
+    public @NotNull Class<ProjectileFireball> getAppliedClass() {
+        return ProjectileFireball.class;
     }
 
     @Override
@@ -32,17 +32,17 @@ public class FireballNetEntry implements IVehicleEntry<FireballProjectile>, ITra
     }
 
     @Override
-    public void onEntityTracked(EntityTracker tracker, EntityTrackerEntry trackerEntry, FireballProjectile trackedObject) {
+    public void onEntityTracked(EntityTracker tracker, EntityTrackerEntry trackerEntry, ProjectileFireball trackedObject) {
 
     }
 
     @Override
     public Entity getEntity(World world, double x, double y, double z, int metadata, boolean hasVelocity, double xd, double yd, double zd, Entity owner) {
-        return new FireballProjectile(world, x, y, z, xd, yd, zd);
+        return new ProjectileFireball(world, x, y, z, xd, yd, zd);
     }
 
     @Override
-    public AddEntityPacket getSpawnPacket(EntityTrackerEntry tracker, FireballProjectile trackedObject) {
+    public AddEntityPacket getSpawnPacket(EntityTrackerEntry tracker, ProjectileFireball trackedObject) {
         return new AddEntityPacket(trackedObject, -1, -1, trackedObject.xd, trackedObject.yd, trackedObject.zd);
     }
 }
diff --git a/src/main/java/net/minecraft/core/net/entity/entries/NetEntryFirefly.java b/src/main/java/net/minecraft/core/net/entity/entries/NetEntryFirefly.java
new file mode 100644
index 000000000..d1b3a5420
--- /dev/null
+++ b/src/main/java/net/minecraft/core/net/entity/entries/NetEntryFirefly.java
@@ -0,0 +1,15 @@
+package net.minecraft.core.net.entity.entries;
+
+import net.minecraft.core.entity.animal.MobFireflyCluster;
+import org.jetbrains.annotations.NotNull;
+
+public class NetEntryFirefly extends NetEntryAnimal<MobFireflyCluster> {
+    @Override
+    public @NotNull Class<MobFireflyCluster> getAppliedClass() {
+        return MobFireflyCluster.class;
+    }
+    @Override
+    public int getPacketDelay() {
+        return 40;
+    }
+}
diff --git a/src/main/java/net/minecraft/core/net/entity/entries/ItemNetEntry.java b/src/main/java/net/minecraft/core/net/entity/entries/NetEntryItem.java
similarity index 75%
rename from src/main/java/net/minecraft/core/net/entity/entries/ItemNetEntry.java
rename to src/main/java/net/minecraft/core/net/entity/entries/NetEntryItem.java
index 5932262a1..3ad04539e 100644
--- a/src/main/java/net/minecraft/core/net/entity/entries/ItemNetEntry.java
+++ b/src/main/java/net/minecraft/core/net/entity/entries/NetEntryItem.java
@@ -1,6 +1,6 @@
 package net.minecraft.core.net.entity.entries;
 
-import net.minecraft.core.entity.ItemEntity;
+import net.minecraft.core.entity.EntityItem;
 import net.minecraft.core.net.entity.IPacketEntry;
 import net.minecraft.core.net.entity.ITrackedEntry;
 import net.minecraft.core.net.packet.Packet;
@@ -9,10 +9,10 @@ import net.minecraft.server.entity.EntityTracker;
 import net.minecraft.server.entity.EntityTrackerEntry;
 import org.jetbrains.annotations.NotNull;
 
-public class ItemNetEntry implements IPacketEntry<ItemEntity>, ITrackedEntry<ItemEntity> {
+public class NetEntryItem implements IPacketEntry<EntityItem>, ITrackedEntry<EntityItem> {
     @Override
-    public @NotNull Class<ItemEntity> getAppliedClass() {
-        return ItemEntity.class;
+    public @NotNull Class<EntityItem> getAppliedClass() {
+        return EntityItem.class;
     }
 
     @Override
@@ -31,12 +31,12 @@ public class ItemNetEntry implements IPacketEntry<ItemEntity>, ITrackedEntry<Ite
     }
 
     @Override
-    public void onEntityTracked(EntityTracker tracker, EntityTrackerEntry trackerEntry, ItemEntity trackedObject) {
+    public void onEntityTracked(EntityTracker tracker, EntityTrackerEntry trackerEntry, EntityItem trackedObject) {
 
     }
 
     @Override
-    public Packet getSpawnPacket(EntityTrackerEntry tracker, ItemEntity trackedObject) {
+    public Packet getSpawnPacket(EntityTrackerEntry tracker, EntityItem trackedObject) {
         AddItemEntityPacket addItemEntityPacket21Pickupspawn = new AddItemEntityPacket(trackedObject);
         trackedObject.x = addItemEntityPacket21Pickupspawn.xPosition / 32D;
         trackedObject.y = addItemEntityPacket21Pickupspawn.yPosition / 32D;
diff --git a/src/main/java/net/minecraft/core/net/entity/entries/MinecartNetEntry.java b/src/main/java/net/minecraft/core/net/entity/entries/NetEntryMinecart.java
similarity index 95%
rename from src/main/java/net/minecraft/core/net/entity/entries/MinecartNetEntry.java
rename to src/main/java/net/minecraft/core/net/entity/entries/NetEntryMinecart.java
index 32ed74a76..a0039d333 100644
--- a/src/main/java/net/minecraft/core/net/entity/entries/MinecartNetEntry.java
+++ b/src/main/java/net/minecraft/core/net/entity/entries/NetEntryMinecart.java
@@ -10,7 +10,7 @@ import net.minecraft.server.entity.EntityTracker;
 import net.minecraft.server.entity.EntityTrackerEntry;
 import org.jetbrains.annotations.NotNull;
 
-public class MinecartNetEntry implements IVehicleEntry<MinecartEntity>, ITrackedEntry<MinecartEntity> {
+public class NetEntryMinecart implements IVehicleEntry<MinecartEntity>, ITrackedEntry<MinecartEntity> {
     @Override
     public @NotNull Class<MinecartEntity> getAppliedClass() {
         return MinecartEntity.class;
diff --git a/src/main/java/net/minecraft/core/net/entity/entries/PaintingNetEntry.java b/src/main/java/net/minecraft/core/net/entity/entries/NetEntryPainting.java
similarity index 67%
rename from src/main/java/net/minecraft/core/net/entity/entries/PaintingNetEntry.java
rename to src/main/java/net/minecraft/core/net/entity/entries/NetEntryPainting.java
index cfbced100..20eb2ecc4 100644
--- a/src/main/java/net/minecraft/core/net/entity/entries/PaintingNetEntry.java
+++ b/src/main/java/net/minecraft/core/net/entity/entries/NetEntryPainting.java
@@ -1,6 +1,6 @@
 package net.minecraft.core.net.entity.entries;
 
-import net.minecraft.core.entity.PaintingEntity;
+import net.minecraft.core.entity.EntityPainting;
 import net.minecraft.core.net.entity.IPacketEntry;
 import net.minecraft.core.net.entity.ITrackedEntry;
 import net.minecraft.core.net.packet.Packet;
@@ -9,10 +9,10 @@ import net.minecraft.server.entity.EntityTracker;
 import net.minecraft.server.entity.EntityTrackerEntry;
 import org.jetbrains.annotations.NotNull;
 
-public class PaintingNetEntry implements IPacketEntry<PaintingEntity>, ITrackedEntry<PaintingEntity> {
+public class NetEntryPainting implements IPacketEntry<EntityPainting>, ITrackedEntry<EntityPainting> {
     @Override
-    public @NotNull Class<PaintingEntity> getAppliedClass() {
-        return PaintingEntity.class;
+    public @NotNull Class<EntityPainting> getAppliedClass() {
+        return EntityPainting.class;
     }
 
     @Override
@@ -31,12 +31,12 @@ public class PaintingNetEntry implements IPacketEntry<PaintingEntity>, ITrackedE
     }
 
     @Override
-    public void onEntityTracked(EntityTracker tracker, EntityTrackerEntry trackerEntry, PaintingEntity trackedObject) {
+    public void onEntityTracked(EntityTracker tracker, EntityTrackerEntry trackerEntry, EntityPainting trackedObject) {
 
     }
 
     @Override
-    public Packet getSpawnPacket(EntityTrackerEntry tracker, PaintingEntity trackedObject) {
+    public Packet getSpawnPacket(EntityTrackerEntry tracker, EntityPainting trackedObject) {
         return new AddPaintingPacket(trackedObject);
     }
 }
diff --git a/src/main/java/net/minecraft/core/net/entity/entries/PebbleEntry.java b/src/main/java/net/minecraft/core/net/entity/entries/NetEntryPebble.java
similarity index 72%
rename from src/main/java/net/minecraft/core/net/entity/entries/PebbleEntry.java
rename to src/main/java/net/minecraft/core/net/entity/entries/NetEntryPebble.java
index fc2315521..fee3e9af7 100644
--- a/src/main/java/net/minecraft/core/net/entity/entries/PebbleEntry.java
+++ b/src/main/java/net/minecraft/core/net/entity/entries/NetEntryPebble.java
@@ -1,7 +1,7 @@
 package net.minecraft.core.net.entity.entries;
 
 import net.minecraft.core.entity.Entity;
-import net.minecraft.core.entity.projectile.PebbleProjectile;
+import net.minecraft.core.entity.projectile.ProjectilePebble;
 import net.minecraft.core.net.entity.ITrackedEntry;
 import net.minecraft.core.net.entity.IVehicleEntry;
 import net.minecraft.core.net.packet.AddEntityPacket;
@@ -10,10 +10,10 @@ import net.minecraft.server.entity.EntityTracker;
 import net.minecraft.server.entity.EntityTrackerEntry;
 import org.jetbrains.annotations.NotNull;
 
-public class PebbleEntry implements IVehicleEntry<PebbleProjectile>, ITrackedEntry<PebbleProjectile> {
+public class NetEntryPebble implements IVehicleEntry<ProjectilePebble>, ITrackedEntry<ProjectilePebble> {
     @Override
-    public @NotNull Class<PebbleProjectile> getAppliedClass() {
-        return PebbleProjectile.class;
+    public @NotNull Class<ProjectilePebble> getAppliedClass() {
+        return ProjectilePebble.class;
     }
 
     @Override
@@ -32,17 +32,17 @@ public class PebbleEntry implements IVehicleEntry<PebbleProjectile>, ITrackedEnt
     }
 
     @Override
-    public void onEntityTracked(EntityTracker tracker, EntityTrackerEntry trackerEntry, PebbleProjectile trackedObject) {
+    public void onEntityTracked(EntityTracker tracker, EntityTrackerEntry trackerEntry, ProjectilePebble trackedObject) {
 
     }
 
     @Override
     public Entity getEntity(World world, double x, double y, double z, int metadata, boolean hasVelocity, double xd, double yd, double zd, Entity owner) {
-        return new PebbleProjectile(world, x, y, z);
+        return new ProjectilePebble(world, x, y, z);
     }
 
     @Override
-    public AddEntityPacket getSpawnPacket(EntityTrackerEntry tracker, PebbleProjectile trackedObject) {
+    public AddEntityPacket getSpawnPacket(EntityTrackerEntry tracker, ProjectilePebble trackedObject) {
         return new AddEntityPacket(trackedObject);
     }
 }
diff --git a/src/main/java/net/minecraft/core/net/entity/entries/PlayerMPNetEntry.java b/src/main/java/net/minecraft/core/net/entity/entries/NetEntryPlayerServer.java
similarity index 72%
rename from src/main/java/net/minecraft/core/net/entity/entries/PlayerMPNetEntry.java
rename to src/main/java/net/minecraft/core/net/entity/entries/NetEntryPlayerServer.java
index 1576f2d51..a70ef0599 100644
--- a/src/main/java/net/minecraft/core/net/entity/entries/PlayerMPNetEntry.java
+++ b/src/main/java/net/minecraft/core/net/entity/entries/NetEntryPlayerServer.java
@@ -6,13 +6,13 @@ import net.minecraft.core.net.packet.Packet;
 import net.minecraft.core.net.packet.AddPlayerPacket;
 import net.minecraft.server.entity.EntityTracker;
 import net.minecraft.server.entity.EntityTrackerEntry;
-import net.minecraft.server.entity.player.ServerPlayer;
+import net.minecraft.server.entity.player.PlayerServer;
 import org.jetbrains.annotations.NotNull;
 
-public class PlayerMPNetEntry implements IPacketEntry<ServerPlayer>, ITrackedEntry<ServerPlayer> {
+public class NetEntryPlayerServer implements IPacketEntry<PlayerServer>, ITrackedEntry<PlayerServer> {
     @Override
-    public @NotNull Class<ServerPlayer> getAppliedClass() {
-        return ServerPlayer.class;
+    public @NotNull Class<PlayerServer> getAppliedClass() {
+        return PlayerServer.class;
     }
 
     @Override
@@ -31,7 +31,7 @@ public class PlayerMPNetEntry implements IPacketEntry<ServerPlayer>, ITrackedEnt
     }
 
     @Override
-    public void onEntityTracked(EntityTracker tracker, EntityTrackerEntry trackerEntry, ServerPlayer trackedObject) {
+    public void onEntityTracked(EntityTracker tracker, EntityTrackerEntry trackerEntry, PlayerServer trackedObject) {
         for (EntityTrackerEntry entitytrackerentry : tracker.trackedEntitySet) {
             if (entitytrackerentry.trackedEntity != trackedObject) {
                 entitytrackerentry.updatePlayerEntity(trackedObject);
@@ -40,7 +40,7 @@ public class PlayerMPNetEntry implements IPacketEntry<ServerPlayer>, ITrackedEnt
     }
 
     @Override
-    public Packet getSpawnPacket(EntityTrackerEntry tracker, ServerPlayer trackedObject) {
+    public Packet getSpawnPacket(EntityTrackerEntry tracker, PlayerServer trackedObject) {
         return new AddPlayerPacket(trackedObject);
     }
 }
diff --git a/src/main/java/net/minecraft/core/net/entity/entries/TNTNetEntry.java b/src/main/java/net/minecraft/core/net/entity/entries/NetEntryPrimedTNT.java
similarity index 72%
rename from src/main/java/net/minecraft/core/net/entity/entries/TNTNetEntry.java
rename to src/main/java/net/minecraft/core/net/entity/entries/NetEntryPrimedTNT.java
index 76d865504..44819874a 100644
--- a/src/main/java/net/minecraft/core/net/entity/entries/TNTNetEntry.java
+++ b/src/main/java/net/minecraft/core/net/entity/entries/NetEntryPrimedTNT.java
@@ -1,7 +1,7 @@
 package net.minecraft.core.net.entity.entries;
 
 import net.minecraft.core.entity.Entity;
-import net.minecraft.core.entity.TNTPrimedEntity;
+import net.minecraft.core.entity.EntityPrimedTNT;
 import net.minecraft.core.net.entity.ITrackedEntry;
 import net.minecraft.core.net.entity.IVehicleEntry;
 import net.minecraft.core.net.packet.AddEntityPacket;
@@ -10,10 +10,10 @@ import net.minecraft.server.entity.EntityTracker;
 import net.minecraft.server.entity.EntityTrackerEntry;
 import org.jetbrains.annotations.NotNull;
 
-public class TNTNetEntry implements IVehicleEntry<TNTPrimedEntity>, ITrackedEntry<TNTPrimedEntity> {
+public class NetEntryPrimedTNT implements IVehicleEntry<EntityPrimedTNT>, ITrackedEntry<EntityPrimedTNT> {
     @Override
-    public @NotNull Class<TNTPrimedEntity> getAppliedClass() {
-        return TNTPrimedEntity.class;
+    public @NotNull Class<EntityPrimedTNT> getAppliedClass() {
+        return EntityPrimedTNT.class;
     }
 
     @Override
@@ -32,17 +32,17 @@ public class TNTNetEntry implements IVehicleEntry<TNTPrimedEntity>, ITrackedEntr
     }
 
     @Override
-    public void onEntityTracked(EntityTracker tracker, EntityTrackerEntry trackerEntry, TNTPrimedEntity trackedObject) {
+    public void onEntityTracked(EntityTracker tracker, EntityTrackerEntry trackerEntry, EntityPrimedTNT trackedObject) {
 
     }
 
     @Override
     public Entity getEntity(World world, double x, double y, double z, int metadata, boolean hasVelocity, double xd, double yd, double zd, Entity owner) {
-        return new TNTPrimedEntity(world, x, y, z);
+        return new EntityPrimedTNT(world, x, y, z);
     }
 
     @Override
-    public AddEntityPacket getSpawnPacket(EntityTrackerEntry tracker, TNTPrimedEntity trackedObject) {
+    public AddEntityPacket getSpawnPacket(EntityTrackerEntry tracker, EntityPrimedTNT trackedObject) {
         return new AddEntityPacket(trackedObject);
     }
 }
diff --git a/src/main/java/net/minecraft/core/net/entity/entries/SnowballNetEntry.java b/src/main/java/net/minecraft/core/net/entity/entries/NetEntrySnowball.java
similarity index 71%
rename from src/main/java/net/minecraft/core/net/entity/entries/SnowballNetEntry.java
rename to src/main/java/net/minecraft/core/net/entity/entries/NetEntrySnowball.java
index bcc36c0da..a67678fed 100644
--- a/src/main/java/net/minecraft/core/net/entity/entries/SnowballNetEntry.java
+++ b/src/main/java/net/minecraft/core/net/entity/entries/NetEntrySnowball.java
@@ -1,7 +1,7 @@
 package net.minecraft.core.net.entity.entries;
 
 import net.minecraft.core.entity.Entity;
-import net.minecraft.core.entity.projectile.SnowballProjectile;
+import net.minecraft.core.entity.projectile.ProjectileSnowball;
 import net.minecraft.core.net.entity.ITrackedEntry;
 import net.minecraft.core.net.entity.IVehicleEntry;
 import net.minecraft.core.net.packet.AddEntityPacket;
@@ -10,10 +10,10 @@ import net.minecraft.server.entity.EntityTracker;
 import net.minecraft.server.entity.EntityTrackerEntry;
 import org.jetbrains.annotations.NotNull;
 
-public class SnowballNetEntry implements IVehicleEntry<SnowballProjectile>, ITrackedEntry<SnowballProjectile> {
+public class NetEntrySnowball implements IVehicleEntry<ProjectileSnowball>, ITrackedEntry<ProjectileSnowball> {
     @Override
-    public @NotNull Class<SnowballProjectile> getAppliedClass() {
-        return SnowballProjectile.class;
+    public @NotNull Class<ProjectileSnowball> getAppliedClass() {
+        return ProjectileSnowball.class;
     }
 
     @Override
@@ -32,17 +32,17 @@ public class SnowballNetEntry implements IVehicleEntry<SnowballProjectile>, ITra
     }
 
     @Override
-    public void onEntityTracked(EntityTracker tracker, EntityTrackerEntry trackerEntry, SnowballProjectile trackedObject) {
+    public void onEntityTracked(EntityTracker tracker, EntityTrackerEntry trackerEntry, ProjectileSnowball trackedObject) {
 
     }
 
     @Override
     public Entity getEntity(World world, double x, double y, double z, int metadata, boolean hasVelocity, double xd, double yd, double zd, Entity owner) {
-        return new SnowballProjectile(world, x, y, z);
+        return new ProjectileSnowball(world, x, y, z);
     }
 
     @Override
-    public AddEntityPacket getSpawnPacket(EntityTrackerEntry tracker, SnowballProjectile trackedObject) {
+    public AddEntityPacket getSpawnPacket(EntityTrackerEntry tracker, ProjectileSnowball trackedObject) {
         return new AddEntityPacket(trackedObject);
     }
 }
diff --git a/src/main/java/net/minecraft/core/net/entity/entries/NetEntrySquid.java b/src/main/java/net/minecraft/core/net/entity/entries/NetEntrySquid.java
new file mode 100644
index 000000000..80da21a56
--- /dev/null
+++ b/src/main/java/net/minecraft/core/net/entity/entries/NetEntrySquid.java
@@ -0,0 +1,16 @@
+package net.minecraft.core.net.entity.entries;
+
+import net.minecraft.core.entity.animal.MobSquid;
+import org.jetbrains.annotations.NotNull;
+
+public class NetEntrySquid extends NetEntryAnimal<MobSquid> {
+    @Override
+    public @NotNull Class<MobSquid> getAppliedClass() {
+        return MobSquid.class;
+    }
+
+    @Override
+    public boolean sendMotionUpdates() {
+        return true;
+    }
+}
diff --git a/src/main/java/net/minecraft/core/net/entity/entries/SquidNetEntry.java b/src/main/java/net/minecraft/core/net/entity/entries/SquidNetEntry.java
deleted file mode 100644
index e7c6450d7..000000000
--- a/src/main/java/net/minecraft/core/net/entity/entries/SquidNetEntry.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package net.minecraft.core.net.entity.entries;
-
-import net.minecraft.core.entity.animal.SquidMob;
-import org.jetbrains.annotations.NotNull;
-
-public class SquidNetEntry extends AnimalNetEntry<SquidMob>{
-    @Override
-    public @NotNull Class<SquidMob> getAppliedClass() {
-        return SquidMob.class;
-    }
-
-    @Override
-    public boolean sendMotionUpdates() {
-        return true;
-    }
-}
diff --git a/src/main/java/net/minecraft/core/net/packet/AddItemEntityPacket.java b/src/main/java/net/minecraft/core/net/packet/AddItemEntityPacket.java
index c89b2c854..1a82688b0 100644
--- a/src/main/java/net/minecraft/core/net/packet/AddItemEntityPacket.java
+++ b/src/main/java/net/minecraft/core/net/packet/AddItemEntityPacket.java
@@ -1,6 +1,6 @@
 package net.minecraft.core.net.packet;
 
-import net.minecraft.core.entity.ItemEntity;
+import net.minecraft.core.entity.EntityItem;
 import com.mojang.nbt.CompoundTag;
 import net.minecraft.core.net.handler.PacketHandler;
 import net.minecraft.core.util.helper.MathHelper;
@@ -22,7 +22,7 @@ public class AddItemEntityPacket extends Packet {
 
     public AddItemEntityPacket() {}
 
-    public AddItemEntityPacket(ItemEntity entityitem) {
+    public AddItemEntityPacket(EntityItem entityitem) {
         entityId = entityitem.id;
         itemID = entityitem.item.itemID;
         count = entityitem.item.stackSize;
diff --git a/src/main/java/net/minecraft/core/net/packet/AddPaintingPacket.java b/src/main/java/net/minecraft/core/net/packet/AddPaintingPacket.java
index ae2ac326a..e2ebd5d68 100644
--- a/src/main/java/net/minecraft/core/net/packet/AddPaintingPacket.java
+++ b/src/main/java/net/minecraft/core/net/packet/AddPaintingPacket.java
@@ -1,6 +1,6 @@
 package net.minecraft.core.net.packet;
 
-import net.minecraft.core.entity.PaintingEntity;
+import net.minecraft.core.entity.EntityPainting;
 import net.minecraft.core.enums.ArtType;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.net.handler.PacketHandler;
@@ -8,7 +8,7 @@ import net.minecraft.core.net.handler.PacketHandler;
 import java.io.*;
 
 // Referenced classes of package net.minecraft.src:
-//            Packet, PaintingEntity, ArtType, PacketHandler
+//            Packet, EntityPainting, ArtType, PacketHandler
 
 public class AddPaintingPacket extends Packet
 {
@@ -17,7 +17,7 @@ public class AddPaintingPacket extends Packet
     {
     }
 
-    public AddPaintingPacket(PaintingEntity entitypainting)
+    public AddPaintingPacket(EntityPainting entitypainting)
     {
         entityId = entitypainting.id;
         xPosition = entitypainting.blockX;
diff --git a/src/main/java/net/minecraft/core/net/packet/BlockEntityDataPacket.java b/src/main/java/net/minecraft/core/net/packet/BlockEntityDataPacket.java
index 0f558d40c..9de957f3f 100644
--- a/src/main/java/net/minecraft/core/net/packet/BlockEntityDataPacket.java
+++ b/src/main/java/net/minecraft/core/net/packet/BlockEntityDataPacket.java
@@ -1,7 +1,7 @@
 package net.minecraft.core.net.packet;
 
 import com.mojang.nbt.CompoundTag;
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.net.handler.PacketHandler;
 
 import java.io.*;
@@ -16,12 +16,12 @@ public class BlockEntityDataPacket
         isChunkDataPacket = true;
     }
 
-    public BlockEntityDataPacket(BlockEntity blockEntity)
+    public BlockEntityDataPacket(TileEntity tileEntity)
     {
         this();
 
         tag = new CompoundTag();
-        blockEntity.writeToNBT(tag);
+        tileEntity.writeToNBT(tag);
     }
 
     public BlockEntityDataPacket(CompoundTag tag) {
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 88ea5573d..2a2231d8d 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 : "Inventory Type > 127 won't serialize properly";
+        assert inventoryType <= Byte.MAX_VALUE : "ContainerInventory 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/net/packet/SignUpdatePacket.java b/src/main/java/net/minecraft/core/net/packet/SignUpdatePacket.java
index f5eeb6e94..3d560fa29 100644
--- a/src/main/java/net/minecraft/core/net/packet/SignUpdatePacket.java
+++ b/src/main/java/net/minecraft/core/net/packet/SignUpdatePacket.java
@@ -1,6 +1,6 @@
 package net.minecraft.core.net.packet;
 
-import net.minecraft.core.block.entity.SignBlockEntity;
+import net.minecraft.core.block.entity.TileEntitySign;
 import net.minecraft.core.net.handler.PacketHandler;
 
 import java.io.*;
@@ -37,7 +37,7 @@ public class SignUpdatePacket extends Packet
         signLines = new String[4];
         for(int i = 0; i < 4; i++)
         {
-            signLines[i] = readString(dis, SignBlockEntity.MAX_LINE_SIZE);
+            signLines[i] = readString(dis, TileEntitySign.MAX_LINE_SIZE);
         }
         picture = dis.readInt();
         color = dis.readInt();
diff --git a/src/main/java/net/minecraft/core/net/packet/WeatherEffectPacket.java b/src/main/java/net/minecraft/core/net/packet/WeatherEffectPacket.java
index 86e7a71d2..86c28195c 100644
--- a/src/main/java/net/minecraft/core/net/packet/WeatherEffectPacket.java
+++ b/src/main/java/net/minecraft/core/net/packet/WeatherEffectPacket.java
@@ -1,14 +1,14 @@
 package net.minecraft.core.net.packet;
 
 import net.minecraft.core.entity.Entity;
-import net.minecraft.core.entity.LightningEntity;
+import net.minecraft.core.entity.EntityLightning;
 import net.minecraft.core.net.handler.PacketHandler;
 import net.minecraft.core.util.helper.MathHelper;
 
 import java.io.*;
 
 // Referenced classes of package net.minecraft.src:
-//            Packet, Entity, MathHelper, LightningEntity,
+//            Packet, Entity, MathHelper, EntityLightning,
 //            PacketHandler
 
 public class WeatherEffectPacket extends Packet
@@ -29,7 +29,7 @@ public class WeatherEffectPacket extends Packet
         x = MathHelper.floor(entity.x * 32D);
         y = MathHelper.floor(entity.y * 32D);
         z = MathHelper.floor(entity.z * 32D);
-        if(entity instanceof LightningEntity)
+        if(entity instanceof EntityLightning)
         {
             effectId = EFFECT_LIGHTNING;
         }
diff --git a/src/main/java/net/minecraft/core/net/packet/WeatherStatusPacket.java b/src/main/java/net/minecraft/core/net/packet/WeatherStatusPacket.java
index 13b74cafd..caabcd2f8 100644
--- a/src/main/java/net/minecraft/core/net/packet/WeatherStatusPacket.java
+++ b/src/main/java/net/minecraft/core/net/packet/WeatherStatusPacket.java
@@ -5,7 +5,7 @@ import net.minecraft.core.net.handler.PacketHandler;
 import java.io.*;
 
 // Referenced classes of package net.minecraft.src:
-//            Packet, Entity, MathHelper, LightningEntity,
+//            Packet, Entity, MathHelper, EntityLightning,
 //            PacketHandler
 
 public class WeatherStatusPacket extends Packet
diff --git a/src/main/java/net/minecraft/core/player/gamemode/Gamemode.java b/src/main/java/net/minecraft/core/player/gamemode/Gamemode.java
index df96fb598..a3f41a29c 100644
--- a/src/main/java/net/minecraft/core/player/gamemode/Gamemode.java
+++ b/src/main/java/net/minecraft/core/player/gamemode/Gamemode.java
@@ -1,7 +1,7 @@
 package net.minecraft.core.player.gamemode;
 
-import net.minecraft.core.player.inventory.menu.InventoryMenu;
-import net.minecraft.core.player.inventory.container.Inventory;
+import net.minecraft.core.player.inventory.menu.MenuInventory;
+import net.minecraft.core.player.inventory.container.ContainerInventory;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -184,7 +184,7 @@ public abstract class Gamemode
 		return this;
 	}
 
-	public abstract InventoryMenu getContainer(Inventory inventory, boolean isNotClientSide);
+	public abstract MenuInventory getContainer(ContainerInventory inventory, boolean isNotClientSide);
 
 	public static final Gamemode[] gamemodesList = new Gamemode[5];
 	public static List<Gamemode> getPublicGamemodes(){
diff --git a/src/main/java/net/minecraft/core/player/gamemode/GamemodeCreative.java b/src/main/java/net/minecraft/core/player/gamemode/GamemodeCreative.java
index 60a319647..cab24ec2b 100644
--- a/src/main/java/net/minecraft/core/player/gamemode/GamemodeCreative.java
+++ b/src/main/java/net/minecraft/core/player/gamemode/GamemodeCreative.java
@@ -1,8 +1,8 @@
 package net.minecraft.core.player.gamemode;
 
-import net.minecraft.core.player.inventory.menu.InventoryMenu;
-import net.minecraft.core.player.inventory.menu.CreativeInventoryMenu;
-import net.minecraft.core.player.inventory.container.Inventory;
+import net.minecraft.core.player.inventory.container.ContainerInventory;
+import net.minecraft.core.player.inventory.menu.MenuInventory;
+import net.minecraft.core.player.inventory.menu.MenuInventoryCreative;
 
 public class GamemodeCreative extends Gamemode
 {
@@ -13,8 +13,8 @@ public class GamemodeCreative extends Gamemode
 	}
 
 	@Override
-	public InventoryMenu getContainer(Inventory inventory, boolean isNotClientSide)
+	public MenuInventory getContainer(ContainerInventory inventory, boolean isNotClientSide)
 	{
-		return new CreativeInventoryMenu(inventory, isNotClientSide);
+		return new MenuInventoryCreative(inventory, isNotClientSide);
 	}
 }
diff --git a/src/main/java/net/minecraft/core/player/gamemode/GamemodeSurvival.java b/src/main/java/net/minecraft/core/player/gamemode/GamemodeSurvival.java
index 905892c68..cce883503 100644
--- a/src/main/java/net/minecraft/core/player/gamemode/GamemodeSurvival.java
+++ b/src/main/java/net/minecraft/core/player/gamemode/GamemodeSurvival.java
@@ -1,7 +1,7 @@
 package net.minecraft.core.player.gamemode;
 
-import net.minecraft.core.player.inventory.menu.InventoryMenu;
-import net.minecraft.core.player.inventory.container.Inventory;
+import net.minecraft.core.player.inventory.menu.MenuInventory;
+import net.minecraft.core.player.inventory.container.ContainerInventory;
 
 public class GamemodeSurvival extends Gamemode
 {
@@ -12,8 +12,8 @@ public class GamemodeSurvival extends Gamemode
 	}
 
 	@Override
-	public InventoryMenu getContainer(Inventory inventory, boolean isNotClientSide)
+	public MenuInventory getContainer(ContainerInventory inventory, boolean isNotClientSide)
 	{
-		return new InventoryMenu(inventory, isNotClientSide);
+		return new MenuInventory(inventory, isNotClientSide);
 	}
 }
diff --git a/src/main/java/net/minecraft/core/player/inventory/container/CompoundContainer.java b/src/main/java/net/minecraft/core/player/inventory/container/ContainerCompound.java
similarity index 95%
rename from src/main/java/net/minecraft/core/player/inventory/container/CompoundContainer.java
rename to src/main/java/net/minecraft/core/player/inventory/container/ContainerCompound.java
index a70b6ad7a..a1e3fdfe6 100644
--- a/src/main/java/net/minecraft/core/player/inventory/container/CompoundContainer.java
+++ b/src/main/java/net/minecraft/core/player/inventory/container/ContainerCompound.java
@@ -8,14 +8,14 @@ import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.player.inventory.InventorySorter;
 
-public class CompoundContainer
+public class ContainerCompound
     implements Container
 {
     private String name;
     private Container c1;
     private Container c2;
 
-    public CompoundContainer(String s, Container c1, Container c2)
+    public ContainerCompound(String s, Container c1, Container c2)
     {
         name = s;
         this.c1 = c1;
diff --git a/src/main/java/net/minecraft/core/player/inventory/container/CraftingContainer.java b/src/main/java/net/minecraft/core/player/inventory/container/ContainerCrafting.java
similarity index 91%
rename from src/main/java/net/minecraft/core/player/inventory/container/CraftingContainer.java
rename to src/main/java/net/minecraft/core/player/inventory/container/ContainerCrafting.java
index be1d4a537..94c3aa8fb 100644
--- a/src/main/java/net/minecraft/core/player/inventory/container/CraftingContainer.java
+++ b/src/main/java/net/minecraft/core/player/inventory/container/ContainerCrafting.java
@@ -6,16 +6,16 @@ package net.minecraft.core.player.inventory.container;
 
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.item.ItemStack;
-import net.minecraft.core.player.inventory.menu.AbstractContainerMenu;
+import net.minecraft.core.player.inventory.menu.MenuAbstract;
 
-public class CraftingContainer
+public class ContainerCrafting
     implements Container
 {
     private ItemStack[] items;
     private int width;
-    private AbstractContainerMenu menu;
+    private MenuAbstract menu;
 
-    public CraftingContainer(AbstractContainerMenu container, int width, int n)
+    public ContainerCrafting(MenuAbstract container, int width, int n)
     {
         int k = width * n;
         items = new ItemStack[k];
diff --git a/src/main/java/net/minecraft/core/player/inventory/container/Inventory.java b/src/main/java/net/minecraft/core/player/inventory/container/ContainerInventory.java
similarity index 98%
rename from src/main/java/net/minecraft/core/player/inventory/container/Inventory.java
rename to src/main/java/net/minecraft/core/player/inventory/container/ContainerInventory.java
index 7bed0c445..2995f67f5 100644
--- a/src/main/java/net/minecraft/core/player/inventory/container/Inventory.java
+++ b/src/main/java/net/minecraft/core/player/inventory/container/ContainerInventory.java
@@ -8,7 +8,7 @@ import net.minecraft.core.block.Block;
 
 // Referenced classes of package net.minecraft.src:
 //            IInventory, ItemStack, Player, NBTTagCompound,
-//            NBTTagList, Block, Material, ArmorItem,
+//            NBTTagList, Block, Material, ItemArmor,
 //            Entity
 
 import net.minecraft.core.block.tag.BlockTags;
@@ -23,7 +23,7 @@ import net.minecraft.core.player.inventory.InventorySorter;
 import net.minecraft.core.util.helper.DamageType;
 import org.jetbrains.annotations.Nullable;
 
-public class Inventory
+public class ContainerInventory
     implements Container
 {
     protected int hotbarOffset = 0;
@@ -34,7 +34,7 @@ public class Inventory
     private ItemStack heldItem;
     public boolean inventoryChanged;
 
-    public Inventory(Player player)
+    public ContainerInventory(Player player)
     {
         mainInventory = new ItemStack[36];
         armorInventory = new ItemStack[4];
@@ -364,7 +364,7 @@ public class Inventory
     @Override
 	public String getName()
     {
-        return "Inventory";
+        return "ContainerInventory";
     }
 
     @Override
@@ -546,7 +546,7 @@ public class Inventory
         InventorySorter.sortInventory(mainInventory, 9, mainInventory.length - 1);
     }
 	
-	public void transferAllContents(Inventory inventory) {
+	public void transferAllContents(ContainerInventory inventory) {
 		for(int i=0; i < mainInventory.length; i++) {
 			this.mainInventory[i] = inventory.mainInventory[i];
 			inventory.mainInventory[i] = null;
diff --git a/src/main/java/net/minecraft/core/player/inventory/container/ResultContainer.java b/src/main/java/net/minecraft/core/player/inventory/container/ContainerResult.java
similarity index 95%
rename from src/main/java/net/minecraft/core/player/inventory/container/ResultContainer.java
rename to src/main/java/net/minecraft/core/player/inventory/container/ContainerResult.java
index db8a365c0..9fd1602f0 100644
--- a/src/main/java/net/minecraft/core/player/inventory/container/ResultContainer.java
+++ b/src/main/java/net/minecraft/core/player/inventory/container/ContainerResult.java
@@ -7,12 +7,12 @@ package net.minecraft.core.player.inventory.container;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.item.ItemStack;
 
-public class ResultContainer
+public class ContainerResult
     implements Container
 {
     private ItemStack[] items;
 
-    public ResultContainer()
+    public ContainerResult()
     {
         items = new ItemStack[1];
     }
diff --git a/src/main/java/net/minecraft/core/player/inventory/container/SimpleContainer.java b/src/main/java/net/minecraft/core/player/inventory/container/ContainerSimple.java
similarity index 96%
rename from src/main/java/net/minecraft/core/player/inventory/container/SimpleContainer.java
rename to src/main/java/net/minecraft/core/player/inventory/container/ContainerSimple.java
index f4a0eae9c..f44de68bc 100644
--- a/src/main/java/net/minecraft/core/player/inventory/container/SimpleContainer.java
+++ b/src/main/java/net/minecraft/core/player/inventory/container/ContainerSimple.java
@@ -7,14 +7,14 @@ import net.minecraft.core.player.inventory.InventorySorter;
 // Referenced classes of package net.minecraft.src:
 //            IInventory, ItemStack, IInvBasic, Player
 
-public class SimpleContainer
+public class ContainerSimple
     implements Container
 {
     private String name;
     private int size;
     private ItemStack[] items;
 
-    public SimpleContainer(String name, int size)
+    public ContainerSimple(String name, int size)
     {
         this.name = name;
         this.size = size;
diff --git a/src/main/java/net/minecraft/core/player/inventory/menu/AbstractContainerMenu.java b/src/main/java/net/minecraft/core/player/inventory/menu/MenuAbstract.java
similarity index 97%
rename from src/main/java/net/minecraft/core/player/inventory/menu/AbstractContainerMenu.java
rename to src/main/java/net/minecraft/core/player/inventory/menu/MenuAbstract.java
index 725c99f51..375b80e11 100644
--- a/src/main/java/net/minecraft/core/player/inventory/menu/AbstractContainerMenu.java
+++ b/src/main/java/net/minecraft/core/player/inventory/menu/MenuAbstract.java
@@ -11,14 +11,14 @@ import net.minecraft.core.item.IArmorItem;
 import net.minecraft.core.item.Item;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.player.inventory.container.Container;
-import net.minecraft.core.player.inventory.container.Inventory;
+import net.minecraft.core.player.inventory.container.ContainerInventory;
 import net.minecraft.core.player.inventory.slot.Slot;
-import net.minecraft.core.player.inventory.slot.ResultSlot;
+import net.minecraft.core.player.inventory.slot.SlotResult;
 import net.minecraft.core.util.helper.MathHelper;
 import org.jetbrains.annotations.Nullable;
 import org.slf4j.Logger;
 
-public abstract class AbstractContainerMenu
+public abstract class MenuAbstract
 {
 	private static final Logger LOGGER = LogUtils.getLogger();
 	public List<ItemStack> lastSlots;
@@ -28,7 +28,7 @@ public abstract class AbstractContainerMenu
 	protected List<ContainerListener> containerListeners;
 	private final Set<Player> unSynchedPlayers;
 
-	public AbstractContainerMenu()
+	public MenuAbstract()
 	{
 		lastSlots = new ArrayList<>();
 		slots = new ArrayList<>();
@@ -92,7 +92,7 @@ public abstract class AbstractContainerMenu
 	}
 
 	/**
-	 * @param container Inventory
+	 * @param container ContainerInventory
 	 * @param index integer index of slot in container
 	 * @return Slot for index in current container, null otherwise
 	 */
@@ -130,7 +130,7 @@ public abstract class AbstractContainerMenu
 			}
 		}
 		
-		Inventory inventory = player.inventory;
+		ContainerInventory inventory = player.inventory;
 
 		//Drop Item
 		if(action == InventoryAction.DROP_HELD_SINGLE || action == InventoryAction.DROP_HELD_STACK) {
@@ -472,8 +472,8 @@ public abstract class AbstractContainerMenu
 	public void handleItemMove(InventoryAction action, Slot slot, int target, Player player) {
 		ItemStack stackInSlot = slot.getItem();
 
-		if(slot instanceof ResultSlot) {
-			handleCrafting(action, (ResultSlot) slot, target, player);
+		if(slot instanceof SlotResult) {
+			handleCrafting(action, (SlotResult) slot, target, player);
 			return;
 		}
 
@@ -556,7 +556,7 @@ public abstract class AbstractContainerMenu
 	/**
 	 * Handle MOVE actions on crafting result slots
 	 */
-	public void handleCrafting(InventoryAction action, ResultSlot slot, int target, Player player) {
+	public void handleCrafting(InventoryAction action, SlotResult slot, int target, Player player) {
 		ItemStack itemToCraft = slot.getItem();
 
 		if(itemToCraft == null) {
@@ -759,7 +759,7 @@ public abstract class AbstractContainerMenu
 	}
 
 	public void onCraftGuiClosed(Player player) {
-		Inventory inventory = player.inventory;
+		ContainerInventory inventory = player.inventory;
 		if(inventory.getHeldItemStack() != null) {
 			ItemStack stack = inventory.getHeldItemStack();
 			inventory.setHeldItemStack(null);
@@ -776,7 +776,7 @@ public abstract class AbstractContainerMenu
 		if(stack == null || stack.stackSize <= 0) {
 			return;
 		}
-		Inventory inventory = player.inventory;
+		ContainerInventory inventory = player.inventory;
 		inventory.insertItem(stack, false);
 		if(stack.stackSize > 0) {
 			player.dropPlayerItem(stack);
@@ -822,7 +822,7 @@ public abstract class AbstractContainerMenu
 	{
 	}
 
-	public short backup(Inventory inventoryplayer)
+	public short backup(ContainerInventory inventoryplayer)
 	{
 		changeUid++;
 		return changeUid;
diff --git a/src/main/java/net/minecraft/core/player/inventory/menu/ActivatorMenu.java b/src/main/java/net/minecraft/core/player/inventory/menu/MenuActivator.java
similarity index 91%
rename from src/main/java/net/minecraft/core/player/inventory/menu/ActivatorMenu.java
rename to src/main/java/net/minecraft/core/player/inventory/menu/MenuActivator.java
index 1cac96c46..9a786aa01 100644
--- a/src/main/java/net/minecraft/core/player/inventory/menu/ActivatorMenu.java
+++ b/src/main/java/net/minecraft/core/player/inventory/menu/MenuActivator.java
@@ -1,7 +1,7 @@
 package net.minecraft.core.player.inventory.menu;
 
 import net.minecraft.core.InventoryAction;
-import net.minecraft.core.block.entity.ActivatorBlockEntity;
+import net.minecraft.core.block.entity.TileEntityActivator;
 import net.minecraft.core.crafting.ContainerListener;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.item.ItemStack;
@@ -10,11 +10,11 @@ import net.minecraft.core.player.inventory.slot.Slot;
 
 import java.util.List;
 
-public class ActivatorMenu extends AbstractContainerMenu {
+public class MenuActivator extends MenuAbstract {
 	public static final int ID_SELECTOR = 0;
 	public static final int ID_LOCKED_SLOTS = 1;
 
-	public ActivatorBlockEntity activator;
+	public TileEntityActivator activator;
 
 	private final int activatorSlotsStart;
 	private final int inventorySlotsStart;
@@ -23,9 +23,9 @@ public class ActivatorMenu extends AbstractContainerMenu {
 	private int selectorSlot;
 	private int lockedSlots;
 
-	public ActivatorMenu(Container container, ActivatorBlockEntity activator) {
+	public MenuActivator(Container container, TileEntityActivator activator) {
 		this.activator = activator;
-		for (int i = 0; i < ActivatorBlockEntity.CONTAINER_SIZE; i++) {
+		for (int i = 0; i < TileEntityActivator.CONTAINER_SIZE; i++) {
 			addSlot(new Slot(activator, i, 8 + i * 18, 35));
 		}
 
diff --git a/src/main/java/net/minecraft/core/player/inventory/menu/ContainerMenu.java b/src/main/java/net/minecraft/core/player/inventory/menu/MenuContainer.java
similarity index 87%
rename from src/main/java/net/minecraft/core/player/inventory/menu/ContainerMenu.java
rename to src/main/java/net/minecraft/core/player/inventory/menu/MenuContainer.java
index 5ed9aa4bf..eb231d31c 100644
--- a/src/main/java/net/minecraft/core/player/inventory/menu/ContainerMenu.java
+++ b/src/main/java/net/minecraft/core/player/inventory/menu/MenuContainer.java
@@ -7,12 +7,12 @@ import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.player.inventory.container.Container;
 import net.minecraft.core.player.inventory.slot.Slot;
 
-public class ContainerMenu extends AbstractContainerMenu {
+public class MenuContainer extends MenuAbstract {
 	
 	private Container container;
 	private int numberOfRows;
 	
-	public ContainerMenu(Container playerContainer, Container container) {
+	public MenuContainer(Container playerContainer, Container container) {
 		this.container = container;
 		numberOfRows = container.getContainerSize() / 9;
 		int i = (numberOfRows - 4) * 18;
@@ -52,7 +52,7 @@ public class ContainerMenu extends AbstractContainerMenu {
 		
 		if(action == InventoryAction.MOVE_ALL) {
 			if(slot.index >= chestSize && slot.index < chestSize + 27) {
-				// Main Inventory
+				// Main ContainerInventory
 				return getSlots(chestSize, 27, false);
 			}
 			if(slot.index >= chestSize + 27 && slot.index < chestSize + 36) {
@@ -61,7 +61,7 @@ public class ContainerMenu extends AbstractContainerMenu {
 			}
 		}else {
 			if(slot.index >= chestSize && slot.index < chestSize + 36) {
-				// Full Inventory
+				// Full ContainerInventory
 				return getSlots(chestSize, 36, false);
 			}
 		}
@@ -75,9 +75,9 @@ public class ContainerMenu extends AbstractContainerMenu {
 		
 		if(slot.index < chestSize) {
 			// Clicked chest
-			return getSlots(chestSize, 36, true); // Inventory
+			return getSlots(chestSize, 36, true); // ContainerInventory
 		}else {
-			// Clicked Inventory
+			// Clicked ContainerInventory
 			return getSlots  (0, chestSize, false); // Chest
 		}
 	}
diff --git a/src/main/java/net/minecraft/core/player/inventory/menu/CraftingMenu.java b/src/main/java/net/minecraft/core/player/inventory/menu/MenuCrafting.java
similarity index 82%
rename from src/main/java/net/minecraft/core/player/inventory/menu/CraftingMenu.java
rename to src/main/java/net/minecraft/core/player/inventory/menu/MenuCrafting.java
index e296a1fae..c95142e4e 100644
--- a/src/main/java/net/minecraft/core/player/inventory/menu/CraftingMenu.java
+++ b/src/main/java/net/minecraft/core/player/inventory/menu/MenuCrafting.java
@@ -11,33 +11,33 @@ import net.minecraft.core.data.registry.Registries;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.player.inventory.container.Container;
-import net.minecraft.core.player.inventory.container.CraftingContainer;
-import net.minecraft.core.player.inventory.container.Inventory;
-import net.minecraft.core.player.inventory.container.ResultContainer;
+import net.minecraft.core.player.inventory.container.ContainerCrafting;
+import net.minecraft.core.player.inventory.container.ContainerInventory;
+import net.minecraft.core.player.inventory.container.ContainerResult;
 import net.minecraft.core.player.inventory.slot.Slot;
-import net.minecraft.core.player.inventory.slot.ResultSlot;
+import net.minecraft.core.player.inventory.slot.SlotResult;
 import net.minecraft.core.world.World;
 
 import java.util.List;
 
-public class CraftingMenu extends AbstractContainerMenu
+public class MenuCrafting extends MenuAbstract
 {
-	public CraftingContainer craftSlots;
+	public ContainerCrafting craftSlots;
 	public Container resultSlots;
 	private World world;
 	private int x;
 	private int y;
 	private int z;
 
-    public CraftingMenu(Inventory inventory, World world, int x, int y, int z)
+    public MenuCrafting(ContainerInventory inventory, World world, int x, int y, int z)
     {
-        craftSlots = new CraftingContainer(this, 3, 3);
-        resultSlots = new ResultContainer();
+        craftSlots = new ContainerCrafting(this, 3, 3);
+        resultSlots = new ContainerResult();
         this.world = world;
         this.x = x;
         this.y = y;
         this.z = z;
-        addSlot(new ResultSlot(inventory.player, craftSlots, resultSlots, 0, 124, 35));
+        addSlot(new SlotResult(inventory.player, craftSlots, resultSlots, 0, 124, 35));
         for(int l = 0; l < 3; l++)
         {
             for(int k1 = 0; k1 < 3; k1++)
@@ -101,7 +101,7 @@ public class CraftingMenu extends AbstractContainerMenu
     /*
      *  0 Craft Result
      *  1 - 9 Crafting (9x)
-     *  10 - 36 Main Inventory (27x)
+     *  10 - 36 Main ContainerInventory (27x)
      *  37 - 45 Hotbar (9x)
      */
     
@@ -117,12 +117,12 @@ public class CraftingMenu extends AbstractContainerMenu
     	}
     	if(action == InventoryAction.MOVE_SIMILAR) {
     		if(slot.index >= 10 && slot.index <= 45) {
-    			// Full Inventory
+    			// Full ContainerInventory
     			return getSlots(10, 36, false);
     		}
     	}else {
     		if(slot.index >= 10 && slot.index <= 36) {
-    			// Main Inventory
+    			// Main ContainerInventory
     			return getSlots(10, 27, false);
     		}
     		if(slot.index >= 37 && slot.index <= 45) {
@@ -136,17 +136,17 @@ public class CraftingMenu extends AbstractContainerMenu
     @Override
     public List<Integer> getTargetSlots(InventoryAction action, Slot slot, int target, Player player) {
     	if(slot.index >= 10 && slot.index <= 45) {
-    		// Full Inventory
+    		// Full ContainerInventory
     		if(target == 1) {
     			return getSlots(1, 9, false); // To Crafting Grid
     		}
     		if(slot.index >= 10 && slot.index <= 36) {
-    			// Main Inventory
+    			// Main ContainerInventory
     			return getSlots(37, 9, false); // To Hotbar
     		}
     		if(slot.index >= 37 && slot.index <= 45) {
     			// Hotbar
-    			return getSlots(10, 27, false); // To Main Inventory
+    			return getSlots(10, 27, false); // To Main ContainerInventory
     		}
     	}else {
     		// Crafting grid or result
diff --git a/src/main/java/net/minecraft/core/player/inventory/menu/FlagMenu.java b/src/main/java/net/minecraft/core/player/inventory/menu/MenuFlag.java
similarity index 73%
rename from src/main/java/net/minecraft/core/player/inventory/menu/FlagMenu.java
rename to src/main/java/net/minecraft/core/player/inventory/menu/MenuFlag.java
index c30009e30..bdcd6609a 100644
--- a/src/main/java/net/minecraft/core/player/inventory/menu/FlagMenu.java
+++ b/src/main/java/net/minecraft/core/player/inventory/menu/MenuFlag.java
@@ -3,22 +3,22 @@ package net.minecraft.core.player.inventory.menu;
 import java.util.List;
 
 import net.minecraft.core.InventoryAction;
-import net.minecraft.core.block.entity.FlagBlockEntity;
+import net.minecraft.core.block.entity.TileEntityFlag;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.player.inventory.container.Container;
 import net.minecraft.core.player.inventory.slot.Slot;
-import net.minecraft.core.player.inventory.slot.DyeSlot;
+import net.minecraft.core.player.inventory.slot.SlotDye;
 
-public class FlagMenu extends AbstractContainerMenu {
-	public FlagBlockEntity flag;
+public class MenuFlag extends MenuAbstract {
+	public TileEntityFlag flag;
 
-	public FlagMenu(Container inv, FlagBlockEntity flag) {
+	public MenuFlag(Container inv, TileEntityFlag flag) {
 		this.flag = flag;
 
 		// Dye slots
-		addSlot(new DyeSlot(flag, 36, 129, 10));
-		addSlot(new DyeSlot(flag, 37, 129, 32));
-		addSlot(new DyeSlot(flag, 38, 129, 54));
+		addSlot(new SlotDye(flag, 36, 129, 10));
+		addSlot(new SlotDye(flag, 37, 129, 32));
+		addSlot(new SlotDye(flag, 38, 129, 54));
 
 		// Player inv slots
 		for (int y = 0; y < 3; y++) {
@@ -35,7 +35,7 @@ public class FlagMenu extends AbstractContainerMenu {
 
 	/*
 	 *   0 -   2 Dye Slots
-	 *   3 -  29 Inventory
+	 *   3 -  29 ContainerInventory
 	 *  30 -  38 Hotbar
 	 */
 	@Override
@@ -45,12 +45,12 @@ public class FlagMenu extends AbstractContainerMenu {
 			return getSlots(0, 3, false);
 		}
 		if(action == InventoryAction.MOVE_SIMILAR) {
-			// Full Inventory
+			// Full ContainerInventory
 			return getSlots(3, 36, false);
 		}
 		if(action == InventoryAction.MOVE_ALL) {
 			if(slot.index < 27) {
-				// Main Inventory
+				// Main ContainerInventory
 				return getSlots(3, 27, false);
 			}else {
 				// Hotbar
@@ -64,7 +64,7 @@ public class FlagMenu extends AbstractContainerMenu {
 	public List<Integer> getTargetSlots(InventoryAction action, Slot slot, int target, Player player) {
 		if(slot.index >= 0 && slot.index <= 2) {
 			// Dye Slots
-			return getSlots(3, 36, false); // Into Inventory
+			return getSlots(3, 36, false); // Into ContainerInventory
 		}
 		return getSlots(0, 3, false); // Dye Slots
 	}
diff --git a/src/main/java/net/minecraft/core/player/inventory/menu/FurnaceMenu.java b/src/main/java/net/minecraft/core/player/inventory/menu/MenuFurnace.java
similarity index 85%
rename from src/main/java/net/minecraft/core/player/inventory/menu/FurnaceMenu.java
rename to src/main/java/net/minecraft/core/player/inventory/menu/MenuFurnace.java
index 2c3a5c73b..f665658e9 100644
--- a/src/main/java/net/minecraft/core/player/inventory/menu/FurnaceMenu.java
+++ b/src/main/java/net/minecraft/core/player/inventory/menu/MenuFurnace.java
@@ -3,26 +3,26 @@ package net.minecraft.core.player.inventory.menu;
 import java.util.List;
 
 import net.minecraft.core.InventoryAction;
-import net.minecraft.core.block.entity.FurnaceBlockEntity;
+import net.minecraft.core.block.entity.TileEntityFurnace;
 import net.minecraft.core.crafting.ContainerListener;
 import net.minecraft.core.entity.player.Player;
-import net.minecraft.core.player.inventory.container.Inventory;
+import net.minecraft.core.player.inventory.container.ContainerInventory;
 import net.minecraft.core.player.inventory.slot.Slot;
-import net.minecraft.core.player.inventory.slot.FurnaceSlot;
+import net.minecraft.core.player.inventory.slot.SlotFurnace;
 
-public class FurnaceMenu extends AbstractContainerMenu {
+public class MenuFurnace extends MenuAbstract {
 	public static final int ID_CURRENT_COOK_TIME = 0;
 	public static final int ID_CURRENT_BURN_TIME = 1;
 	public static final int ID_MAX_COOK_TIME = 2;
 	public static final int ID_MAX_BURN_TIME = 3;
 
-	public FurnaceBlockEntity furnace;
+	public TileEntityFurnace furnace;
 	private int currentCookTime;
 	private int currentBurnTime;
 	private int itemBurnTime;
 	private int itemCookTime;
 
-	public FurnaceMenu(Inventory inventory, FurnaceBlockEntity blockEntity) {
+	public MenuFurnace(ContainerInventory inventory, TileEntityFurnace blockEntity) {
 		currentCookTime = 0;
 		currentBurnTime = 0;
 		itemCookTime = 0;
@@ -30,7 +30,7 @@ public class FurnaceMenu extends AbstractContainerMenu {
 		furnace = blockEntity;
 		addSlot(new Slot(blockEntity, 0, 56, 17));
 		addSlot(new Slot(blockEntity, 1, 56, 53));
-		addSlot(new FurnaceSlot(inventory.player, blockEntity, 2, 116, 35));
+		addSlot(new SlotFurnace(inventory.player, blockEntity, 2, 116, 35));
 		for (int i = 0; i < 3; i++) {
 			for (int k = 0; k < 9; k++) {
 				addSlot(new Slot(inventory, k + i * 9 + 9, 8 + k * 18, 84 + i * 18));
@@ -95,7 +95,7 @@ public class FurnaceMenu extends AbstractContainerMenu {
 	 *  0 Input
 	 *  1 Fuel
 	 *  2 Output
-	 *  3 - 29 Main Inventory (27x)
+	 *  3 - 29 Main ContainerInventory (27x)
 	 * 30 - 38 Hotbar (9x)
 	 */
 
@@ -105,7 +105,7 @@ public class FurnaceMenu extends AbstractContainerMenu {
 
 		if(action == InventoryAction.MOVE_ALL) {
 			if(slot.index >= 3 && slot.index <= 30) {
-				// Main Inventory
+				// Main ContainerInventory
 				return getSlots(3, 27, false);
 			}
 			if(slot.index >= 30 && slot.index <= 38) {
@@ -114,7 +114,7 @@ public class FurnaceMenu extends AbstractContainerMenu {
 			}
 		}
 		if(slot.index >= 3 && slot.index <= 38) {
-			// Full Inventory
+			// Full ContainerInventory
 			return getSlots(3, 36, false);
 		}
 		return null;
@@ -123,7 +123,7 @@ public class FurnaceMenu extends AbstractContainerMenu {
 	@Override
 	public List<Integer> getTargetSlots(InventoryAction action, Slot slot, int target, Player player) {
 		if(slot.index >= 3 && slot.index <= 39) {
-			// Full Inventory
+			// Full ContainerInventory
 			if(action != InventoryAction.MOVE_ALL) {
 				if(target == 1) {
 					return getSlots(0, 1, false); // Into Ingredient Slot
@@ -133,12 +133,12 @@ public class FurnaceMenu extends AbstractContainerMenu {
 				}
 			}
 			if(slot.index >= 3 && slot.index <= 29) {
-				// Main Inventory
+				// Main ContainerInventory
 				return getSlots(30, 9, false); // Into Hotbar
 			}
 			if(slot.index >= 31 && slot.index <= 38) {
 				// Hotbar
-				return getSlots(3, 27, false); // Into Main Inventory
+				return getSlots(3, 27, false); // Into Main ContainerInventory
 			}
 		}
 		if(slot.index >= 0 && slot.index <= 2) {
diff --git a/src/main/java/net/minecraft/core/player/inventory/menu/GuidebookMenu.java b/src/main/java/net/minecraft/core/player/inventory/menu/MenuGuidebook.java
similarity index 92%
rename from src/main/java/net/minecraft/core/player/inventory/menu/GuidebookMenu.java
rename to src/main/java/net/minecraft/core/player/inventory/menu/MenuGuidebook.java
index e7132e011..4f22ccf54 100644
--- a/src/main/java/net/minecraft/core/player/inventory/menu/GuidebookMenu.java
+++ b/src/main/java/net/minecraft/core/player/inventory/menu/MenuGuidebook.java
@@ -7,7 +7,7 @@ import net.minecraft.core.player.inventory.slot.Slot;
 
 import java.util.List;
 
-public class GuidebookMenu extends AbstractContainerMenu
+public class MenuGuidebook extends MenuAbstract
 {
 
 	@Override
diff --git a/src/main/java/net/minecraft/core/player/inventory/menu/InventoryMenu.java b/src/main/java/net/minecraft/core/player/inventory/menu/MenuInventory.java
similarity index 73%
rename from src/main/java/net/minecraft/core/player/inventory/menu/InventoryMenu.java
rename to src/main/java/net/minecraft/core/player/inventory/menu/MenuInventory.java
index e43e805d9..320838c4b 100644
--- a/src/main/java/net/minecraft/core/player/inventory/menu/InventoryMenu.java
+++ b/src/main/java/net/minecraft/core/player/inventory/menu/MenuInventory.java
@@ -6,32 +6,32 @@ import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.item.IArmorItem;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.player.inventory.container.Container;
-import net.minecraft.core.player.inventory.container.CraftingContainer;
-import net.minecraft.core.player.inventory.container.Inventory;
-import net.minecraft.core.player.inventory.container.ResultContainer;
+import net.minecraft.core.player.inventory.container.ContainerCrafting;
+import net.minecraft.core.player.inventory.container.ContainerInventory;
+import net.minecraft.core.player.inventory.container.ContainerResult;
 import net.minecraft.core.player.inventory.slot.Slot;
-import net.minecraft.core.player.inventory.slot.ArmorSlot;
-import net.minecraft.core.player.inventory.slot.ResultSlot;
+import net.minecraft.core.player.inventory.slot.SlotArmor;
+import net.minecraft.core.player.inventory.slot.SlotResult;
 
 import java.util.List;
 
-public class InventoryMenu extends AbstractContainerMenu {
+public class MenuInventory extends MenuAbstract {
 
-	public CraftingContainer craftSlots;
+	public ContainerCrafting craftSlots;
 	public Container resultSlots;
 	public boolean active;
-	public Inventory inventory;
+	public ContainerInventory inventory;
 
-	public InventoryMenu(Inventory inventory) {
+	public MenuInventory(ContainerInventory inventory) {
 		this(inventory, true);
 	}
 
-	public InventoryMenu(Inventory inventory, boolean active) {
-		craftSlots = new CraftingContainer(this, 2, 2);
-		resultSlots = new ResultContainer();
+	public MenuInventory(ContainerInventory inventory, boolean active) {
+		craftSlots = new ContainerCrafting(this, 2, 2);
+		resultSlots = new ContainerResult();
 		this.active = active;
 		this.inventory = inventory;
-		addSlot(new ResultSlot(inventory.player, craftSlots, resultSlots, 0, 144, 36));
+		addSlot(new SlotResult(inventory.player, craftSlots, resultSlots, 0, 144, 36));
 		
 		for (int i = 0; i < 2; i++) {
 			for (int j = 0; j < 2; j++) {
@@ -41,7 +41,7 @@ public class InventoryMenu extends AbstractContainerMenu {
 		
 		for (int i = 0; i < 4; i++) {
 			int armorType = IArmorItem.PIECE_HEAD - i;
-			addSlot(new ArmorSlot(this, inventory, inventory.getContainerSize() - 1 - i, 8, 8 + i * 18, armorType));
+			addSlot(new SlotArmor(this, inventory, inventory.getContainerSize() - 1 - i, 8, 8 + i * 18, armorType));
 		}
 		
 		for (int i = 0; i < 3; i++) {
@@ -88,7 +88,7 @@ public class InventoryMenu extends AbstractContainerMenu {
 	 *  0 Craft Result
 	 *  1 -  4 Crafting (4x)
 	 *  5 -  8 Armor (4x)
-	 *  9 - 35 Main Inventory (27x)
+	 *  9 - 35 Main ContainerInventory (27x)
 	 * 36 - 44 Hotbar (9x)
 	 */
 
@@ -108,12 +108,12 @@ public class InventoryMenu extends AbstractContainerMenu {
 		}
 		if(action == InventoryAction.MOVE_SIMILAR) {
 			if(slot.index >= 9 && slot.index <= 44) {
-				// Full Inventory
+				// Full ContainerInventory
 				return getSlots(9, 36, false);
 			}	
 		}else {
 			if(slot.index >= 9 && slot.index <= 35) {
-				// Main Inventory
+				// Main ContainerInventory
 				return getSlots(9, 27, false);
 			}
 			if(slot.index >= 36 && slot.index <= 44) {
@@ -127,7 +127,7 @@ public class InventoryMenu extends AbstractContainerMenu {
 	@Override
 	public List<Integer> getTargetSlots(InventoryAction action, Slot slot, int target, Player player) {
 		if(slot.index >= 9 && slot.index <= 44) {
-			// Full Inventory
+			// Full ContainerInventory
 			if(target == 1) {
 				return getSlots(1, 4, false); // Crafting
 			}
@@ -136,19 +136,19 @@ public class InventoryMenu extends AbstractContainerMenu {
 			}
 			
 			if(slot.index < 36) {
-				// Main Inventory
+				// Main ContainerInventory
 				return getSlots(36, 9, false); // Hotbar
 			}else {
 				// Hotbar
-				return getSlots(9, 27, false); // Main Inventory
+				return getSlots(9, 27, false); // Main ContainerInventory
 			}
 		}else {
 			if(slot.index == 0) {
 				// Crafting Result
-				return getSlots(9, 36, true); // Full Inventory, Last First
+				return getSlots(9, 36, true); // Full ContainerInventory, Last First
 			}else {
 				// Crafting Grid and Armor
-				return getSlots(9, 36, false); // Full Inventory
+				return getSlots(9, 36, false); // Full ContainerInventory
 			}
 			
 		}
diff --git a/src/main/java/net/minecraft/core/player/inventory/menu/CreativeInventoryMenu.java b/src/main/java/net/minecraft/core/player/inventory/menu/MenuInventoryCreative.java
similarity index 88%
rename from src/main/java/net/minecraft/core/player/inventory/menu/CreativeInventoryMenu.java
rename to src/main/java/net/minecraft/core/player/inventory/menu/MenuInventoryCreative.java
index b07072708..0aa4b84ee 100644
--- a/src/main/java/net/minecraft/core/player/inventory/menu/CreativeInventoryMenu.java
+++ b/src/main/java/net/minecraft/core/player/inventory/menu/MenuInventoryCreative.java
@@ -8,13 +8,13 @@ import net.minecraft.core.item.Items;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.block.Block;
 import net.minecraft.core.block.Blocks;
-import net.minecraft.core.player.inventory.container.Inventory;
-import net.minecraft.core.player.inventory.slot.CreativeSlot;
+import net.minecraft.core.player.inventory.container.ContainerInventory;
+import net.minecraft.core.player.inventory.slot.SlotCreative;
 
 import java.util.ArrayList;
 import java.util.List;
 
-public class CreativeInventoryMenu extends InventoryMenu
+public class MenuInventoryCreative extends MenuInventory
 {
 	public int page = 0;
 	public int maxPage;
@@ -22,12 +22,12 @@ public class CreativeInventoryMenu extends InventoryMenu
 	protected List<ItemStack> searchedItems = new ArrayList<ItemStack>();
 	public String searchText = "";
 	
-	public CreativeInventoryMenu(Inventory inventoryplayer)
+	public MenuInventoryCreative(ContainerInventory inventoryplayer)
 	{
 		this(inventoryplayer, true);
 	}
 	
-	public CreativeInventoryMenu(Inventory inventoryplayer, boolean isNotClientSide)
+	public MenuInventoryCreative(ContainerInventory inventoryplayer, boolean isNotClientSide)
 	{
 		super(inventoryplayer, isNotClientSide);
 		
@@ -39,7 +39,7 @@ public class CreativeInventoryMenu extends InventoryMenu
 			int x = i % 6;
 			int y = i / 6;
 			
-			addSlot(new CreativeSlot(creativeSlotsStart + i, 184 + (x * 18), 30 + (y * 18), creativeItems.get(i)));
+			addSlot(new SlotCreative(creativeSlotsStart + i, 184 + (x * 18), 30 + (y * 18), creativeItems.get(i)));
 		}
 		
 		searchPage("");
@@ -103,11 +103,11 @@ public class CreativeInventoryMenu extends InventoryMenu
 		{
 			if (i + (page * 36) >= searchedItems.size())
 			{
-				((CreativeSlot)this.slots.get(creativeSlotsStart + i)).item = null;
+				((SlotCreative)this.slots.get(creativeSlotsStart + i)).item = null;
 			}
 			else
 			{
-				((CreativeSlot)this.slots.get(creativeSlotsStart + i)).item = searchedItems.get(i + (page * 36));
+				((SlotCreative)this.slots.get(creativeSlotsStart + i)).item = searchedItems.get(i + (page * 36));
 			}			
 		}
 		
diff --git a/src/main/java/net/minecraft/core/player/inventory/menu/TrapMenu.java b/src/main/java/net/minecraft/core/player/inventory/menu/MenuTrap.java
similarity index 90%
rename from src/main/java/net/minecraft/core/player/inventory/menu/TrapMenu.java
rename to src/main/java/net/minecraft/core/player/inventory/menu/MenuTrap.java
index ded9ce91e..ecb705d86 100644
--- a/src/main/java/net/minecraft/core/player/inventory/menu/TrapMenu.java
+++ b/src/main/java/net/minecraft/core/player/inventory/menu/MenuTrap.java
@@ -3,20 +3,20 @@ package net.minecraft.core.player.inventory.menu;
 import java.util.List;
 
 import net.minecraft.core.InventoryAction;
-import net.minecraft.core.block.entity.DispenserBlockEntity;
+import net.minecraft.core.block.entity.TileEntityDispenser;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.player.inventory.container.Container;
 import net.minecraft.core.player.inventory.slot.Slot;
 
-public class TrapMenu extends AbstractContainerMenu {
+public class MenuTrap extends MenuAbstract {
 
-	public DispenserBlockEntity trap;
+	public TileEntityDispenser trap;
 	
 	private int dispenserSlotsStart;
 	private int inventorySlotsStart;
 	private int hotbarSlotsStart;
 
-	public TrapMenu(Container container, DispenserBlockEntity trap) {
+	public MenuTrap(Container container, TileEntityDispenser trap) {
 		this.trap = trap;
 		for (int i = 0; i < 3; i++) {
 			for (int l = 0; l < 3; l++) {
diff --git a/src/main/java/net/minecraft/core/player/inventory/menu/TrommelMenu.java b/src/main/java/net/minecraft/core/player/inventory/menu/MenuTrommel.java
similarity index 85%
rename from src/main/java/net/minecraft/core/player/inventory/menu/TrommelMenu.java
rename to src/main/java/net/minecraft/core/player/inventory/menu/MenuTrommel.java
index 843f95aa9..89fd3d854 100644
--- a/src/main/java/net/minecraft/core/player/inventory/menu/TrommelMenu.java
+++ b/src/main/java/net/minecraft/core/player/inventory/menu/MenuTrommel.java
@@ -3,21 +3,21 @@ package net.minecraft.core.player.inventory.menu;
 import java.util.List;
 
 import net.minecraft.core.InventoryAction;
-import net.minecraft.core.block.entity.TrommelBlockEntity;
+import net.minecraft.core.block.entity.TileEntityTrommel;
 
 import net.minecraft.core.crafting.ContainerListener;
 import net.minecraft.core.entity.player.Player;
-import net.minecraft.core.player.inventory.container.Inventory;
+import net.minecraft.core.player.inventory.container.ContainerInventory;
 import net.minecraft.core.player.inventory.slot.Slot;
 
-public class TrommelMenu extends AbstractContainerMenu {
+public class MenuTrommel extends MenuAbstract {
 
-	private TrommelBlockEntity trommel;
+	private TileEntityTrommel trommel;
 	private int cookTime = 0;
 	private int burnTime = 0;
 	private int itemBurnTime = 0;
 
-	public TrommelMenu(Inventory inventoryplayer, TrommelBlockEntity tileEntityTrommel) {
+	public MenuTrommel(ContainerInventory inventoryplayer, TileEntityTrommel tileEntityTrommel) {
 		trommel = tileEntityTrommel;
 		
 		// Item Slots
@@ -81,7 +81,7 @@ public class TrommelMenu extends AbstractContainerMenu {
 	/*
 	 *  0 - 3 Item Slots
 	 *  4 Fuel Slot
-	 *  5 - 31 Inventory
+	 *  5 - 31 ContainerInventory
 	 * 32 - 40 Hotbar
 	 */
 
@@ -95,7 +95,7 @@ public class TrommelMenu extends AbstractContainerMenu {
 		}
 		if(action == InventoryAction.MOVE_ALL) {
 			if(slot.index >= 5 && slot.index <= 31) {
-				// Main Inventory
+				// Main ContainerInventory
 				return getSlots(5, 27, false);
 			}
 			if(slot.index >= 32 && slot.index <= 40) {
@@ -105,7 +105,7 @@ public class TrommelMenu extends AbstractContainerMenu {
 		}
 		if(action == InventoryAction.MOVE_SIMILAR) {
 			if(slot.index >= 5 && slot.index <= 40) {
-				// Full Inventory
+				// Full ContainerInventory
 				return getSlots(5, 36, false);
 			}
 		}
@@ -116,7 +116,7 @@ public class TrommelMenu extends AbstractContainerMenu {
 	public List<Integer> getTargetSlots(InventoryAction action, Slot slot, int target, Player player) {
 		if(slot.index >= 0 && slot.index <= 4) {
 			// Item and Fuel Slots
-			return getSlots(5, 36, false); // Into Inventory
+			return getSlots(5, 36, false); // Into ContainerInventory
 		}
 		if(slot.index >= 5 && slot.index <= 40) {
 			if(target == 1) {
@@ -127,12 +127,12 @@ public class TrommelMenu extends AbstractContainerMenu {
 			}
 			
 			if(slot.index >= 5 && slot.index <= 31) {
-				// Main Inventory
+				// Main ContainerInventory
 				return getSlots(32, 9, false); // Into hotbar
 			}
 			if(slot.index >= 32 && slot.index <= 40) {
 				// Hotbar
-				return getSlots(5, 27, false); // Into Inventory
+				return getSlots(5, 27, false); // Into ContainerInventory
 			}
 		}
 		return null;
diff --git a/src/main/java/net/minecraft/core/player/inventory/slot/Slot.java b/src/main/java/net/minecraft/core/player/inventory/slot/Slot.java
index 64d5110c2..a82c5edde 100644
--- a/src/main/java/net/minecraft/core/player/inventory/slot/Slot.java
+++ b/src/main/java/net/minecraft/core/player/inventory/slot/Slot.java
@@ -6,7 +6,7 @@ package net.minecraft.core.player.inventory.slot;
 import net.minecraft.core.achievement.stat.StatList;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.item.ItemStack;
-import net.minecraft.core.player.inventory.container.Inventory;
+import net.minecraft.core.player.inventory.container.ContainerInventory;
 import net.minecraft.core.player.inventory.container.Container;
 import org.jetbrains.annotations.Nullable;
 
@@ -89,9 +89,9 @@ public class Slot
 		container.setItem(slot, itemstack);
 		setChanged();
 
-		if (container instanceof Inventory)
+		if (container instanceof ContainerInventory)
 		{
-			final Inventory inventory = (Inventory) this.container;
+			final ContainerInventory inventory = (ContainerInventory) this.container;
 
 			if(itemstack != null)
 				inventory.player.addStat(itemstack.getItem().getStat(StatList.STAT_PICKED_UP), 1);
diff --git a/src/main/java/net/minecraft/core/player/inventory/slot/ArmorSlot.java b/src/main/java/net/minecraft/core/player/inventory/slot/SlotArmor.java
similarity index 84%
rename from src/main/java/net/minecraft/core/player/inventory/slot/ArmorSlot.java
rename to src/main/java/net/minecraft/core/player/inventory/slot/SlotArmor.java
index 727379d12..140076801 100644
--- a/src/main/java/net/minecraft/core/player/inventory/slot/ArmorSlot.java
+++ b/src/main/java/net/minecraft/core/player/inventory/slot/SlotArmor.java
@@ -6,16 +6,15 @@ import net.minecraft.core.item.IArmorItem;
 import net.minecraft.core.item.Item;
 import net.minecraft.core.item.Items;
 import net.minecraft.core.item.ItemStack;
-import net.minecraft.core.item.block.BlockItem;
 import net.minecraft.core.item.material.ArmorMaterial;
-import net.minecraft.core.player.inventory.container.Inventory;
-import net.minecraft.core.player.inventory.menu.InventoryMenu;
+import net.minecraft.core.player.inventory.container.ContainerInventory;
+import net.minecraft.core.player.inventory.menu.MenuInventory;
 import net.minecraft.core.player.inventory.container.Container;
 
 import java.util.HashSet;
 import java.util.Set;
 
-public class ArmorSlot extends Slot
+public class SlotArmor extends Slot
 {
     public static String[] armorOutlines = new String[]{
         "minecraft:item/armor_boots_outline",
@@ -25,9 +24,9 @@ public class ArmorSlot extends Slot
     };
 
     final int armorType;
-    final InventoryMenu menu;
+    final MenuInventory menu;
 
-    public ArmorSlot(InventoryMenu menu, Container container, int index, int x, int y, int armorType)
+    public SlotArmor(MenuInventory menu, Container container, int index, int x, int y, int armorType)
     {
         super(container, index, x, y);
         this.menu = menu;
@@ -61,7 +60,7 @@ public class ArmorSlot extends Slot
         
         for (int i = 0; i < menu.slots.size(); i++)
         {
-        	if (menu.slots.get(i) instanceof ArmorSlot)
+        	if (menu.slots.get(i) instanceof SlotArmor)
         	{
         		ItemStack stack = menu.slots.get(i).getItem();
         		if (stack != null && (stack.itemID == Items.ARMOR_BOOTS_CHAINMAIL.id || stack.itemID == Items.ARMOR_HELMET_CHAINMAIL.id || stack.itemID == Items.ARMOR_CHESTPLATE_CHAINMAIL.id || stack.itemID == Items.ARMOR_LEGGINGS_CHAINMAIL.id))
@@ -85,8 +84,8 @@ public class ArmorSlot extends Slot
             menu.inventory.player.triggerAchievement(Achievements.ALL_ARMOR_TYPES);
         }
         
-        if (getItem() != null && container instanceof Inventory) {
-            Player player = ((Inventory) container).player;
+        if (getItem() != null && container instanceof ContainerInventory) {
+            Player player = ((ContainerInventory) container).player;
             player.world.playSoundAtEntity(player, player, "random.equip", 2f, 1f);
         }
     }
diff --git a/src/main/java/net/minecraft/core/player/inventory/slot/CreativeSlot.java b/src/main/java/net/minecraft/core/player/inventory/slot/SlotCreative.java
similarity index 90%
rename from src/main/java/net/minecraft/core/player/inventory/slot/CreativeSlot.java
rename to src/main/java/net/minecraft/core/player/inventory/slot/SlotCreative.java
index 089368bc7..2e089d1c0 100644
--- a/src/main/java/net/minecraft/core/player/inventory/slot/CreativeSlot.java
+++ b/src/main/java/net/minecraft/core/player/inventory/slot/SlotCreative.java
@@ -2,11 +2,11 @@ package net.minecraft.core.player.inventory.slot;
 
 import net.minecraft.core.item.ItemStack;
 
-public class CreativeSlot extends Slot
+public class SlotCreative extends Slot
 {
 	public ItemStack item;
 
-	public CreativeSlot(final int index, final int x, final int y, final ItemStack item)
+	public SlotCreative(final int index, final int x, final int y, final ItemStack item)
 	{
 		super(null, index, x, y);
 		this.item = item;
diff --git a/src/main/java/net/minecraft/core/player/inventory/slot/DyeSlot.java b/src/main/java/net/minecraft/core/player/inventory/slot/SlotDye.java
similarity index 83%
rename from src/main/java/net/minecraft/core/player/inventory/slot/DyeSlot.java
rename to src/main/java/net/minecraft/core/player/inventory/slot/SlotDye.java
index 141f358e9..d3a1ff49c 100644
--- a/src/main/java/net/minecraft/core/player/inventory/slot/DyeSlot.java
+++ b/src/main/java/net/minecraft/core/player/inventory/slot/SlotDye.java
@@ -4,9 +4,9 @@ import net.minecraft.core.item.Items;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.player.inventory.container.Container;
 
-public class DyeSlot extends Slot {
+public class SlotDye extends Slot {
 
-	public DyeSlot(final Container inventory, final int id, final int x, final int y) {
+	public SlotDye(final Container inventory, final int id, final int x, final int y) {
 		super(inventory, id, x, y);
 	}
 
diff --git a/src/main/java/net/minecraft/core/player/inventory/slot/FurnaceSlot.java b/src/main/java/net/minecraft/core/player/inventory/slot/SlotFurnace.java
similarity index 92%
rename from src/main/java/net/minecraft/core/player/inventory/slot/FurnaceSlot.java
rename to src/main/java/net/minecraft/core/player/inventory/slot/SlotFurnace.java
index 9374f1648..78be145f5 100644
--- a/src/main/java/net/minecraft/core/player/inventory/slot/FurnaceSlot.java
+++ b/src/main/java/net/minecraft/core/player/inventory/slot/SlotFurnace.java
@@ -11,10 +11,10 @@ import net.minecraft.core.item.Items;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.player.inventory.container.Container;
 
-public class FurnaceSlot extends Slot
+public class SlotFurnace extends Slot
 {
 
-    public FurnaceSlot(Player player, Container container, int index, int x, int y)
+    public SlotFurnace(Player player, Container container, int index, int x, int y)
     {
         super(container, index, x, y);
         thePlayer = player;
diff --git a/src/main/java/net/minecraft/core/player/inventory/slot/ResultSlot.java b/src/main/java/net/minecraft/core/player/inventory/slot/SlotResult.java
similarity index 79%
rename from src/main/java/net/minecraft/core/player/inventory/slot/ResultSlot.java
rename to src/main/java/net/minecraft/core/player/inventory/slot/SlotResult.java
index b9700428f..7ea7d9dea 100644
--- a/src/main/java/net/minecraft/core/player/inventory/slot/ResultSlot.java
+++ b/src/main/java/net/minecraft/core/player/inventory/slot/SlotResult.java
@@ -12,18 +12,18 @@ import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.item.Item;
 import net.minecraft.core.item.Items;
 import net.minecraft.core.item.ItemStack;
-import net.minecraft.core.item.tool.HoeToolItem;
-import net.minecraft.core.item.tool.PickaxeToolItem;
-import net.minecraft.core.item.tool.SwordToolItem;
+import net.minecraft.core.item.tool.ItemToolHoe;
+import net.minecraft.core.item.tool.ItemToolPickaxe;
+import net.minecraft.core.item.tool.ItemToolSword;
 import net.minecraft.core.player.inventory.container.Container;
-import net.minecraft.core.player.inventory.container.CraftingContainer;
+import net.minecraft.core.player.inventory.container.ContainerCrafting;
 
-public class ResultSlot extends Slot
+public class SlotResult extends Slot
 {
 	private final Container craftSlots;
 	private Player thePlayer;
 
-    public ResultSlot(Player player, Container craftSlots, Container container, int index, int x, int y)
+    public SlotResult(Player player, Container craftSlots, Container container, int index, int x, int y)
     {
         super(container, index, x, y);
         thePlayer = player;
@@ -49,10 +49,10 @@ public class ResultSlot extends Slot
 		if(item.id == Items.BUCKET_ICECREAM.id) thePlayer.addStat(Achievements.CRAFT_ICECREAM, 1);
 		if(item.id == Items.FOOD_PUMPKIN_PIE.id) thePlayer.addStat(Achievements.CRAFT_PUMPKIN_PIE, 1);
 		if(item.id == Items.HANDCANNON_UNLOADED.id) thePlayer.addStat(Achievements.CRAFT_HANDCANNON, 1);
-		if(item instanceof HoeToolItem) thePlayer.addStat(Achievements.BUILD_HOE, 1);
-		if(item instanceof SwordToolItem) thePlayer.addStat(Achievements.BUILD_SWORD, 1);
-		if(item instanceof PickaxeToolItem) {
-			PickaxeToolItem itemToolPickaxe = (PickaxeToolItem) item;
+		if(item instanceof ItemToolHoe) thePlayer.addStat(Achievements.BUILD_HOE, 1);
+		if(item instanceof ItemToolSword) thePlayer.addStat(Achievements.BUILD_SWORD, 1);
+		if(item instanceof ItemToolPickaxe) {
+			ItemToolPickaxe itemToolPickaxe = (ItemToolPickaxe) item;
 
 			if(itemToolPickaxe.getMaterial().getMiningLevel() > 0) {
 				thePlayer.addStat(Achievements.BUILD_BETTER_PICKAXE, 1);
@@ -67,7 +67,7 @@ public class ResultSlot extends Slot
 			thePlayer.addStat(Achievements.REPAIR_ARMOR, 1);
 		}
 
-		Registries.RECIPES.onCraftResult((CraftingContainer) craftSlots);
+		Registries.RECIPES.onCraftResult((ContainerCrafting) craftSlots);
 	}
     
     @Override
diff --git a/src/main/java/net/minecraft/core/util/helper/GetMonsterSkinUrlThread.java b/src/main/java/net/minecraft/core/util/helper/GetMonsterSkinUrlThread.java
index 2ba9d9fba..570c875a8 100644
--- a/src/main/java/net/minecraft/core/util/helper/GetMonsterSkinUrlThread.java
+++ b/src/main/java/net/minecraft/core/util/helper/GetMonsterSkinUrlThread.java
@@ -5,7 +5,7 @@ import com.b100.json.element.JsonArray;
 import com.b100.json.element.JsonObject;
 import com.b100.utils.StringUtils;
 import com.mojang.logging.LogUtils;
-import net.minecraft.core.entity.monster.HumanMob;
+import net.minecraft.core.entity.monster.MobHuman;
 import org.slf4j.Logger;
 
 import java.util.Base64;
@@ -20,10 +20,10 @@ public class GetMonsterSkinUrlThread extends Thread{
 
 	private static final JsonParser jsonParser = new JsonParser();
 
-	private HumanMob monster;
+	private MobHuman monster;
 	private UUID uuid;
 
-	public GetMonsterSkinUrlThread(HumanMob monster) {
+	public GetMonsterSkinUrlThread(MobHuman monster) {
 		this.monster = monster;
 		
 		setDaemon(true);
diff --git a/src/main/java/net/minecraft/core/world/BlocksContainer.java b/src/main/java/net/minecraft/core/world/BlocksContainer.java
index be3934c8a..1ac98faea 100644
--- a/src/main/java/net/minecraft/core/world/BlocksContainer.java
+++ b/src/main/java/net/minecraft/core/world/BlocksContainer.java
@@ -1,8 +1,7 @@
 package net.minecraft.core.world;
 
-import net.minecraft.client.render.LightmapHelper;
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.entity.Entity;
 import net.minecraft.core.enums.LightLayer;
@@ -28,7 +27,7 @@ public class BlocksContainer implements WorldSource {
     }
 
 
-    public void setBlock(int x, int y, int z, int blockID, int blockMeta, BlockEntity entity) {
+    public void setBlock(int x, int y, int z, int blockID, int blockMeta, TileEntity entity) {
         blockEntryMap.put(new ChunkCoordinates(x, y, z), new BlockEntry(blockID, blockMeta, entity, x, y, z));
     }
 
@@ -60,10 +59,10 @@ public class BlocksContainer implements WorldSource {
     }
 
     @Override
-    public BlockEntity getBlockEntity(int x, int y, int z) {
+    public TileEntity getBlockEntity(int x, int y, int z) {
         ChunkCoordinates c = new ChunkCoordinates(x, y, z);
         if (blockEntryMap.containsKey(c)){
-            return blockEntryMap.get(c).blockEntity;
+            return blockEntryMap.get(c).tileEntity;
         }
         return world.getBlockEntity(x, y, z);
     }
@@ -140,14 +139,14 @@ public class BlocksContainer implements WorldSource {
         public final int blockID;
         public final int blockMeta;
         @Nullable
-        public final BlockEntity blockEntity;
+        public final TileEntity tileEntity;
         public final int x;
         public final int y;
         public final int z;
-        public BlockEntry(int blockID, int blockMeta, @Nullable BlockEntity blockEntity, int x, int y, int z){
+        public BlockEntry(int blockID, int blockMeta, @Nullable TileEntity tileEntity, int x, int y, int z){
             this.blockID = blockID;
             this.blockMeta = blockMeta;
-            this.blockEntity = blockEntity;
+            this.tileEntity = tileEntity;
             this.x = x;
             this.y = y;
             this.z = z;
diff --git a/src/main/java/net/minecraft/core/world/Explosion.java b/src/main/java/net/minecraft/core/world/Explosion.java
index 22116a10e..f48cd58b7 100644
--- a/src/main/java/net/minecraft/core/world/Explosion.java
+++ b/src/main/java/net/minecraft/core/world/Explosion.java
@@ -1,6 +1,6 @@
 package net.minecraft.core.world;
 
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.data.gamerule.GameRules;
 import net.minecraft.core.entity.Entity;
 import net.minecraft.core.entity.player.Player;
@@ -66,7 +66,7 @@ public class Explosion {
             int z = chunkposition.z;
             
             int id = worldObj.getBlockId(x, y, z);
-            BlockEntity blockEntity = worldObj.getBlockEntity(x, y, z);
+            TileEntity tileEntity = worldObj.getBlockEntity(x, y, z);
             if(particles) {
                 double xPos = (double) x + worldObj.rand.nextFloat();
                 double yPos = (double) y + worldObj.rand.nextFloat();
@@ -88,7 +88,7 @@ public class Explosion {
             }
             if(id > 0)
             {
-                Block.blocksList[id].dropBlockWithCause(worldObj, EnumDropCause.EXPLOSION, x, y, z, worldObj.getBlockMetadata(x, y, z), blockEntity, null);
+                Block.blocksList[id].dropBlockWithCause(worldObj, EnumDropCause.EXPLOSION, x, y, z, worldObj.getBlockMetadata(x, y, z), tileEntity, null);
                 worldObj.setBlockWithNotify(x, y, z, 0);
                 Block.blocksList[id].onBlockDestroyedByExplosion(worldObj, x, y, z);
             }
diff --git a/src/main/java/net/minecraft/core/world/ExplosionCannonball.java b/src/main/java/net/minecraft/core/world/ExplosionCannonball.java
index 4770942a2..8c6c0079b 100644
--- a/src/main/java/net/minecraft/core/world/ExplosionCannonball.java
+++ b/src/main/java/net/minecraft/core/world/ExplosionCannonball.java
@@ -1,6 +1,6 @@
 package net.minecraft.core.world;
 
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.entity.Entity;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.sound.SoundCategory;
@@ -144,7 +144,7 @@ public class ExplosionCannonball extends Explosion{
             int y = chunkposition.y;
             int z = chunkposition.z;
             int i1 = worldObj.getBlockId(x, y, z);
-            BlockEntity blockEntity = worldObj.getBlockEntity(x, y, z);
+            TileEntity tileEntity = worldObj.getBlockEntity(x, y, z);
             if(flag)
             {
                 double d = (double)x + worldObj.rand.nextFloat();
@@ -172,7 +172,7 @@ public class ExplosionCannonball extends Explosion{
                     ||  Block.blocksList[i1].blockMaterial == Material.decoration
                     ||  Block.blocksList[i1].blockMaterial == Material.ice))
             {
-                Block.blocksList[i1].dropBlockWithCause(worldObj, EnumDropCause.EXPLOSION, x, y, z, worldObj.getBlockMetadata(x, y, z), blockEntity, null);
+                Block.blocksList[i1].dropBlockWithCause(worldObj, EnumDropCause.EXPLOSION, x, y, z, worldObj.getBlockMetadata(x, y, z), tileEntity, null);
                 worldObj.setBlockWithNotify(x, y, z, 0);
                 Block.blocksList[i1].onBlockDestroyedByExplosion(worldObj, x, y, z);
             }
diff --git a/src/main/java/net/minecraft/core/world/LevelListener.java b/src/main/java/net/minecraft/core/world/LevelListener.java
index 1ee3a7475..4ce7f728a 100644
--- a/src/main/java/net/minecraft/core/world/LevelListener.java
+++ b/src/main/java/net/minecraft/core/world/LevelListener.java
@@ -1,12 +1,12 @@
 package net.minecraft.core.world;
 
 // Referenced classes of package net.minecraft.src:
-//            Entity, BlockEntity, Player
+//            Entity, TileEntity, Player
 
 import net.minecraft.client.render.RenderGlobal;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.entity.Entity;
 import net.minecraft.core.entity.player.Player;
-import net.minecraft.core.block.entity.BlockEntity;
 import net.minecraft.core.sound.SoundCategory;
 
 public interface LevelListener
@@ -81,7 +81,7 @@ public interface LevelListener
 
     void playStreamingMusic(String soundPath, String Author, int x, int y, int z);
 
-    void tileEntityChanged(int x, int y, int z, BlockEntity blockEntity);
+    void tileEntityChanged(int x, int y, int z, TileEntity tileEntity);
 
     void levelEvent(Player player, int id, int x, int y, int z, int data);
 }
diff --git a/src/main/java/net/minecraft/core/world/PortalHandler.java b/src/main/java/net/minecraft/core/world/PortalHandler.java
index bc4ccc125..b15826afa 100644
--- a/src/main/java/net/minecraft/core/world/PortalHandler.java
+++ b/src/main/java/net/minecraft/core/world/PortalHandler.java
@@ -1,10 +1,10 @@
 package net.minecraft.core.world;
 
+import net.minecraft.core.block.BlockPortal;
 import net.minecraft.core.entity.Entity;
 import net.minecraft.core.util.helper.DyeColor;
 import net.minecraft.core.util.helper.MathHelper;
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.PortalBlock;
 import net.minecraft.core.world.type.WorldType;
 import org.jetbrains.annotations.Nullable;
 
@@ -12,7 +12,7 @@ import java.util.Random;
 
 // Referenced classes of package net.minecraft.src:
 //            Entity, MathHelper, World, Block, 
-//            PortalBlock, Material
+//            BlockPortal, Material
 
 public class PortalHandler
 {
@@ -77,7 +77,7 @@ public class PortalHandler
                         continue;
                     }
 
-                    if (portalColor != null && targetPortalId > 0 && ((PortalBlock)Block.getBlock(targetPortalId)).getColor(world, dx, dy, dz) != portalColor) {
+                    if (portalColor != null && targetPortalId > 0 && ((BlockPortal)Block.getBlock(targetPortalId)).getColor(world, dx, dy, dz) != portalColor) {
                         continue;
                     }
                     
@@ -112,7 +112,7 @@ public class PortalHandler
                             continue;
                         }
 
-                        if (portalColor != null && targetPortalId > 0 && ((PortalBlock) Block.getBlock(targetPortalId)).getColor(world, dx, dy, dz) != portalColor) {
+                        if (portalColor != null && targetPortalId > 0 && ((BlockPortal) Block.getBlock(targetPortalId)).getColor(world, dx, dy, dz) != portalColor) {
                             continue;
                         }
 
@@ -196,12 +196,12 @@ public class PortalHandler
         
         if (newDim.homeDim == null)
         {
-        	targetPortalFrameId = ((PortalBlock) Block.blocksList[oldDim.portalBlockId]).portalFrameId;
+        	targetPortalFrameId = ((BlockPortal) Block.blocksList[oldDim.portalBlockId]).portalFrameId;
         	targetPortalId = oldDim.portalBlockId;
         }
         else
         {
-        	targetPortalFrameId = ((PortalBlock)Block.blocksList[newDim.portalBlockId]).portalFrameId;
+        	targetPortalFrameId = ((BlockPortal)Block.blocksList[newDim.portalBlockId]).portalFrameId;
         	targetPortalId = newDim.portalBlockId;
         }
         
@@ -367,7 +367,7 @@ label1:
 
             }
             
-            ((PortalBlock)Block.blocksList[targetPortalId]).tryToCreatePortal(world, portalX,  portalY,  portalZ, portalColor);
+            ((BlockPortal)Block.blocksList[targetPortalId]).tryToCreatePortal(world, portalX,  portalY,  portalZ, portalColor);
 
             world.noNeighborUpdate = false;
             for(int k6 = 0; k6 < 4; k6++)
diff --git a/src/main/java/net/minecraft/core/world/SpawnerMobs.java b/src/main/java/net/minecraft/core/world/SpawnerMobs.java
index 59e1f0af1..769400fd3 100644
--- a/src/main/java/net/minecraft/core/world/SpawnerMobs.java
+++ b/src/main/java/net/minecraft/core/world/SpawnerMobs.java
@@ -1,16 +1,16 @@
 package net.minecraft.core.world;
 
 import com.mojang.logging.LogUtils;
-import net.minecraft.core.block.BedBlock;
+import net.minecraft.core.block.BlockBed;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.data.gamerule.GameRules;
 import net.minecraft.core.entity.EntityDispatcher;
 import net.minecraft.core.entity.Mob;
 import net.minecraft.core.entity.SpawnListEntry;
-import net.minecraft.core.entity.monster.SkeletonMob;
-import net.minecraft.core.entity.monster.ZombieArmoredMob;
-import net.minecraft.core.entity.monster.SpiderMob;
-import net.minecraft.core.entity.monster.ZombieMob;
+import net.minecraft.core.entity.monster.MobSkeleton;
+import net.minecraft.core.entity.monster.MobSpider;
+import net.minecraft.core.entity.monster.MobZombieArmored;
+import net.minecraft.core.entity.monster.MobZombie;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.enums.MobCategory;
 import net.minecraft.core.util.helper.MathHelper;
@@ -26,12 +26,8 @@ import net.minecraft.core.world.pathfinder.Path;
 import net.minecraft.core.world.pathfinder.PathFinder;
 import org.slf4j.Logger;
 
-import java.util.Collection;
-import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
-import java.util.Locale;
-import java.util.Map;
 import java.util.Set;
 public final class SpawnerMobs
 {
@@ -42,7 +38,7 @@ public final class SpawnerMobs
     static
     {
         nightSpawnEntities = new Class[] {
-            SpiderMob.class, ZombieMob.class, SkeletonMob.class, ZombieArmoredMob.class
+            MobSpider.class, MobZombie.class, MobSkeleton.class, MobZombieArmored.class
         };
     }
 
@@ -290,7 +286,7 @@ public final class SpawnerMobs
 								Node pathPoint = pathEntity.last();
                                 boolean isCollisionFree = world.checkBlockCollisionBetweenPoints(Vec3.getTempVec3(player.x, player.y + 1.5f, player.z), Vec3.getTempVec3(pathPoint.x, pathPoint.y + 1.5f, pathPoint.z)) == null;
 								if(Math.abs(pathPoint.x + 0.5f - player.x) < 1.5 && Math.abs(pathPoint.z + 0.5f - player.z) < 1.5 && Math.abs(pathPoint.y + 0.5f - player.y) < 1.5 && isCollisionFree) {
-									ChunkCoordinates pos = BedBlock.getNearestEmptyChunkCoordinates(world, MathHelper.floor(player.x), MathHelper.floor(player.y), MathHelper.floor(player.z), 1);
+									ChunkCoordinates pos = BlockBed.getNearestEmptyChunkCoordinates(world, MathHelper.floor(player.x), MathHelper.floor(player.y), MathHelper.floor(player.z), 1);
 									if(pos == null) {
 										pos = new ChunkCoordinates(x, spawnY + 1, z);
 									}
diff --git a/src/main/java/net/minecraft/core/world/World.java b/src/main/java/net/minecraft/core/world/World.java
index 22077df14..663922eb5 100644
--- a/src/main/java/net/minecraft/core/world/World.java
+++ b/src/main/java/net/minecraft/core/world/World.java
@@ -15,6 +15,9 @@ import java.util.UUID;
 import com.mojang.logging.LogUtils;
 import com.mojang.nbt.CompoundTag;
 
+import net.minecraft.core.block.entity.TileEntity;
+import net.minecraft.core.entity.EntityItem;
+import net.minecraft.core.entity.animal.MobFireflyCluster;
 import net.minecraft.core.enums.Difficulty;
 import net.minecraft.client.render.LightmapHelper;
 import net.minecraft.client.render.camera.ICamera;
@@ -23,8 +26,6 @@ import net.minecraft.client.util.debug.Debug;
 import net.minecraft.client.world.chunk.provider.ChunkProviderViewer;
 import net.minecraft.core.Global;
 import net.minecraft.core.block.Blocks;
-import net.minecraft.core.block.entity.BlockEntity;
-import net.minecraft.core.entity.ItemEntity;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.net.command.CommandManager;
 import net.minecraft.core.util.phys.HitResult;
@@ -36,7 +37,6 @@ import net.minecraft.core.data.gamerule.GameRule;
 import net.minecraft.core.data.gamerule.GameRules;
 import net.minecraft.core.entity.Entity;
 import net.minecraft.core.entity.Mob;
-import net.minecraft.core.entity.animal.FireflyClusterMob;
 import net.minecraft.core.enums.EnumBlockSoundEffectType;
 import net.minecraft.core.enums.LightLayer;
 import net.minecraft.core.item.ItemStack;
@@ -96,7 +96,7 @@ public class World implements WorldSource {
     private final List<Entity> unloadedEntityList = new ArrayList<>();
     private final TreeSet<NextTickListEntry> scheduledTickTreeSet = new TreeSet<>();
     private final Set<NextTickListEntry> scheduledTickSet = new HashSet<>();
-    public List<BlockEntity> loadedBlockEntityList = new ArrayList<>();
+    public List<TileEntity> loadedTileEntityList = new ArrayList<>();
     public List<Player> players = new ArrayList<>();
     public List<Entity> weatherEffects = new ArrayList<>();
     public final ArrayList<AABB> collidingBoundingBoxes = new ArrayList<>();
@@ -1570,7 +1570,7 @@ public class World implements WorldSource {
                     if(block != null && block.isSolidRender())
                     {
                         // ignore mesh blocks if entity is instance of an item
-                        if(!(entity instanceof ItemEntity && (block.id == Blocks.MESH.id || block.id == Blocks.SPIKES.id || block.id == Blocks.MOBSPAWNER.id)))
+                        if(!(entity instanceof EntityItem && (block.id == Blocks.MESH.id || block.id == Blocks.SPIKES.id || block.id == Blocks.MOBSPAWNER.id)))
                             block.getCollidingBoundingBoxes(this, dx, dy, dz, axisalignedbb, collidingBoundingBoxes);
                     }
                 }
@@ -1863,25 +1863,25 @@ public class World implements WorldSource {
         }
 
         updatingBlockEntities = true;
-        for (int i = loadedBlockEntityList.size() - 1; i >= 0; i--) {
-            BlockEntity blockEntity = loadedBlockEntityList.get(i);
-            if (!blockEntity.isInvalid() && isBlockLoaded(blockEntity.x, blockEntity.y, blockEntity.z)) {
-                blockEntity.tick();
-            }
-            if (blockEntity.isInvalid()) {
-                loadedBlockEntityList.remove(i);
-                Chunk chunk = getChunkFromChunkCoords(Math.floorDiv(blockEntity.x, Chunk.CHUNK_SIZE_X), Math.floorDiv(blockEntity.z, Chunk.CHUNK_SIZE_Z));
+        for (int i = loadedTileEntityList.size() - 1; i >= 0; i--) {
+            TileEntity tileEntity = loadedTileEntityList.get(i);
+            if (!tileEntity.isInvalid() && isBlockLoaded(tileEntity.x, tileEntity.y, tileEntity.z)) {
+                tileEntity.tick();
+            }
+            if (tileEntity.isInvalid()) {
+                loadedTileEntityList.remove(i);
+                Chunk chunk = getChunkFromChunkCoords(Math.floorDiv(tileEntity.x, Chunk.CHUNK_SIZE_X), Math.floorDiv(tileEntity.z, Chunk.CHUNK_SIZE_Z));
                 if (chunk != null) {
-                    chunk.removeBlockEntity(blockEntity);
+                    chunk.removeBlockEntity(tileEntity);
                 }
             }
         }
         updatingBlockEntities = false;
     }
 
-    public void addAllBlockEntities(Collection<BlockEntity> blockEntities)
+    public void addAllBlockEntities(Collection<TileEntity> blockEntities)
     {
-        loadedBlockEntityList.addAll(blockEntities);
+        loadedTileEntityList.addAll(blockEntities);
     }
 
     public void updateEntity(Entity entity)
@@ -1975,7 +1975,7 @@ public class World implements WorldSource {
         for(int i = 0; i < list.size(); i++)
         {
             Entity entity = list.get(i);
-            if (entity instanceof FireflyClusterMob) continue;
+            if (entity instanceof MobFireflyCluster) continue;
             if(!entity.removed && entity.blocksBuilding)
             {
                 return false;
@@ -2242,7 +2242,7 @@ public class World implements WorldSource {
     }
 
     @Override
-    public BlockEntity getBlockEntity(int x, int y, int z)
+    public TileEntity getBlockEntity(int x, int y, int z)
     {
         Chunk chunk = getChunkFromChunkCoords(Math.floorDiv(x, Chunk.CHUNK_SIZE_X), Math.floorDiv(z, Chunk.CHUNK_SIZE_Z));
         if(chunk != null)
@@ -2254,15 +2254,15 @@ public class World implements WorldSource {
         }
     }
 
-    public void setBlockTileEntity(int x, int y, int z, BlockEntity blockEntity)
+    public void setBlockTileEntity(int x, int y, int z, TileEntity tileEntity)
     {
-        if(!blockEntity.isInvalid())
+        if(!tileEntity.isInvalid())
         {
             Chunk chunk = getChunkFromChunkCoords(Math.floorDiv(x, Chunk.CHUNK_SIZE_X), Math.floorDiv(z, Chunk.CHUNK_SIZE_Z));
             if(chunk != null)
             {
-                if (chunk.setBlockEntity(x & (Chunk.CHUNK_SIZE_X - 1), y, z & (Chunk.CHUNK_SIZE_Z - 1), blockEntity) && !loadedBlockEntityList.contains(blockEntity)) {
-                    loadedBlockEntityList.add(blockEntity);
+                if (chunk.setBlockEntity(x & (Chunk.CHUNK_SIZE_X - 1), y, z & (Chunk.CHUNK_SIZE_Z - 1), tileEntity) && !loadedTileEntityList.contains(tileEntity)) {
+                    loadedTileEntityList.add(tileEntity);
                 }
             }
         }
@@ -2270,28 +2270,28 @@ public class World implements WorldSource {
 
     public void removeBlockTileEntity(int x, int y, int z)
     {
-        BlockEntity blockEntity = getBlockEntity(x, y, z);
+        TileEntity tileEntity = getBlockEntity(x, y, z);
 
-        if(blockEntity != null && updatingBlockEntities)
+        if(tileEntity != null && updatingBlockEntities)
         {
-            blockEntity.invalidate();
+            tileEntity.invalidate();
         } else
         {
-            if(blockEntity != null)
+            if(tileEntity != null)
             {
-                loadedBlockEntityList.remove(blockEntity);
+                loadedTileEntityList.remove(tileEntity);
             }
             Chunk chunk = getChunkFromChunkCoords(Math.floorDiv(x, Chunk.CHUNK_SIZE_X), Math.floorDiv(z, Chunk.CHUNK_SIZE_Z));
             if(chunk != null)
             {
-                chunk.removeBlockEntity(blockEntity);
+                chunk.removeBlockEntity(tileEntity);
             }
         }
     }
 
-    public void replaceBlockTileEntity(int x, int y, int z, BlockEntity blockEntity) {
+    public void replaceBlockTileEntity(int x, int y, int z, TileEntity tileEntity) {
         removeBlockTileEntity(x, y, z);
-        setBlockTileEntity(x, y, z, blockEntity);
+        setBlockTileEntity(x, y, z, tileEntity);
     }
 
     @Override
@@ -2709,12 +2709,12 @@ public class World implements WorldSource {
         return loadedEntityList;
     }
 
-    public List<BlockEntity> getLoadedBlockEntityList()
+    public List<TileEntity> getLoadedBlockEntityList()
     {
-        return loadedBlockEntityList;
+        return loadedTileEntityList;
     }
 
-    public void updateTileEntityChunkAndSendToPlayer(int x, int y, int z, BlockEntity blockEntity)
+    public void updateTileEntityChunkAndSendToPlayer(int x, int y, int z, TileEntity tileEntity)
     {
         if(isBlockLoaded(x, y, z))
         {
@@ -2722,7 +2722,7 @@ public class World implements WorldSource {
         }
         for(int l = 0; l < listeners.size(); l++)
         {
-            listeners.get(l).tileEntityChanged(x, y, z, blockEntity);
+            listeners.get(l).tileEntityChanged(x, y, z, tileEntity);
         }
     }
 
@@ -3286,12 +3286,12 @@ public class World implements WorldSource {
         return worldType;
     }
 
-    public ItemEntity dropItem(int x, int y, int z, ItemStack itemStack) {
+    public EntityItem dropItem(int x, int y, int z, ItemStack itemStack) {
         float f = 0.7F;
         double x1 = (double) (rand.nextFloat() * f) + (double) (1.0F - f) * 0.5D;
         double y1 = (double) (rand.nextFloat() * f) + (double) (1.0F - f) * 0.5D;
         double z1 = (double) (rand.nextFloat() * f) + (double) (1.0F - f) * 0.5D;
-        ItemEntity item = new ItemEntity(this, (double) x + x1, (double) y + y1, (double) z + z1, itemStack);
+        EntityItem item = new EntityItem(this, (double) x + x1, (double) y + y1, (double) z + z1, itemStack);
         item.pickupDelay = 10;
         entityJoinedWorld(item);
         return item;
diff --git a/src/main/java/net/minecraft/core/world/WorldSource.java b/src/main/java/net/minecraft/core/world/WorldSource.java
index 4fb084f77..533c45d99 100644
--- a/src/main/java/net/minecraft/core/world/WorldSource.java
+++ b/src/main/java/net/minecraft/core/world/WorldSource.java
@@ -1,7 +1,7 @@
 package net.minecraft.core.world;
 
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.enums.LightLayer;
 import net.minecraft.core.world.biome.Biome;
@@ -14,7 +14,7 @@ public interface WorldSource
 
     Block getBlock(int x, int y, int z);
 
-    BlockEntity getBlockEntity(int x, int y, int z);
+    TileEntity getBlockEntity(int x, int y, int z);
 
     float getBrightness(int x, int y, int z, int blockLightValue);
     
diff --git a/src/main/java/net/minecraft/core/world/biome/Biome.java b/src/main/java/net/minecraft/core/world/biome/Biome.java
index 0b444a26f..38a5e5c08 100644
--- a/src/main/java/net/minecraft/core/world/biome/Biome.java
+++ b/src/main/java/net/minecraft/core/world/biome/Biome.java
@@ -1,18 +1,18 @@
 package net.minecraft.core.world.biome;
 
-import net.minecraft.core.entity.animal.ChickenMob;
-import net.minecraft.core.entity.animal.CowMob;
-import net.minecraft.core.entity.animal.FireflyClusterMob;
-import net.minecraft.core.entity.animal.PigMob;
-import net.minecraft.core.entity.animal.SheepMob;
-import net.minecraft.core.entity.animal.SquidMob;
-import net.minecraft.core.entity.monster.CreeperMob;
-import net.minecraft.core.entity.monster.SkeletonMob;
-import net.minecraft.core.entity.monster.SlimeMob;
-import net.minecraft.core.entity.monster.SnowmanMob;
-import net.minecraft.core.entity.monster.SpiderMob;
-import net.minecraft.core.entity.monster.ZombieArmoredMob;
-import net.minecraft.core.entity.monster.ZombieMob;
+import net.minecraft.core.entity.animal.MobChicken;
+import net.minecraft.core.entity.animal.MobCow;
+import net.minecraft.core.entity.animal.MobFireflyCluster;
+import net.minecraft.core.entity.animal.MobPig;
+import net.minecraft.core.entity.animal.MobSheep;
+import net.minecraft.core.entity.animal.MobSquid;
+import net.minecraft.core.entity.monster.MobCreeper;
+import net.minecraft.core.entity.monster.MobSkeleton;
+import net.minecraft.core.entity.monster.MobSlime;
+import net.minecraft.core.entity.monster.MobSnowman;
+import net.minecraft.core.entity.monster.MobSpider;
+import net.minecraft.core.entity.monster.MobZombie;
+import net.minecraft.core.entity.monster.MobZombieArmored;
 import net.minecraft.core.enums.MobCategory;
 import net.minecraft.core.block.Blocks;
 import net.minecraft.core.entity.SpawnListEntry;
@@ -47,19 +47,19 @@ public class Biome
         spawnableCreatureList = new ArrayList<>();
         spawnableWaterCreatureList = new ArrayList<>();
         spawnableAmbientCreatureList = new ArrayList<>();
-        spawnableMonsterList.add(new SpawnListEntry(SpiderMob.class, 10));
-        spawnableMonsterList.add(new SpawnListEntry(ZombieMob.class, 10));
-        spawnableMonsterList.add(new SpawnListEntry(ZombieArmoredMob.class, 2));
-        spawnableMonsterList.add(new SpawnListEntry(SkeletonMob.class, 10));
-        spawnableMonsterList.add(new SpawnListEntry(CreeperMob.class, 10));
-        spawnableMonsterList.add(new SpawnListEntry(SlimeMob.class, 10));
-        spawnableMonsterList.add(new SpawnListEntry(SnowmanMob.class, 2));
-        spawnableCreatureList.add(new SpawnListEntry(SheepMob.class, 102));
-        spawnableCreatureList.add(new SpawnListEntry(PigMob.class, 102));
-        spawnableCreatureList.add(new SpawnListEntry(ChickenMob.class, 102));
-        spawnableCreatureList.add(new SpawnListEntry(CowMob.class, 102));
-        spawnableWaterCreatureList.add(new SpawnListEntry(SquidMob.class, 10));
-        spawnableAmbientCreatureList.add(new SpawnListEntry(FireflyClusterMob.class, 10));
+        spawnableMonsterList.add(new SpawnListEntry(MobSpider.class, 10));
+        spawnableMonsterList.add(new SpawnListEntry(MobZombie.class, 10));
+        spawnableMonsterList.add(new SpawnListEntry(MobZombieArmored.class, 2));
+        spawnableMonsterList.add(new SpawnListEntry(MobSkeleton.class, 10));
+        spawnableMonsterList.add(new SpawnListEntry(MobCreeper.class, 10));
+        spawnableMonsterList.add(new SpawnListEntry(MobSlime.class, 10));
+        spawnableMonsterList.add(new SpawnListEntry(MobSnowman.class, 2));
+        spawnableCreatureList.add(new SpawnListEntry(MobSheep.class, 102));
+        spawnableCreatureList.add(new SpawnListEntry(MobPig.class, 102));
+        spawnableCreatureList.add(new SpawnListEntry(MobChicken.class, 102));
+        spawnableCreatureList.add(new SpawnListEntry(MobCow.class, 102));
+        spawnableWaterCreatureList.add(new SpawnListEntry(MobSquid.class, 10));
+        spawnableAmbientCreatureList.add(new SpawnListEntry(MobFireflyCluster.class, 10));
     }
 
     public WorldFeature getRandomWorldGenForTrees(Random random)
diff --git a/src/main/java/net/minecraft/core/world/biome/BiomeBirchForest.java b/src/main/java/net/minecraft/core/world/biome/BiomeBirchForest.java
index ba8d36ff9..b3f418d72 100644
--- a/src/main/java/net/minecraft/core/world/biome/BiomeBirchForest.java
+++ b/src/main/java/net/minecraft/core/world/biome/BiomeBirchForest.java
@@ -1,7 +1,6 @@
 package net.minecraft.core.world.biome;
 
-import net.minecraft.core.entity.animal.WolfMob;
-import net.minecraft.core.block.Block;
+import net.minecraft.core.entity.animal.MobWolf;
 import net.minecraft.core.block.Blocks;
 import net.minecraft.core.entity.SpawnListEntry;
 import net.minecraft.core.world.generate.feature.tree.WorldFeatureTree;
@@ -16,7 +15,7 @@ public class BiomeBirchForest extends Biome
     public BiomeBirchForest(String key)
     {
     	super(key);
-        spawnableCreatureList.add(new SpawnListEntry(WolfMob.class, 25));
+        spawnableCreatureList.add(new SpawnListEntry(MobWolf.class, 25));
     }
 
     @Override
diff --git a/src/main/java/net/minecraft/core/world/biome/BiomeBorealForest.java b/src/main/java/net/minecraft/core/world/biome/BiomeBorealForest.java
index 050a6b6b6..98f0e018f 100644
--- a/src/main/java/net/minecraft/core/world/biome/BiomeBorealForest.java
+++ b/src/main/java/net/minecraft/core/world/biome/BiomeBorealForest.java
@@ -1,7 +1,6 @@
 package net.minecraft.core.world.biome;
 
-import net.minecraft.core.entity.animal.WolfMob;
-import net.minecraft.core.block.Block;
+import net.minecraft.core.entity.animal.MobWolf;
 import net.minecraft.core.block.Blocks;
 import net.minecraft.core.entity.SpawnListEntry;
 import net.minecraft.core.world.generate.feature.tree.WorldFeatureTreeTaigaBushy;
@@ -15,7 +14,7 @@ public class BiomeBorealForest extends Biome
     public BiomeBorealForest(String key)
     {
     	super(key);
-        spawnableCreatureList.add(new SpawnListEntry(WolfMob.class, 25));
+        spawnableCreatureList.add(new SpawnListEntry(MobWolf.class, 25));
     }
 
     @Override
diff --git a/src/main/java/net/minecraft/core/world/biome/BiomeCaatinga.java b/src/main/java/net/minecraft/core/world/biome/BiomeCaatinga.java
index ea942cf26..192ffe4e4 100644
--- a/src/main/java/net/minecraft/core/world/biome/BiomeCaatinga.java
+++ b/src/main/java/net/minecraft/core/world/biome/BiomeCaatinga.java
@@ -12,7 +12,7 @@ import net.minecraft.core.world.generate.feature.WorldFeature;
 import java.util.Random;
 
 // Referenced classes of package net.minecraft.src:
-//            BiomeGenBase, SpawnListEntry, WolfMob, WorldGenForest,
+//            BiomeGenBase, SpawnListEntry, MobWolf, WorldGenForest,
 //            WorldGenBigTree, WorldGenTrees, WorldGenerator
 
 public class BiomeCaatinga extends Biome
diff --git a/src/main/java/net/minecraft/core/world/biome/BiomeForest.java b/src/main/java/net/minecraft/core/world/biome/BiomeForest.java
index be1537da8..8da8c2cab 100644
--- a/src/main/java/net/minecraft/core/world/biome/BiomeForest.java
+++ b/src/main/java/net/minecraft/core/world/biome/BiomeForest.java
@@ -1,7 +1,6 @@
 package net.minecraft.core.world.biome;
 
-import net.minecraft.core.entity.animal.WolfMob;
-import net.minecraft.core.block.Block;
+import net.minecraft.core.entity.animal.MobWolf;
 import net.minecraft.core.block.Blocks;
 import net.minecraft.core.entity.SpawnListEntry;
 import net.minecraft.core.world.generate.feature.tree.WorldFeatureTree;
@@ -16,7 +15,7 @@ public class BiomeForest extends Biome
     public BiomeForest(String key)
     {
     	super(key);
-        spawnableCreatureList.add(new SpawnListEntry(WolfMob.class, 25));
+        spawnableCreatureList.add(new SpawnListEntry(MobWolf.class, 25));
     }
 
     @Override
diff --git a/src/main/java/net/minecraft/core/world/biome/BiomeNether.java b/src/main/java/net/minecraft/core/world/biome/BiomeNether.java
index cf9aa62b6..cc6b7496a 100644
--- a/src/main/java/net/minecraft/core/world/biome/BiomeNether.java
+++ b/src/main/java/net/minecraft/core/world/biome/BiomeNether.java
@@ -1,7 +1,7 @@
 package net.minecraft.core.world.biome;
 
-import net.minecraft.core.entity.monster.GhastMob;
-import net.minecraft.core.entity.monster.ZombiePigMob;
+import net.minecraft.core.entity.monster.MobGhast;
+import net.minecraft.core.entity.monster.MobZombiePig;
 import net.minecraft.core.entity.SpawnListEntry;
 
 public class BiomeNether extends Biome
@@ -14,7 +14,7 @@ public class BiomeNether extends Biome
         spawnableCreatureList.clear();
         spawnableWaterCreatureList.clear();
         spawnableAmbientCreatureList.clear();
-        spawnableMonsterList.add(new SpawnListEntry(GhastMob.class, 10));
-        spawnableMonsterList.add(new SpawnListEntry(ZombiePigMob.class, 10));
+        spawnableMonsterList.add(new SpawnListEntry(MobGhast.class, 10));
+        spawnableMonsterList.add(new SpawnListEntry(MobZombiePig.class, 10));
     }
 }
diff --git a/src/main/java/net/minecraft/core/world/biome/BiomeOutback.java b/src/main/java/net/minecraft/core/world/biome/BiomeOutback.java
index 1ea05fb82..a8be3d53f 100644
--- a/src/main/java/net/minecraft/core/world/biome/BiomeOutback.java
+++ b/src/main/java/net/minecraft/core/world/biome/BiomeOutback.java
@@ -1,7 +1,6 @@
 package net.minecraft.core.world.biome;
 
-import net.minecraft.core.entity.monster.SpiderMob;
-import net.minecraft.core.block.Block;
+import net.minecraft.core.entity.monster.MobSpider;
 import net.minecraft.core.block.Blocks;
 import net.minecraft.core.entity.SpawnListEntry;
 import net.minecraft.core.world.generate.feature.tree.WorldFeatureTreeEucalyptus;
@@ -18,7 +17,7 @@ public class BiomeOutback extends Biome
         spawnableMonsterList.clear();
         spawnableCreatureList.clear();
         spawnableWaterCreatureList.clear();
-        spawnableMonsterList.add(new SpawnListEntry(SpiderMob.class, 20));
+        spawnableMonsterList.add(new SpawnListEntry(MobSpider.class, 20));
     }
 
     @Override
diff --git a/src/main/java/net/minecraft/core/world/biome/BiomeParadise.java b/src/main/java/net/minecraft/core/world/biome/BiomeParadise.java
index 13e5b628b..3a61fadb6 100644
--- a/src/main/java/net/minecraft/core/world/biome/BiomeParadise.java
+++ b/src/main/java/net/minecraft/core/world/biome/BiomeParadise.java
@@ -1,10 +1,10 @@
 package net.minecraft.core.world.biome;
 
-import net.minecraft.core.entity.animal.ChickenMob;
+import net.minecraft.core.entity.animal.MobChicken;
 import net.minecraft.core.entity.SpawnListEntry;
 
 // Referenced classes of package net.minecraft.src:
-//            BiomeGenBase, SpawnListEntry, ChickenMob
+//            BiomeGenBase, SpawnListEntry, MobChicken
 
 public class BiomeParadise extends Biome
 {	
@@ -14,7 +14,7 @@ public class BiomeParadise extends Biome
         spawnableMonsterList.clear();
         spawnableCreatureList.clear();
         spawnableWaterCreatureList.clear();
-        spawnableCreatureList.add(new SpawnListEntry(ChickenMob.class, 10));
+        spawnableCreatureList.add(new SpawnListEntry(MobChicken.class, 10));
     }
 
     @Override
diff --git a/src/main/java/net/minecraft/core/world/biome/BiomeRetro.java b/src/main/java/net/minecraft/core/world/biome/BiomeRetro.java
index 99c75795b..7637a82a0 100644
--- a/src/main/java/net/minecraft/core/world/biome/BiomeRetro.java
+++ b/src/main/java/net/minecraft/core/world/biome/BiomeRetro.java
@@ -1,6 +1,5 @@
 package net.minecraft.core.world.biome;
 
-import net.minecraft.core.block.Block;
 import net.minecraft.core.block.Blocks;
 import net.minecraft.core.entity.SpawnListEntry;
 import net.minecraft.core.entity.animal.*;
@@ -21,15 +20,15 @@ public class BiomeRetro
         spawnableCreatureList.clear();
         spawnableWaterCreatureList.clear();
         spawnableAmbientCreatureList.clear();
-        spawnableMonsterList.add(new SpawnListEntry(SpiderMob.class, 10));
-        spawnableMonsterList.add(new SpawnListEntry(ZombieMob.class, 10));
-        spawnableMonsterList.add(new SpawnListEntry(SkeletonMob.class, 10));
-        spawnableMonsterList.add(new SpawnListEntry(CreeperMob.class, 10));
-        spawnableMonsterList.add(new SpawnListEntry(SlimeMob.class, 10));
-        spawnableCreatureList.add(new SpawnListEntry(SheepMob.class, 102));
-        spawnableCreatureList.add(new SpawnListEntry(PigMob.class, 102));
-        spawnableCreatureList.add(new SpawnListEntry(ChickenMob.class, 102));
-        spawnableCreatureList.add(new SpawnListEntry(CowMob.class, 102));
+        spawnableMonsterList.add(new SpawnListEntry(MobSpider.class, 10));
+        spawnableMonsterList.add(new SpawnListEntry(MobZombie.class, 10));
+        spawnableMonsterList.add(new SpawnListEntry(MobSkeleton.class, 10));
+        spawnableMonsterList.add(new SpawnListEntry(MobCreeper.class, 10));
+        spawnableMonsterList.add(new SpawnListEntry(MobSlime.class, 10));
+        spawnableCreatureList.add(new SpawnListEntry(MobSheep.class, 102));
+        spawnableCreatureList.add(new SpawnListEntry(MobPig.class, 102));
+        spawnableCreatureList.add(new SpawnListEntry(MobChicken.class, 102));
+        spawnableCreatureList.add(new SpawnListEntry(MobCow.class, 102));
 
     }
 
diff --git a/src/main/java/net/minecraft/core/world/biome/BiomeSeasonalForest.java b/src/main/java/net/minecraft/core/world/biome/BiomeSeasonalForest.java
index 47cfadc5a..e9ce674b5 100644
--- a/src/main/java/net/minecraft/core/world/biome/BiomeSeasonalForest.java
+++ b/src/main/java/net/minecraft/core/world/biome/BiomeSeasonalForest.java
@@ -1,9 +1,8 @@
 package net.minecraft.core.world.biome;
 
-import net.minecraft.core.block.Block;
 import net.minecraft.core.block.Blocks;
 import net.minecraft.core.entity.SpawnListEntry;
-import net.minecraft.core.entity.animal.WolfMob;
+import net.minecraft.core.entity.animal.MobWolf;
 import net.minecraft.core.world.generate.feature.tree.WorldFeatureTreeCherry;
 import net.minecraft.core.world.generate.feature.tree.WorldFeatureTree;
 import net.minecraft.core.world.generate.feature.tree.WorldFeatureTreeFancy;
@@ -12,7 +11,7 @@ import net.minecraft.core.world.generate.feature.WorldFeature;
 import java.util.Random;
 
 // Referenced classes of package net.minecraft.src:
-//            BiomeGenBase, SpawnListEntry, WolfMob, WorldGenForest,
+//            BiomeGenBase, SpawnListEntry, MobWolf, WorldGenForest,
 //            WorldGenBigTree, WorldGenTrees, WorldGenerator
 
 public class BiomeSeasonalForest extends Biome
@@ -21,7 +20,7 @@ public class BiomeSeasonalForest extends Biome
     public BiomeSeasonalForest(String key)
     {
     	super(key);
-        spawnableCreatureList.add(new SpawnListEntry(WolfMob.class, 25));
+        spawnableCreatureList.add(new SpawnListEntry(MobWolf.class, 25));
     }
     @Override
 	public WorldFeature getRandomWorldGenForTrees(Random random)
diff --git a/src/main/java/net/minecraft/core/world/biome/BiomeTaiga.java b/src/main/java/net/minecraft/core/world/biome/BiomeTaiga.java
index 4892ea059..f40813bd3 100644
--- a/src/main/java/net/minecraft/core/world/biome/BiomeTaiga.java
+++ b/src/main/java/net/minecraft/core/world/biome/BiomeTaiga.java
@@ -1,7 +1,6 @@
 package net.minecraft.core.world.biome;
 
-import net.minecraft.core.entity.animal.WolfMob;
-import net.minecraft.core.block.Block;
+import net.minecraft.core.entity.animal.MobWolf;
 import net.minecraft.core.block.Blocks;
 import net.minecraft.core.entity.SpawnListEntry;
 import net.minecraft.core.world.generate.feature.tree.WorldFeatureTreeTaigaBushy;
@@ -11,7 +10,7 @@ import net.minecraft.core.world.generate.feature.WorldFeature;
 import java.util.Random;
 
 // Referenced classes of package net.minecraft.src:
-//            BiomeGenBase, SpawnListEntry, WolfMob, WorldGenTaiga1,
+//            BiomeGenBase, SpawnListEntry, MobWolf, WorldGenTaiga1,
 //            WorldGenTaiga2, WorldGenerator
 
 public class BiomeTaiga extends Biome
@@ -20,7 +19,7 @@ public class BiomeTaiga extends Biome
     public BiomeTaiga(String key)
     {
     	super(key);
-        spawnableCreatureList.add(new SpawnListEntry(WolfMob.class, 25));
+        spawnableCreatureList.add(new SpawnListEntry(MobWolf.class, 25));
     }
 
     @Override
diff --git a/src/main/java/net/minecraft/core/world/chunk/Chunk.java b/src/main/java/net/minecraft/core/world/chunk/Chunk.java
index 117f63147..60c7ea72f 100644
--- a/src/main/java/net/minecraft/core/world/chunk/Chunk.java
+++ b/src/main/java/net/minecraft/core/world/chunk/Chunk.java
@@ -1,8 +1,7 @@
 package net.minecraft.core.world.chunk;
 
 import com.mojang.logging.LogUtils;
-import net.minecraft.core.block.Blocks;
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.entity.Entity;
 import net.minecraft.core.util.helper.MathHelper;
 import net.minecraft.core.util.phys.AABB;
@@ -10,7 +9,7 @@ import net.minecraft.core.world.World;
 import net.minecraft.core.enums.LightLayer;
 import net.minecraft.core.world.biome.Biome;
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.EntityBlock;
+import net.minecraft.core.block.BlockTileEntity;
 import org.jetbrains.annotations.Nullable;
 import org.slf4j.Logger;
 
@@ -30,7 +29,7 @@ public class Chunk
     public int lowestY;
     public final int xPosition;
     public final int zPosition;
-    public Map<ChunkPosition, BlockEntity> blockEntityMap;
+    public Map<ChunkPosition, TileEntity> blockEntityMap;
     public double[] temperature;
     public double[] humidity;
     public double[] variety;
@@ -488,63 +487,63 @@ public class Chunk
         return y >= getHeightValue(x, z);
     }
 
-    public BlockEntity getBlockEntity(int x, int y, int z)
+    public TileEntity getBlockEntity(int x, int y, int z)
     {
         ChunkPosition pos = new ChunkPosition(x, y, z);
-        BlockEntity blockEntity = blockEntityMap.get(pos);
-        if(blockEntity == null)
+        TileEntity tileEntity = blockEntityMap.get(pos);
+        if(tileEntity == null)
         {
             int id = getBlockID(x, y, z);
             if(!Block.isEntityTile[id])
             {
                 return null;
             }
-            EntityBlock tileEntityBlock = (EntityBlock)Block.blocksList[id];
+            BlockTileEntity tileEntityBlock = (BlockTileEntity)Block.blocksList[id];
             tileEntityBlock.onBlockPlacedByWorld(world, xPosition * CHUNK_SIZE_X + x, y, zPosition * CHUNK_SIZE_Z + z);
-            blockEntity = blockEntityMap.get(pos);
+            tileEntity = blockEntityMap.get(pos);
         }
-        if(blockEntity != null && blockEntity.isInvalid())
+        if(tileEntity != null && tileEntity.isInvalid())
         {
             blockEntityMap.remove(pos);
             return null;
         }
         else
         {
-            return blockEntity;
+            return tileEntity;
         }
     }
 
-    public void addBlockEntity(BlockEntity blockEntity)
+    public void addBlockEntity(TileEntity tileEntity)
     {
-        int x = blockEntity.x - xPosition * CHUNK_SIZE_X;
-        int y = blockEntity.y;
-        int z = blockEntity.z - zPosition * CHUNK_SIZE_Z;
-        setBlockEntity(x, y, z, blockEntity);
+        int x = tileEntity.x - xPosition * CHUNK_SIZE_X;
+        int y = tileEntity.y;
+        int z = tileEntity.z - zPosition * CHUNK_SIZE_Z;
+        setBlockEntity(x, y, z, tileEntity);
         if(isLoaded)
         {
-            world.loadedBlockEntityList.add(blockEntity);
+            world.loadedTileEntityList.add(tileEntity);
         }
     }
 
     /**
      * @return True if the specified block entity was set
      */
-    public boolean setBlockEntity(int x, int y, int z, BlockEntity blockEntity)
+    public boolean setBlockEntity(int x, int y, int z, TileEntity tileEntity)
     {
         ChunkPosition chunkposition = new ChunkPosition(x, y, z);
-        blockEntity.worldObj = world;
-        blockEntity.x = xPosition * CHUNK_SIZE_X + x;
-        blockEntity.y = y;
-        blockEntity.z = zPosition * CHUNK_SIZE_Z + z;
-        if (!(Block.blocksList[getBlockID(x, y, z)] instanceof EntityBlock))
+        tileEntity.worldObj = world;
+        tileEntity.x = xPosition * CHUNK_SIZE_X + x;
+        tileEntity.y = y;
+        tileEntity.z = zPosition * CHUNK_SIZE_Z + z;
+        if (!(Block.blocksList[getBlockID(x, y, z)] instanceof BlockTileEntity))
         {
             LOGGER.warn("Attempted to place a tile entity where there was no entity tile!");
             Thread.dumpStack();
         }
         else
         {
-            blockEntity.validate();
-            BlockEntity previous = blockEntityMap.put(chunkposition, blockEntity);
+            tileEntity.validate();
+            TileEntity previous = blockEntityMap.put(chunkposition, tileEntity);
             if (previous != null) {
                 previous.invalidate();
             }
@@ -558,18 +557,18 @@ public class Chunk
         ChunkPosition pos = new ChunkPosition(x, y, z);
         if(isLoaded)
         {
-            BlockEntity blockEntity = blockEntityMap.remove(pos);
-            if(blockEntity != null)
+            TileEntity tileEntity = blockEntityMap.remove(pos);
+            if(tileEntity != null)
             {
-                blockEntity.invalidate();
+                tileEntity.invalidate();
             }
         }
     }
 
-    public void removeBlockEntity(BlockEntity blockEntity) {
-        if (isLoaded && blockEntity != null && blockEntityMap.containsValue(blockEntity)) {
-            blockEntityMap.remove(new ChunkPosition(blockEntity.x & (Chunk.CHUNK_SIZE_X - 1), blockEntity.y, blockEntity.z & (Chunk.CHUNK_SIZE_Z - 1)));
-            blockEntity.invalidate();
+    public void removeBlockEntity(TileEntity tileEntity) {
+        if (isLoaded && tileEntity != null && blockEntityMap.containsValue(tileEntity)) {
+            blockEntityMap.remove(new ChunkPosition(tileEntity.x & (Chunk.CHUNK_SIZE_X - 1), tileEntity.y, tileEntity.z & (Chunk.CHUNK_SIZE_Z - 1)));
+            tileEntity.invalidate();
         }
     }
 
@@ -586,8 +585,8 @@ public class Chunk
     public void onUnload()
     {
         isLoaded = false;
-        BlockEntity tileentity;
-        for(Iterator<BlockEntity> iterator = blockEntityMap.values().iterator(); iterator.hasNext(); tileentity.invalidate())
+        TileEntity tileentity;
+        for(Iterator<TileEntity> iterator = blockEntityMap.values().iterator(); iterator.hasNext(); tileentity.invalidate())
         {
             tileentity = iterator.next();
         }
diff --git a/src/main/java/net/minecraft/core/world/chunk/ChunkCache.java b/src/main/java/net/minecraft/core/world/chunk/ChunkCache.java
index a0b76faa2..49a1ea7b2 100644
--- a/src/main/java/net/minecraft/core/world/chunk/ChunkCache.java
+++ b/src/main/java/net/minecraft/core/world/chunk/ChunkCache.java
@@ -2,14 +2,14 @@ package net.minecraft.core.world.chunk;
 
 import net.minecraft.client.render.LightmapHelper;
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.enums.LightLayer;
 import net.minecraft.core.world.World;
 
 // Referenced classes of package net.minecraft.src:
 //            IBlockAccess, World, Chunk, WorldProvider, 
-//            Block, Material, BlockEntity, WorldChunkManager
+//            Block, Material, TileEntity, WorldChunkManager
 
 import net.minecraft.core.world.WorldSource;
 import net.minecraft.core.world.biome.Biome;
@@ -75,7 +75,7 @@ public class ChunkCache
     }
 
     @Override
-	public BlockEntity getBlockEntity(int x, int y, int z)
+	public TileEntity getBlockEntity(int x, int y, int z)
     {
         int l = Math.floorDiv(x, Chunk.CHUNK_SIZE_X) - chunkX;
         int i1 = Math.floorDiv(z, Chunk.CHUNK_SIZE_Z) - chunkZ;
diff --git a/src/main/java/net/minecraft/core/world/chunk/ChunkLoaderLegacy.java b/src/main/java/net/minecraft/core/world/chunk/ChunkLoaderLegacy.java
index ca34189d2..8775c43a0 100644
--- a/src/main/java/net/minecraft/core/world/chunk/ChunkLoaderLegacy.java
+++ b/src/main/java/net/minecraft/core/world/chunk/ChunkLoaderLegacy.java
@@ -2,7 +2,8 @@ package net.minecraft.core.world.chunk;
 
 import com.mojang.logging.LogUtils;
 import net.minecraft.core.Global;
-import net.minecraft.core.block.entity.BlockEntityDispatcher;
+import net.minecraft.core.block.entity.TileEntityDispatcher;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.entity.Entity;
 import net.minecraft.core.entity.EntityDispatcher;
 import com.mojang.nbt.Tag;
@@ -17,7 +18,6 @@ import net.minecraft.core.world.chunk.writer.ChunkWriter;
 import net.minecraft.core.world.data.ChunkNibbleArray;
 import net.minecraft.core.world.data.ChunkUnsignedByteArray;
 import net.minecraft.core.world.World;
-import net.minecraft.core.block.entity.BlockEntity;
 import net.minecraft.core.world.save.LevelData;
 import org.slf4j.Logger;
 
@@ -206,10 +206,10 @@ public class ChunkLoaderLegacy
         // Write tile entities
         ListTag tileEntityListTag = new ListTag();
         CompoundTag tileEntityTag;
-        for (BlockEntity blockEntity : chunk.blockEntityMap.values())
+        for (TileEntity tileEntity : chunk.blockEntityMap.values())
         {
             tileEntityTag = new CompoundTag();
-            blockEntity.writeToNBT(tileEntityTag);
+            tileEntity.writeToNBT(tileEntityTag);
             tileEntityListTag.addTag(tileEntityTag);
         }
         tag.put("TileEntities", tileEntityListTag);
@@ -304,10 +304,10 @@ public class ChunkLoaderLegacy
                 if (tileEntityTagBase instanceof CompoundTag)
                 {
                     CompoundTag tileEntityTag = (CompoundTag) tileEntityTagBase;
-                    BlockEntity blockEntity = BlockEntityDispatcher.createAndLoadEntity(tileEntityTag);
-                    if (blockEntity != null)
+                    TileEntity tileEntity = TileEntityDispatcher.createAndLoadEntity(tileEntityTag);
+                    if (tileEntity != null)
                     {
-                        chunk.addBlockEntity(blockEntity);
+                        chunk.addBlockEntity(tileEntity);
                     }
                 }
             }
diff --git a/src/main/java/net/minecraft/core/world/chunk/DisplayChunk.java b/src/main/java/net/minecraft/core/world/chunk/DisplayChunk.java
index bb96abdfd..e0eea2729 100644
--- a/src/main/java/net/minecraft/core/world/chunk/DisplayChunk.java
+++ b/src/main/java/net/minecraft/core/world/chunk/DisplayChunk.java
@@ -1,6 +1,6 @@
 package net.minecraft.core.world.chunk;
 
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.enums.LightLayer;
 import net.minecraft.core.world.World;
 
@@ -10,7 +10,7 @@ public class DisplayChunk extends EmptyChunk{
     public static int displayBlockPosX = 0;
     public static int displayBlockPosY = 0;
     public static int displayBlockPosZ = 0;
-    public static BlockEntity displayBlockEntity = null;
+    public static TileEntity displayTileEntity = null;
     public DisplayChunk(World world, int x, int z) {
         super(world, x, z);
     }
@@ -36,14 +36,14 @@ public class DisplayChunk extends EmptyChunk{
         return 15;
     }
     @Override
-    public boolean setBlockEntity(int x, int y, int z, BlockEntity blockEntity)
+    public boolean setBlockEntity(int x, int y, int z, TileEntity tileEntity)
     {
         if (x == displayBlockPosX && y == displayBlockPosY && z == displayBlockPosZ){
-            displayBlockEntity = blockEntity;
-            displayBlockEntity.worldObj = world;
-            displayBlockEntity.x = x;
-            displayBlockEntity.y = y;
-            displayBlockEntity.z = z;
+            displayTileEntity = tileEntity;
+            displayTileEntity.worldObj = world;
+            displayTileEntity.x = x;
+            displayTileEntity.y = y;
+            displayTileEntity.z = z;
         }
         return true;
     }
@@ -52,24 +52,24 @@ public class DisplayChunk extends EmptyChunk{
     public void removeBlockEntity(int x, int y, int z)
     {
         if (x == displayBlockPosX && y == displayBlockPosY && z == displayBlockPosZ){
-            displayBlockEntity = null;
+            displayTileEntity = null;
         }
     }
     @Override
-    public BlockEntity getBlockEntity(int x, int y, int z)
+    public TileEntity getBlockEntity(int x, int y, int z)
     {
         if (x == displayBlockPosX && y == displayBlockPosY && z == displayBlockPosZ){
-            return displayBlockEntity;
+            return displayTileEntity;
         }
         return null;
     }
-    public static void setDisplayTileEntity(World world, BlockEntity entity){
-        displayBlockEntity = entity;
-        if (displayBlockEntity != null){
-            displayBlockEntity.worldObj = world;
-            displayBlockEntity.x = DisplayChunk.displayBlockPosX;
-            displayBlockEntity.y = DisplayChunk.displayBlockPosY;
-            displayBlockEntity.z = DisplayChunk.displayBlockPosZ;
+    public static void setDisplayTileEntity(World world, TileEntity entity){
+        displayTileEntity = entity;
+        if (displayTileEntity != null){
+            displayTileEntity.worldObj = world;
+            displayTileEntity.x = DisplayChunk.displayBlockPosX;
+            displayTileEntity.y = DisplayChunk.displayBlockPosY;
+            displayTileEntity.z = DisplayChunk.displayBlockPosZ;
         }
     }
 }
diff --git a/src/main/java/net/minecraft/core/world/chunk/EmptyChunk.java b/src/main/java/net/minecraft/core/world/chunk/EmptyChunk.java
index 53d31aecb..cc171872e 100644
--- a/src/main/java/net/minecraft/core/world/chunk/EmptyChunk.java
+++ b/src/main/java/net/minecraft/core/world/chunk/EmptyChunk.java
@@ -1,6 +1,6 @@
 package net.minecraft.core.world.chunk;
 
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.entity.Entity;
 import net.minecraft.core.util.phys.AABB;
 import net.minecraft.core.enums.LightLayer;
@@ -12,7 +12,7 @@ import java.util.Random;
 
 // Referenced classes of package net.minecraft.src:
 //            Chunk, World, EnumSkyBlock, Entity, 
-//            BlockEntity, AxisAlignedBB
+//            TileEntity, AxisAlignedBB
 
 public class EmptyChunk extends Chunk
 {
@@ -119,18 +119,18 @@ public class EmptyChunk extends Chunk
     }
 
     @Override
-	public BlockEntity getBlockEntity(int x, int y, int z)
+	public TileEntity getBlockEntity(int x, int y, int z)
     {
         return null;
     }
 
     @Override
-	public void addBlockEntity(BlockEntity blockEntity)
+	public void addBlockEntity(TileEntity tileEntity)
     {
     }
 
     @Override
-	public boolean setBlockEntity(int x, int y, int z, BlockEntity blockEntity)
+	public boolean setBlockEntity(int x, int y, int z, TileEntity tileEntity)
     {
         return false;
     }
diff --git a/src/main/java/net/minecraft/core/world/generate/chunk/perlin/nether/ChunkDecoratorNether.java b/src/main/java/net/minecraft/core/world/generate/chunk/perlin/nether/ChunkDecoratorNether.java
index 992d35d66..4f5131175 100644
--- a/src/main/java/net/minecraft/core/world/generate/chunk/perlin/nether/ChunkDecoratorNether.java
+++ b/src/main/java/net/minecraft/core/world/generate/chunk/perlin/nether/ChunkDecoratorNether.java
@@ -1,7 +1,7 @@
 package net.minecraft.core.world.generate.chunk.perlin.nether;
 
+import net.minecraft.core.block.BlockSand;
 import net.minecraft.core.block.Blocks;
-import net.minecraft.core.block.SandBlock;
 import net.minecraft.core.world.World;
 import net.minecraft.core.world.chunk.Chunk;
 import net.minecraft.core.world.generate.chunk.ChunkDecorator;
@@ -31,7 +31,7 @@ public class ChunkDecoratorNether
 
         Random rand = new Random((long) chunkX * 0x4f9939f508L + (long) chunkZ * 0x1ef1565bd5L);
 
-        SandBlock.fallInstantly = true;
+        BlockSand.fallInstantly = true;
         int x = chunkX * 16;
         int z = chunkZ * 16;
         for(int i = 0; i < 8; i++)
@@ -90,7 +90,7 @@ public class ChunkDecoratorNether
             (new WorldFeaturePumice(32)).place(world, rand, xf, yf, zf);
         }
 
-        SandBlock.fallInstantly = false;
+        BlockSand.fallInstantly = false;
 
     }
 }
diff --git a/src/main/java/net/minecraft/core/world/generate/chunk/perlin/overworld/ChunkDecoratorOverworld.java b/src/main/java/net/minecraft/core/world/generate/chunk/perlin/overworld/ChunkDecoratorOverworld.java
index 6adbd7322..15907905c 100644
--- a/src/main/java/net/minecraft/core/world/generate/chunk/perlin/overworld/ChunkDecoratorOverworld.java
+++ b/src/main/java/net/minecraft/core/world/generate/chunk/perlin/overworld/ChunkDecoratorOverworld.java
@@ -1,16 +1,16 @@
 package net.minecraft.core.world.generate.chunk.perlin.overworld;
 
-import net.minecraft.core.block.BaseLeavesBlock;
+import net.minecraft.core.block.BlockLeavesBase;
 import net.minecraft.core.block.Block;
 import net.minecraft.core.block.Blocks;
-import net.minecraft.core.block.CoalOreBlock;
-import net.minecraft.core.block.DiamondOreBlock;
-import net.minecraft.core.block.GoldOreBlock;
-import net.minecraft.core.block.IronOreBlock;
-import net.minecraft.core.block.LapisOreBlock;
-import net.minecraft.core.block.MossBlock;
-import net.minecraft.core.block.RedstoneOreBlock;
-import net.minecraft.core.block.SandBlock;
+import net.minecraft.core.block.BlockOreCoal;
+import net.minecraft.core.block.BlockOreDiamond;
+import net.minecraft.core.block.BlockOreGold;
+import net.minecraft.core.block.BlockOreIron;
+import net.minecraft.core.block.BlockOreLapis;
+import net.minecraft.core.block.BlockMoss;
+import net.minecraft.core.block.BlockOreRedstone;
+import net.minecraft.core.block.BlockSand;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.world.World;
 import net.minecraft.core.world.biome.Biomes;
@@ -57,7 +57,7 @@ public class ChunkDecoratorOverworld
 
         float oreHeightModifier = rangeY / 128f;
 
-        SandBlock.fallInstantly = true;
+        BlockSand.fallInstantly = true;
         int x = chunkX * 16;
         int z = chunkZ * 16;
         int y = world.getHeightValue(x + 16, z + 16);
@@ -196,49 +196,49 @@ public class ChunkDecoratorOverworld
             int j6 = x + rand.nextInt(16);
             int k9 = minY + rand.nextInt(rangeY);
             int j12 = z + rand.nextInt(16);
-            new WorldFeatureOre(CoalOreBlock.variantMap, 16).place(world, rand, j6, k9, j12);
+            new WorldFeatureOre(BlockOreCoal.variantMap, 16).place(world, rand, j6, k9, j12);
         }
 
         for (int j3 = 0; j3 < (20 * oreHeightModifier); j3++) {
             int k6 = x + rand.nextInt(16);
             int l9 = minY + rand.nextInt(rangeY / 2);
             int k12 = z + rand.nextInt(16);
-            (new WorldFeatureOre(IronOreBlock.variantMap, 8)).place(world, rand, k6, l9, k12);
+            (new WorldFeatureOre(BlockOreIron.variantMap, 8)).place(world, rand, k6, l9, k12);
         }
 
         for (int k3 = 0; k3 < (2 * oreHeightModifier); k3++) {
             int l6 = x + rand.nextInt(16);
             int i10 = minY + rand.nextInt(rangeY / 4);
             int l12 = z + rand.nextInt(16);
-            (new WorldFeatureOre(GoldOreBlock.variantMap, 8)).place(world, rand, l6, i10, l12);
+            (new WorldFeatureOre(BlockOreGold.variantMap, 8)).place(world, rand, l6, i10, l12);
         }
 
         for (int l3 = 0; l3 < (8 * oreHeightModifier); l3++) {
             int i7 = x + rand.nextInt(16);
             int j10 = minY + rand.nextInt(rangeY / 8);
             int i13 = z + rand.nextInt(16);
-            (new WorldFeatureOre(RedstoneOreBlock.variantMap, 7)).place(world, rand, i7, j10, i13);
+            (new WorldFeatureOre(BlockOreRedstone.variantMap, 7)).place(world, rand, i7, j10, i13);
         }
 
         for (int i4 = 0; i4 < oreHeightModifier; i4++) {
             int j7 = x + rand.nextInt(16);
             int k10 = minY + rand.nextInt(rangeY / 8);
             int j13 = z + rand.nextInt(16);
-            (new WorldFeatureOre(DiamondOreBlock.variantMap, 7)).place(world, rand, j7, k10, j13);
+            (new WorldFeatureOre(BlockOreDiamond.variantMap, 7)).place(world, rand, j7, k10, j13);
         }
 
         for (int i4 = 0; i4 < oreHeightModifier; i4++) {
             int j7 = x + rand.nextInt(16);
             int k10 = minY + rand.nextInt(rangeY / 2);
             int j13 = z + rand.nextInt(16);
-            (new WorldFeatureOre(MossBlock.variantMap, 32)).place(world, rand, j7, k10, j13);
+            (new WorldFeatureOre(BlockMoss.variantMap, 32)).place(world, rand, j7, k10, j13);
         }
 
         for (int j4 = 0; j4 < oreHeightModifier; j4++) {
             int k7 = x + rand.nextInt(16);
             int l10 = minY + rand.nextInt(rangeY / 8) + rand.nextInt(rangeY / 8);
             int k13 = z + rand.nextInt(16);
-            (new WorldFeatureOre(LapisOreBlock.variantMap, 6)).place(world, rand, k7, l10, k13);
+            (new WorldFeatureOre(BlockOreLapis.variantMap, 6)).place(world, rand, k7, l10, k13);
         }
 
 
@@ -289,7 +289,7 @@ public class ChunkDecoratorOverworld
         }
         if (treeDensityOverride != -1) treeDensity = treeDensityOverride;
         try {
-        	BaseLeavesBlock.enableDecay = false;
+        	BlockLeavesBase.enableDecay = false;
             for (int i11 = 0; i11 < treeDensity; i11++) {
                 int l13 = x + rand.nextInt(16) + 8;
                 int j14 = z + rand.nextInt(16) + 8;
@@ -298,7 +298,7 @@ public class ChunkDecoratorOverworld
                 feature.place(world, rand, l13, world.getHeightValue(l13, j14), j14);
             }
         }finally {
-        	BaseLeavesBlock.enableDecay = true;
+        	BlockLeavesBase.enableDecay = true;
         }
         byte byteReeds = 0;
         if (biome == Biomes.OVERWORLD_RAINFOREST) {
@@ -591,7 +591,7 @@ public class ChunkDecoratorOverworld
 
         }
 
-        SandBlock.fallInstantly = false;
+        BlockSand.fallInstantly = false;
         world.scheduledUpdatesAreImmediate = false;
     }
 }
diff --git a/src/main/java/net/minecraft/core/world/generate/chunk/perlin/overworld/hell/ChunkDecoratorOverworldHell.java b/src/main/java/net/minecraft/core/world/generate/chunk/perlin/overworld/hell/ChunkDecoratorOverworldHell.java
index ecfc7652b..707d503b7 100644
--- a/src/main/java/net/minecraft/core/world/generate/chunk/perlin/overworld/hell/ChunkDecoratorOverworldHell.java
+++ b/src/main/java/net/minecraft/core/world/generate/chunk/perlin/overworld/hell/ChunkDecoratorOverworldHell.java
@@ -1,14 +1,13 @@
 package net.minecraft.core.world.generate.chunk.perlin.overworld.hell;
 
-import net.minecraft.core.block.Block;
+import net.minecraft.core.block.BlockSand;
 import net.minecraft.core.block.Blocks;
-import net.minecraft.core.block.CoalOreBlock;
-import net.minecraft.core.block.DiamondOreBlock;
-import net.minecraft.core.block.GoldOreBlock;
-import net.minecraft.core.block.IronOreBlock;
-import net.minecraft.core.block.LapisOreBlock;
-import net.minecraft.core.block.RedstoneOreBlock;
-import net.minecraft.core.block.SandBlock;
+import net.minecraft.core.block.BlockOreCoal;
+import net.minecraft.core.block.BlockOreDiamond;
+import net.minecraft.core.block.BlockOreGold;
+import net.minecraft.core.block.BlockOreIron;
+import net.minecraft.core.block.BlockOreLapis;
+import net.minecraft.core.block.BlockOreRedstone;
 import net.minecraft.core.world.World;
 import net.minecraft.core.world.biome.Biome;
 import net.minecraft.core.world.chunk.Chunk;
@@ -45,7 +44,7 @@ public class ChunkDecoratorOverworldHell
 
         float oreHeightModifier = rangeY / 128f;
 
-        SandBlock.fallInstantly = true;
+        BlockSand.fallInstantly = true;
         int x = chunkX * 16;
         int z = chunkZ * 16;
         int y = world.getHeightValue(x + 16, z + 16);
@@ -149,7 +148,7 @@ public class ChunkDecoratorOverworldHell
             int j6 = x + rand.nextInt(16);
             int k9 = minY + rand.nextInt(rangeY);
             int j12 = z + rand.nextInt(16);
-            (new WorldFeatureOre(CoalOreBlock.variantMap, 16)).place(world, rand, j6, k9, j12);
+            (new WorldFeatureOre(BlockOreCoal.variantMap, 16)).place(world, rand, j6, k9, j12);
         }
 
         for(int j3 = 0; j3 < 20; j3++)
@@ -157,7 +156,7 @@ public class ChunkDecoratorOverworldHell
             int k6 = x + rand.nextInt(16);
             int l9 = minY + rand.nextInt(rangeY / 2);
             int k12 = z + rand.nextInt(16);
-            (new WorldFeatureOre(IronOreBlock.variantMap, 8)).place(world, rand, k6, l9, k12);
+            (new WorldFeatureOre(BlockOreIron.variantMap, 8)).place(world, rand, k6, l9, k12);
         }
 
         for(int k3 = 0; k3 < 2; k3++)
@@ -165,7 +164,7 @@ public class ChunkDecoratorOverworldHell
             int l6 = x + rand.nextInt(16);
             int i10 = minY + rand.nextInt(rangeY / 4);
             int l12 = z + rand.nextInt(16);
-            (new WorldFeatureOre(GoldOreBlock.variantMap, 8)).place(world, rand, l6, i10, l12);
+            (new WorldFeatureOre(BlockOreGold.variantMap, 8)).place(world, rand, l6, i10, l12);
         }
 
         for(int l3 = 0; l3 < 8; l3++)
@@ -173,7 +172,7 @@ public class ChunkDecoratorOverworldHell
             int i7 = x + rand.nextInt(16);
             int j10 = minY + rand.nextInt(rangeY / 8);
             int i13 = z + rand.nextInt(16);
-            (new WorldFeatureOre(RedstoneOreBlock.variantMap, 7)).place(world, rand, i7, j10, i13);
+            (new WorldFeatureOre(BlockOreRedstone.variantMap, 7)).place(world, rand, i7, j10, i13);
         }
 
         for(int i4 = 0; i4 < 1; i4++)
@@ -181,7 +180,7 @@ public class ChunkDecoratorOverworldHell
             int j7 = x + rand.nextInt(16);
             int k10 = minY + rand.nextInt(rangeY / 8);
             int j13 = z + rand.nextInt(16);
-            (new WorldFeatureOre(DiamondOreBlock.variantMap, 7)).place(world, rand, j7, k10, j13);
+            (new WorldFeatureOre(BlockOreDiamond.variantMap, 7)).place(world, rand, j7, k10, j13);
         }
 
         for(int j4 = 0; j4 < 1; j4++)
@@ -189,7 +188,7 @@ public class ChunkDecoratorOverworldHell
             int k7 = x + rand.nextInt(16);
             int l10 = minY + rand.nextInt(rangeY / 8) + rand.nextInt(rangeY / 8);
             int k13 = z + rand.nextInt(16);
-            (new WorldFeatureOre(LapisOreBlock.variantMap, 6)).place(world, rand, k7, l10, k13);
+            (new WorldFeatureOre(BlockOreLapis.variantMap, 6)).place(world, rand, k7, l10, k13);
         }
 
         d = 0.5D;
@@ -247,7 +246,7 @@ public class ChunkDecoratorOverworldHell
             world.setBlockWithNotify(x, minY + world.getWorldType().getOceanY() - 1, z, world.getWorldType().getOceanBlockId());
         }
 
-        SandBlock.fallInstantly = false;
+        BlockSand.fallInstantly = false;
 
     }
 }
diff --git a/src/main/java/net/minecraft/core/world/generate/chunk/perlin/overworld/retro/ChunkDecoratorOverworldRetro.java b/src/main/java/net/minecraft/core/world/generate/chunk/perlin/overworld/retro/ChunkDecoratorOverworldRetro.java
index 7cca23900..183992307 100644
--- a/src/main/java/net/minecraft/core/world/generate/chunk/perlin/overworld/retro/ChunkDecoratorOverworldRetro.java
+++ b/src/main/java/net/minecraft/core/world/generate/chunk/perlin/overworld/retro/ChunkDecoratorOverworldRetro.java
@@ -1,12 +1,12 @@
 package net.minecraft.core.world.generate.chunk.perlin.overworld.retro;
 
+import net.minecraft.core.block.BlockSand;
 import net.minecraft.core.block.Blocks;
-import net.minecraft.core.block.CoalOreBlock;
-import net.minecraft.core.block.DiamondOreBlock;
-import net.minecraft.core.block.GoldOreBlock;
-import net.minecraft.core.block.IronOreBlock;
-import net.minecraft.core.block.RedstoneOreBlock;
-import net.minecraft.core.block.SandBlock;
+import net.minecraft.core.block.BlockOreCoal;
+import net.minecraft.core.block.BlockOreDiamond;
+import net.minecraft.core.block.BlockOreGold;
+import net.minecraft.core.block.BlockOreIron;
+import net.minecraft.core.block.BlockOreRedstone;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.world.World;
 import net.minecraft.core.world.chunk.Chunk;
@@ -46,7 +46,7 @@ public class ChunkDecoratorOverworldRetro
         int maxY = world.getWorldType().getMaxY();
         int rangeY = (maxY + 1) - minY;
 
-        SandBlock.fallInstantly = true;
+        BlockSand.fallInstantly = true;
         int k = chunkX * 16;
         int l = chunkZ * 16;
         Random rand = new Random(world.getRandomSeed());
@@ -91,7 +91,7 @@ public class ChunkDecoratorOverworldRetro
             int i5 = k + rand.nextInt(16);
             int j7 = minY + rand.nextInt(rangeY);
             int i12 = l + rand.nextInt(16);
-            (new WorldFeatureOre(CoalOreBlock.variantMap, 16)).place(world, rand, i5, j7, i12);
+            (new WorldFeatureOre(BlockOreCoal.variantMap, 16)).place(world, rand, i5, j7, i12);
         }
 
         for (int k2 = 0; k2 < 20; k2++)
@@ -99,7 +99,7 @@ public class ChunkDecoratorOverworldRetro
             int j5 = k + rand.nextInt(16);
             int k7 = minY + rand.nextInt(rangeY / 2);
             int j12 = l + rand.nextInt(16);
-            (new WorldFeatureOre(IronOreBlock.variantMap, 8)).place(world, rand, j5, k7, j12);
+            (new WorldFeatureOre(BlockOreIron.variantMap, 8)).place(world, rand, j5, k7, j12);
         }
 
         for (int i3 = 0; i3 < 2; i3++)
@@ -107,7 +107,7 @@ public class ChunkDecoratorOverworldRetro
             int k5 = k + rand.nextInt(16);
             int l7 = minY + rand.nextInt(rangeY / 4);
             int k12 = l + rand.nextInt(16);
-            (new WorldFeatureOre(GoldOreBlock.variantMap, 8)).place(world, rand, k5, l7, k12);
+            (new WorldFeatureOre(BlockOreGold.variantMap, 8)).place(world, rand, k5, l7, k12);
         }
 
         for (int j3 = 0; j3 < 8; j3++)
@@ -115,7 +115,7 @@ public class ChunkDecoratorOverworldRetro
             int l5 = k + rand.nextInt(16);
             int i8 = minY + rand.nextInt(rangeY / 8);
             int l12 = l + rand.nextInt(16);
-            (new WorldFeatureOre(RedstoneOreBlock.variantMap, 7)).place(world, rand, l5, i8, l12);
+            (new WorldFeatureOre(BlockOreRedstone.variantMap, 7)).place(world, rand, l5, i8, l12);
         }
 
         for (int k3 = 0; k3 < 1; k3++)
@@ -123,7 +123,7 @@ public class ChunkDecoratorOverworldRetro
             int i6 = k + rand.nextInt(16);
             int j8 = minY + rand.nextInt(rangeY / 8);
             int i13 = l + rand.nextInt(16);
-            (new WorldFeatureOre(DiamondOreBlock.variantMap, 7)).place(world, rand, i6, j8, i13);
+            (new WorldFeatureOre(BlockOreDiamond.variantMap, 7)).place(world, rand, i6, j8, i13);
         }
 
         d = 0.5D;
@@ -227,7 +227,7 @@ public class ChunkDecoratorOverworldRetro
 
         }
 
-        SandBlock.fallInstantly = false;
+        BlockSand.fallInstantly = false;
         world.scheduledUpdatesAreImmediate = false;
     }
 }
diff --git a/src/main/java/net/minecraft/core/world/generate/chunk/skyblock/ChunkDecoratorSkyblock.java b/src/main/java/net/minecraft/core/world/generate/chunk/skyblock/ChunkDecoratorSkyblock.java
index b78b7a0ef..b2994f9ea 100644
--- a/src/main/java/net/minecraft/core/world/generate/chunk/skyblock/ChunkDecoratorSkyblock.java
+++ b/src/main/java/net/minecraft/core/world/generate/chunk/skyblock/ChunkDecoratorSkyblock.java
@@ -1,8 +1,8 @@
 package net.minecraft.core.world.generate.chunk.skyblock;
 
 import net.minecraft.core.block.Blocks;
-import net.minecraft.core.block.entity.BlockEntity;
-import net.minecraft.core.block.entity.ChestBlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
+import net.minecraft.core.block.entity.TileEntityChest;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.item.Items;
 import net.minecraft.core.world.chunk.Chunk;
@@ -21,9 +21,9 @@ public class ChunkDecoratorSkyblock
         }
         if (contains(chunk, 4, -3)) {
             chunk.setBlockIDWithMetadata(4 & (Chunk.CHUNK_SIZE_X - 1), 67, -3 & (Chunk.CHUNK_SIZE_Z - 1), Blocks.CHEST_PLANKS_OAK.id, 3);
-            BlockEntity blockEntity = chunk.getBlockEntity(4 & (Chunk.CHUNK_SIZE_X - 1), 67, -3 & (Chunk.CHUNK_SIZE_Z - 1));
-            if (blockEntity instanceof ChestBlockEntity) {
-                ChestBlockEntity chestEntity = (ChestBlockEntity) blockEntity;
+            TileEntity tileEntity = chunk.getBlockEntity(4 & (Chunk.CHUNK_SIZE_X - 1), 67, -3 & (Chunk.CHUNK_SIZE_Z - 1));
+            if (tileEntity instanceof TileEntityChest) {
+                TileEntityChest chestEntity = (TileEntityChest) tileEntity;
                 chestEntity.setItem(0, new ItemStack(Items.BUCKET_LAVA, 1));
                 chestEntity.setItem(1, new ItemStack(Blocks.ICE, 1));
             }
@@ -32,9 +32,9 @@ public class ChunkDecoratorSkyblock
         // Desert island
         if (contains(chunk, -67, 0)) {
             chunk.setBlockIDWithMetadata(-67 & (Chunk.CHUNK_SIZE_X - 1), 67, 0 & (Chunk.CHUNK_SIZE_Z - 1), Blocks.CHEST_PLANKS_OAK.id, 1);
-            BlockEntity blockEntity = chunk.getBlockEntity(-67 & (Chunk.CHUNK_SIZE_X - 1), 67, 0 & (Chunk.CHUNK_SIZE_Z - 1));
-            if (blockEntity instanceof ChestBlockEntity) {
-                ChestBlockEntity chestEntity = (ChestBlockEntity) blockEntity;
+            TileEntity tileEntity = chunk.getBlockEntity(-67 & (Chunk.CHUNK_SIZE_X - 1), 67, 0 & (Chunk.CHUNK_SIZE_Z - 1));
+            if (tileEntity instanceof TileEntityChest) {
+                TileEntityChest chestEntity = (TileEntityChest) tileEntity;
                 chestEntity.setItem(0, new ItemStack(Blocks.OBSIDIAN, 14));
                 chestEntity.setItem(1, new ItemStack(Items.SEEDS_PUMPKIN, 1));
             }
diff --git a/src/main/java/net/minecraft/core/world/generate/chunk/skyblock/ChunkDecoratorSkyblockNether.java b/src/main/java/net/minecraft/core/world/generate/chunk/skyblock/ChunkDecoratorSkyblockNether.java
index 8fac9549e..7d792f205 100644
--- a/src/main/java/net/minecraft/core/world/generate/chunk/skyblock/ChunkDecoratorSkyblockNether.java
+++ b/src/main/java/net/minecraft/core/world/generate/chunk/skyblock/ChunkDecoratorSkyblockNether.java
@@ -1,13 +1,12 @@
 package net.minecraft.core.world.generate.chunk.skyblock;
 
 import net.minecraft.core.block.Blocks;
-import net.minecraft.core.block.entity.BlockEntity;
-import net.minecraft.core.block.entity.ChestBlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
+import net.minecraft.core.block.entity.TileEntityChest;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.item.Items;
 import net.minecraft.core.world.chunk.Chunk;
 import net.minecraft.core.world.generate.chunk.ChunkDecorator;
-import net.minecraft.core.world.generate.chunk.ChunkGeneratorResult;
 
 public class ChunkDecoratorSkyblockNether
     implements ChunkDecorator {
@@ -25,12 +24,12 @@ public class ChunkDecoratorSkyblockNether
         // Chest
         if (contains(chunk, 1, -1)) {
             chunk.setBlockIDWithMetadata(1 & (Chunk.CHUNK_SIZE_X - 1), 66, -1 & (Chunk.CHUNK_SIZE_Z - 1), Blocks.CHEST_PLANKS_OAK.id, 3);
-            BlockEntity blockEntity = chunk.getBlockEntity(1 & (Chunk.CHUNK_SIZE_X - 1), 66, -1 & (Chunk.CHUNK_SIZE_Z - 1));
-            if (blockEntity != null) {
-                ChestBlockEntity chestBlockEntity = (ChestBlockEntity) blockEntity;
-                chestBlockEntity.setItem(0, new ItemStack(Blocks.SAPLING_BIRCH, 1));
-                chestBlockEntity.setItem(1, new ItemStack(Items.SUGARCANE, 1));
-                chestBlockEntity.setItem(2, new ItemStack(Blocks.ICE, 1));
+            TileEntity tileEntity = chunk.getBlockEntity(1 & (Chunk.CHUNK_SIZE_X - 1), 66, -1 & (Chunk.CHUNK_SIZE_Z - 1));
+            if (tileEntity != null) {
+                TileEntityChest tileEntityChest = (TileEntityChest) tileEntity;
+                tileEntityChest.setItem(0, new ItemStack(Blocks.SAPLING_BIRCH, 1));
+                tileEntityChest.setItem(1, new ItemStack(Items.SUGARCANE, 1));
+                tileEntityChest.setItem(2, new ItemStack(Blocks.ICE, 1));
             }
         }
 
diff --git a/src/main/java/net/minecraft/core/world/generate/feature/WorldFeatureAlgae.java b/src/main/java/net/minecraft/core/world/generate/feature/WorldFeatureAlgae.java
index e84fc53c0..046289f85 100644
--- a/src/main/java/net/minecraft/core/world/generate/feature/WorldFeatureAlgae.java
+++ b/src/main/java/net/minecraft/core/world/generate/feature/WorldFeatureAlgae.java
@@ -8,7 +8,7 @@ import net.minecraft.core.world.World;
 import java.util.Random;
 
 // Referenced classes of package net.minecraft.src:
-//            WorldGenerator, World, Block, FlowerBlock
+//            WorldGenerator, World, Block, BlockFlower
 
 public class WorldFeatureAlgae extends WorldFeature
 {
diff --git a/src/main/java/net/minecraft/core/world/generate/feature/WorldFeatureDeadBush.java b/src/main/java/net/minecraft/core/world/generate/feature/WorldFeatureDeadBush.java
index a4f341063..2fa2c29c7 100644
--- a/src/main/java/net/minecraft/core/world/generate/feature/WorldFeatureDeadBush.java
+++ b/src/main/java/net/minecraft/core/world/generate/feature/WorldFeatureDeadBush.java
@@ -1,6 +1,6 @@
 package net.minecraft.core.world.generate.feature;
 
-import net.minecraft.core.block.BaseLeavesBlock;
+import net.minecraft.core.block.BlockLeavesBase;
 import net.minecraft.core.block.Block;
 import net.minecraft.core.world.World;
 
@@ -8,7 +8,7 @@ import java.util.Random;
 
 // Referenced classes of package net.minecraft.src:
 //            WorldGenerator, World, Block, BlockLeaves, 
-//            FlowerBlock
+//            BlockFlower
 
 public class WorldFeatureDeadBush extends WorldFeature
 {
@@ -22,7 +22,7 @@ public class WorldFeatureDeadBush extends WorldFeature
     @Override
 	public boolean place(World world, Random random, int x, int y, int z)
     {
-        for(int l = 0; ((l = world.getBlockId(x, y, z)) == 0 || Block.blocksList[l] instanceof BaseLeavesBlock) && y > 0; y--) { }
+        for(int l = 0; ((l = world.getBlockId(x, y, z)) == 0 || Block.blocksList[l] instanceof BlockLeavesBase) && y > 0; y--) { }
         for(int i1 = 0; i1 < 4; i1++)
         {
             int j1 = (x + random.nextInt(8)) - random.nextInt(8);
diff --git a/src/main/java/net/minecraft/core/world/generate/feature/WorldFeatureDungeon.java b/src/main/java/net/minecraft/core/world/generate/feature/WorldFeatureDungeon.java
index 62b47929f..4d5e8db7b 100644
--- a/src/main/java/net/minecraft/core/world/generate/feature/WorldFeatureDungeon.java
+++ b/src/main/java/net/minecraft/core/world/generate/feature/WorldFeatureDungeon.java
@@ -2,10 +2,9 @@ package net.minecraft.core.world.generate.feature;
 
 import net.minecraft.core.WeightedRandomBag;
 import net.minecraft.core.WeightedRandomLootObject;
-import net.minecraft.core.block.ChestBlock;
-import net.minecraft.core.block.RotatableBlock;
-import net.minecraft.core.block.entity.ChestBlockEntity;
-import net.minecraft.core.block.entity.MobSpawnerBlockEntity;
+import net.minecraft.core.block.BlockChest;
+import net.minecraft.core.block.entity.TileEntityChest;
+import net.minecraft.core.block.entity.TileEntityMobSpawner;
 import net.minecraft.core.item.Item;
 import net.minecraft.core.item.Items;
 import net.minecraft.core.item.ItemStack;
@@ -17,7 +16,7 @@ import java.util.Random;
 
 // Referenced classes of package net.minecraft.src:
 //            WorldGenerator, World, Material, Block, 
-//            ChestBlockEntity, MobSpawnerBlockEntity, ItemStack, Item
+//            TileEntityChest, TileEntityMobSpawner, ItemStack, Item
 
 public class WorldFeatureDungeon extends WorldFeature
 {
@@ -160,8 +159,8 @@ public class WorldFeatureDungeon extends WorldFeature
                     continue;
                 }
                 world.setBlockWithNotify(k3, l3, i4, Blocks.CHEST_PLANKS_OAK.id);
-                ChestBlock.setDefaultDirection(world, k3, l3, i4);
-                ChestBlockEntity tileentitychest = (ChestBlockEntity)world.getBlockEntity(k3, l3, i4);
+                BlockChest.setDefaultDirection(world, k3, l3, i4);
+                TileEntityChest tileentitychest = (TileEntityChest)world.getBlockEntity(k3, l3, i4);
                 int k4 = 0;
                 do
                 {
@@ -181,7 +180,7 @@ public class WorldFeatureDungeon extends WorldFeature
         }
 
         world.setBlockWithNotify(x, y, z, Blocks.MOBSPAWNER.id);
-        MobSpawnerBlockEntity tileentitymobspawner = (MobSpawnerBlockEntity)world.getBlockEntity(x, y, z);
+        TileEntityMobSpawner tileentitymobspawner = (TileEntityMobSpawner)world.getBlockEntity(x, y, z);
         tileentitymobspawner.setMobId(pickMobSpawner(random));
         return true;
     }
diff --git a/src/main/java/net/minecraft/core/world/generate/feature/WorldFeatureFire.java b/src/main/java/net/minecraft/core/world/generate/feature/WorldFeatureFire.java
index 20762b94b..61f0b4e85 100644
--- a/src/main/java/net/minecraft/core/world/generate/feature/WorldFeatureFire.java
+++ b/src/main/java/net/minecraft/core/world/generate/feature/WorldFeatureFire.java
@@ -6,7 +6,7 @@ import net.minecraft.core.world.World;
 import java.util.Random;
 
 // Referenced classes of package net.minecraft.src:
-//            WorldGenerator, World, Block, FireBlock
+//            WorldGenerator, World, Block, BlockFire
 
 public class WorldFeatureFire extends WorldFeature
 {
diff --git a/src/main/java/net/minecraft/core/world/generate/feature/WorldFeatureFlowers.java b/src/main/java/net/minecraft/core/world/generate/feature/WorldFeatureFlowers.java
index 570c494d3..4f12e879d 100644
--- a/src/main/java/net/minecraft/core/world/generate/feature/WorldFeatureFlowers.java
+++ b/src/main/java/net/minecraft/core/world/generate/feature/WorldFeatureFlowers.java
@@ -1,15 +1,13 @@
 package net.minecraft.core.world.generate.feature;
 
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.Blocks;
-import net.minecraft.core.block.StackedFlowerBlock;
+import net.minecraft.core.block.BlockFlowerStackable;
 import net.minecraft.core.world.World;
 
 import java.util.Random;
-import java.util.Stack;
 
 // Referenced classes of package net.minecraft.src:
-//            WorldGenerator, World, Block, FlowerBlock
+//            WorldGenerator, World, Block, BlockFlower
 
 public class WorldFeatureFlowers extends WorldFeature
 {
@@ -36,7 +34,7 @@ public class WorldFeatureFlowers extends WorldFeature
             if(world.isAirBlock(i1, j1, k1) && Block.blocksList[plantBlockId].canBlockStay(world, i1, j1, k1))
             {
                 final int metadata;
-                if (Block.getBlock(plantBlockId) instanceof StackedFlowerBlock) {
+                if (Block.getBlock(plantBlockId) instanceof BlockFlowerStackable) {
                     final int stackSize;
                     if (varyStackSize) {
                         stackSize = getStackSize(random);
@@ -44,7 +42,7 @@ public class WorldFeatureFlowers extends WorldFeature
                         stackSize = 0;
                     }
 
-                    metadata = StackedFlowerBlock.setStackCount(0, stackSize);
+                    metadata = BlockFlowerStackable.setStackCount(0, stackSize);
                 } else {
                     metadata = 0;
                 }
diff --git a/src/main/java/net/minecraft/core/world/generate/feature/WorldFeatureLabyrinth.java b/src/main/java/net/minecraft/core/world/generate/feature/WorldFeatureLabyrinth.java
index 3a62fe44c..3924369fd 100644
--- a/src/main/java/net/minecraft/core/world/generate/feature/WorldFeatureLabyrinth.java
+++ b/src/main/java/net/minecraft/core/world/generate/feature/WorldFeatureLabyrinth.java
@@ -2,11 +2,11 @@ package net.minecraft.core.world.generate.feature;
 
 import net.minecraft.core.WeightedRandomBag;
 import net.minecraft.core.WeightedRandomLootObject;
-import net.minecraft.core.block.ChestBlock;
-import net.minecraft.core.block.RotatableBlock;
-import net.minecraft.core.block.entity.ChestBlockEntity;
-import net.minecraft.core.block.entity.DispenserBlockEntity;
-import net.minecraft.core.block.entity.MobSpawnerBlockEntity;
+import net.minecraft.core.block.BlockChest;
+import net.minecraft.core.block.BlockRotatable;
+import net.minecraft.core.block.entity.TileEntityChest;
+import net.minecraft.core.block.entity.TileEntityDispenser;
+import net.minecraft.core.block.entity.TileEntityMobSpawner;
 import net.minecraft.core.block.tag.BlockTags;
 import net.minecraft.core.item.Item;
 import net.minecraft.core.item.Items;
@@ -21,7 +21,7 @@ import java.util.Random;
 
 // Referenced classes of package net.minecraft.src:
 //            WorldGenerator, World, Material, Block,
-//            ChestBlockEntity, MobSpawnerBlockEntity, ItemStack, Item
+//            TileEntityChest, TileEntityMobSpawner, ItemStack, Item
 public class WorldFeatureLabyrinth extends WorldFeature
 {
     public WorldFeatureLabyrinth()
@@ -146,10 +146,10 @@ public class WorldFeatureLabyrinth extends WorldFeature
                         if (!generateTrapOnWall && (xWallCheck || zWallCheck)) {
                             if ((x == blockZ || z == blockZ) && y == blockY) {
                                 world.setBlockWithNotify(x, y, z, Blocks.MOTION_SENSOR_IDLE.id);
-                                RotatableBlock.setDefaultDirection(world, x, y, z);
+                                BlockRotatable.setDefaultDirection(world, x, y, z);
                                 world.setBlockWithNotify(x, y - 1, z, Blocks.DISPENSER_COBBLE_STONE.id);
-                                RotatableBlock.setDefaultDirection(world, x, y - 1, z);
-                                DispenserBlockEntity tileEntityDispenser = (DispenserBlockEntity) world.getBlockEntity(x, blockY - 1, z);
+                                BlockRotatable.setDefaultDirection(world, x, y - 1, z);
+                                TileEntityDispenser tileEntityDispenser = (TileEntityDispenser) world.getBlockEntity(x, blockY - 1, z);
                                 int k4 = 0;
                                 while (k4 < 3) {
                                     ItemStack itemstack = pickDispenserLootItem(random);
@@ -377,8 +377,8 @@ public class WorldFeatureLabyrinth extends WorldFeature
         int chestZ = blockZ + random.nextInt(size-1) - (size-1);
         if(canReplace(world, chestX, blockY-2, chestZ)) {
             world.setBlockWithNotify(chestX, blockY - 1, chestZ, Blocks.CHEST_PLANKS_OAK.id);
-            ChestBlock.setDefaultDirection(world, chestX, blockY - 1, chestZ);
-            ChestBlockEntity tileentitychest = (ChestBlockEntity) world.getBlockEntity(chestX, blockY - 1, chestZ);
+            BlockChest.setDefaultDirection(world, chestX, blockY - 1, chestZ);
+            TileEntityChest tileentitychest = (TileEntityChest) world.getBlockEntity(chestX, blockY - 1, chestZ);
             int k4 = 0;
             while (k4 < 10) {
                 ItemStack itemstack = pickCheckLootItem(random);
@@ -391,7 +391,7 @@ public class WorldFeatureLabyrinth extends WorldFeature
         if (doSpawner)
         {
             world.setBlockWithNotify(blockX, blockY-1, blockZ, Blocks.MOBSPAWNER.id);
-            MobSpawnerBlockEntity tileentitymobspawner = (MobSpawnerBlockEntity)world.getBlockEntity(blockX, blockY-1, blockZ);
+            TileEntityMobSpawner tileentitymobspawner = (TileEntityMobSpawner)world.getBlockEntity(blockX, blockY-1, blockZ);
             if(tileentitymobspawner != null)
                 tileentitymobspawner.setMobId(pickMobSpawner(random));
         }
diff --git a/src/main/java/net/minecraft/core/world/generate/feature/WorldFeatureMeadow.java b/src/main/java/net/minecraft/core/world/generate/feature/WorldFeatureMeadow.java
index 55d70cdef..dfcbdfab3 100644
--- a/src/main/java/net/minecraft/core/world/generate/feature/WorldFeatureMeadow.java
+++ b/src/main/java/net/minecraft/core/world/generate/feature/WorldFeatureMeadow.java
@@ -1,8 +1,8 @@
 package net.minecraft.core.world.generate.feature;
 
-import net.minecraft.core.block.BaseLeavesBlock;
+import net.minecraft.core.block.BlockLeavesBase;
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.StackedFlowerBlock;
+import net.minecraft.core.block.BlockFlowerStackable;
 import net.minecraft.core.world.World;
 
 import java.util.Random;
@@ -18,7 +18,7 @@ public class WorldFeatureMeadow extends WorldFeature
     @Override
     public boolean place(World world, Random random, int x, int y, int z)
     {
-        for(int l = 0; ((l = world.getBlockId(x, y, z)) == 0 || Block.blocksList[l] instanceof BaseLeavesBlock) && y > 0; y--) { }
+        for(int l = 0; ((l = world.getBlockId(x, y, z)) == 0 || Block.blocksList[l] instanceof BlockLeavesBase) && y > 0; y--) { }
         for(int i1 = 0; i1 < 128; i1++)
         {
             int j1 = (x + random.nextInt(8)) - random.nextInt(8);
@@ -31,7 +31,7 @@ public class WorldFeatureMeadow extends WorldFeature
 
             if(world.isAirBlock(j1, k1, l1) && Block.blocksList[flowerId].canBlockStay(world, j1, k1, l1))
             {
-                final int meta = StackedFlowerBlock.setStackCount(0, WorldFeatureFlowers.getStackSize(random));
+                final int meta = BlockFlowerStackable.setStackCount(0, WorldFeatureFlowers.getStackSize(random));
                 world.setBlockAndMetadata(j1, k1, l1, flowerId, meta);
             }
         }
diff --git a/src/main/java/net/minecraft/core/world/generate/feature/WorldFeatureSpinifexPatch.java b/src/main/java/net/minecraft/core/world/generate/feature/WorldFeatureSpinifexPatch.java
index fdd84aa88..8404db992 100644
--- a/src/main/java/net/minecraft/core/world/generate/feature/WorldFeatureSpinifexPatch.java
+++ b/src/main/java/net/minecraft/core/world/generate/feature/WorldFeatureSpinifexPatch.java
@@ -1,22 +1,22 @@
 package net.minecraft.core.world.generate.feature;
 
 import net.minecraft.core.block.Block;
+import net.minecraft.core.block.BlockLeavesBase;
 import net.minecraft.core.block.Blocks;
-import net.minecraft.core.block.BaseLeavesBlock;
 import net.minecraft.core.world.World;
 
 import java.util.Random;
 
 // Referenced classes of package net.minecraft.src:
 //            WorldGenerator, World, Block, BlockLeaves,
-//            FlowerBlock
+//            BlockFlower
 
 public class WorldFeatureSpinifexPatch extends WorldFeature
 {
     @Override
     public boolean place(World world, Random random, int x, int y, int z)
     {
-        for(int l; ((l = world.getBlockId(x, y, z)) == 0 || Block.blocksList[l] instanceof BaseLeavesBlock) && y > 0; y--) { }
+        for(int l; ((l = world.getBlockId(x, y, z)) == 0 || Block.blocksList[l] instanceof BlockLeavesBase) && y > 0; y--) { }
         for(int i1 = 0; i1 < 64; i1++)
         {
             int j1 = (x + random.nextInt(4)) - random.nextInt(4);
diff --git a/src/main/java/net/minecraft/core/world/generate/feature/WorldFeatureSponge.java b/src/main/java/net/minecraft/core/world/generate/feature/WorldFeatureSponge.java
index a01737acc..5fcc33dcc 100644
--- a/src/main/java/net/minecraft/core/world/generate/feature/WorldFeatureSponge.java
+++ b/src/main/java/net/minecraft/core/world/generate/feature/WorldFeatureSponge.java
@@ -7,7 +7,7 @@ import net.minecraft.core.world.World;
 import java.util.Random;
 
 // Referenced classes of package net.minecraft.src:
-//            WorldGenerator, World, Block, FlowerBlock
+//            WorldGenerator, World, Block, BlockFlower
 
 public class WorldFeatureSponge extends WorldFeature
 {
diff --git a/src/main/java/net/minecraft/core/world/generate/feature/WorldFeatureTallGrass.java b/src/main/java/net/minecraft/core/world/generate/feature/WorldFeatureTallGrass.java
index 2d517af7d..9be154998 100644
--- a/src/main/java/net/minecraft/core/world/generate/feature/WorldFeatureTallGrass.java
+++ b/src/main/java/net/minecraft/core/world/generate/feature/WorldFeatureTallGrass.java
@@ -1,6 +1,6 @@
 package net.minecraft.core.world.generate.feature;
 
-import net.minecraft.core.block.BaseLeavesBlock;
+import net.minecraft.core.block.BlockLeavesBase;
 import net.minecraft.core.block.Block;
 import net.minecraft.core.world.World;
 
@@ -8,7 +8,7 @@ import java.util.Random;
 
 // Referenced classes of package net.minecraft.src:
 //            WorldGenerator, World, Block, BlockLeaves, 
-//            FlowerBlock
+//            BlockFlower
 
 public class WorldFeatureTallGrass extends WorldFeature
 {
@@ -23,7 +23,7 @@ public class WorldFeatureTallGrass extends WorldFeature
 	public boolean place(World world, Random random, int x, int y, int z)
     {
         int l;
-        while (((l = world.getBlockId(x, y, z)) == 0 || Block.blocksList[l] instanceof BaseLeavesBlock) && y > 0) {
+        while (((l = world.getBlockId(x, y, z)) == 0 || Block.blocksList[l] instanceof BlockLeavesBase) && y > 0) {
             y--;
         }
         for(int i1 = 0; i1 < 128; i1++)
diff --git a/src/main/java/net/minecraft/core/world/generate/feature/tree/WorldFeatureTreePalm.java b/src/main/java/net/minecraft/core/world/generate/feature/tree/WorldFeatureTreePalm.java
index 4e6c7371e..0a9ac8c46 100644
--- a/src/main/java/net/minecraft/core/world/generate/feature/tree/WorldFeatureTreePalm.java
+++ b/src/main/java/net/minecraft/core/world/generate/feature/tree/WorldFeatureTreePalm.java
@@ -1,10 +1,10 @@
 package net.minecraft.core.world.generate.feature.tree;
 
 import net.minecraft.core.block.Block;
+import net.minecraft.core.block.BlockLeavesBase;
 import net.minecraft.core.block.Blocks;
-import net.minecraft.core.block.FlowerBlock;
-import net.minecraft.core.block.BaseLeavesBlock;
-import net.minecraft.core.block.LogBlock;
+import net.minecraft.core.block.BlockFlower;
+import net.minecraft.core.block.BlockLog;
 import net.minecraft.core.block.tag.BlockTags;
 import net.minecraft.core.util.helper.Direction;
 import net.minecraft.core.util.helper.MathHelper;
@@ -179,13 +179,13 @@ public class WorldFeatureTreePalm extends WorldFeature {
 		Block block = Block.getBlock(id);
 		
 		// TODO Create BlockTag and apply to all trees
-		if(block instanceof LogBlock) {
+		if(block instanceof BlockLog) {
 			return true;
 		}
-		if(block instanceof BaseLeavesBlock) {
+		if(block instanceof BlockLeavesBase) {
 			return true;
 		}
-		if(block instanceof FlowerBlock) {
+		if(block instanceof BlockFlower) {
 			return true;
 		}
 		return false;
diff --git a/src/main/java/net/minecraft/core/world/pathfinder/PathFinder.java b/src/main/java/net/minecraft/core/world/pathfinder/PathFinder.java
index da45714df..5b6fa2c05 100644
--- a/src/main/java/net/minecraft/core/world/pathfinder/PathFinder.java
+++ b/src/main/java/net/minecraft/core/world/pathfinder/PathFinder.java
@@ -1,6 +1,6 @@
 package net.minecraft.core.world.pathfinder;
 
-import net.minecraft.core.block.DoorBlock;
+import net.minecraft.core.block.BlockDoor;
 import net.minecraft.core.entity.Entity;
 import net.minecraft.core.block.Block;
 import net.minecraft.core.block.material.Material;
@@ -191,10 +191,10 @@ public class PathFinder
                     {
                         continue;
                     }
-                    if(Block.blocksList[k1] instanceof DoorBlock)
+                    if(Block.blocksList[k1] instanceof BlockDoor)
                     {
                         int l1 = worldSource.getBlockMetadata(x1, y1, z1);
-                        if(!DoorBlock.isOpen(l1))
+                        if(!BlockDoor.isOpen(l1))
                         {
                             return 0;
                         }
diff --git a/src/main/java/net/minecraft/core/world/saveddata/maps/ItemMapSavedData.java b/src/main/java/net/minecraft/core/world/saveddata/maps/ItemMapSavedData.java
index 5d8ba3343..b6daf353d 100644
--- a/src/main/java/net/minecraft/core/world/saveddata/maps/ItemMapSavedData.java
+++ b/src/main/java/net/minecraft/core/world/saveddata/maps/ItemMapSavedData.java
@@ -1,7 +1,7 @@
 package net.minecraft.core.world.saveddata.maps;
 
 import net.minecraft.core.block.Blocks;
-import net.minecraft.core.block.entity.FlagBlockEntity;
+import net.minecraft.core.block.entity.TileEntityFlag;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.item.ItemStack;
 import com.mojang.nbt.CompoundTag;
@@ -157,7 +157,7 @@ public class ItemMapSavedData extends SavedData
         }
     }
 
-    public boolean createNewWaypoint(FlagBlockEntity flag)
+    public boolean createNewWaypoint(TileEntityFlag flag)
     {
         if(mapWaypoints.size() >= MAX_WAYPOINTS)
             return false;
diff --git a/src/main/java/net/minecraft/core/world/weather/WeatherSnow.java b/src/main/java/net/minecraft/core/world/weather/WeatherSnow.java
index 274711ec0..117107415 100644
--- a/src/main/java/net/minecraft/core/world/weather/WeatherSnow.java
+++ b/src/main/java/net/minecraft/core/world/weather/WeatherSnow.java
@@ -4,7 +4,7 @@ import java.util.Random;
 
 import net.minecraft.core.block.Block;
 import net.minecraft.core.block.Blocks;
-import net.minecraft.core.block.SnowLayerBlock;
+import net.minecraft.core.block.BlockLayerSnow;
 import net.minecraft.core.enums.LightLayer;
 import net.minecraft.core.util.helper.Direction;
 import net.minecraft.core.world.World;
@@ -105,7 +105,7 @@ zLoop:		for (int z = 0; z < 16; z++)
 			else if (world.weatherManager.getWeatherPower() > 0.5f && blockId == Blocks.LAYER_SNOW.id && world.getSeasonManager().getCurrentSeason() != null && (world.getSeasonManager().getCurrentSeason().hasDeeperSnow || biome == Biomes.OVERWORLD_GLACIER))
 			{
 				if(snow) {
-					((SnowLayerBlock)Blocks.LAYER_SNOW).accumulate(world, x, y, z);
+					((BlockLayerSnow)Blocks.LAYER_SNOW).accumulate(world, x, y, z);
 				}
 			}
 			else if (blockIdBelow == Blocks.FLUID_WATER_STILL.id && world.getBlockMetadata(x, y - 1, z) == 0)
diff --git a/src/main/java/net/minecraft/core/world/weather/WeatherStorm.java b/src/main/java/net/minecraft/core/world/weather/WeatherStorm.java
index 5a1b384e7..4daebdace 100644
--- a/src/main/java/net/minecraft/core/world/weather/WeatherStorm.java
+++ b/src/main/java/net/minecraft/core/world/weather/WeatherStorm.java
@@ -2,7 +2,7 @@ package net.minecraft.core.world.weather;
 
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.entity.Entity;
-import net.minecraft.core.entity.LightningEntity;
+import net.minecraft.core.entity.EntityLightning;
 import net.minecraft.core.entity.Mob;
 import net.minecraft.core.util.helper.MathHelper;
 import net.minecraft.core.util.phys.AABB;
@@ -60,7 +60,7 @@ public class WeatherStorm extends WeatherRain
 
 			if (world.canBlockBeRainedOn(targetX, targetY, targetZ))
 			{
-				world.addWeatherEffect(new LightningEntity(world, targetX, targetY, targetZ));
+				world.addWeatherEffect(new EntityLightning(world, targetX, targetY, targetZ));
 			}			
 		}
 	}
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index d2a22376b..ef17ed199 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -19,6 +19,7 @@ import net.minecraft.core.net.NetworkManager;
 import net.minecraft.core.net.PropertyManager;
 import net.minecraft.core.net.ServerCommandEntry;
 import net.minecraft.core.net.command.util.CommandHelper;
+import net.minecraft.server.entity.player.PlayerServer;
 import net.minecraft.server.net.command.ConsoleCommandSource;
 import net.minecraft.core.net.packet.SetTimePacket;
 import net.minecraft.core.player.gamemode.Gamemode;
@@ -45,7 +46,6 @@ import net.minecraft.core.world.type.WorldType;
 import net.minecraft.core.world.type.WorldTypes;
 import net.minecraft.server.entity.EntityTracker;
 import net.minecraft.server.entity.ServerSkinVariantList;
-import net.minecraft.server.entity.player.ServerPlayer;
 import net.minecraft.server.gui.ServerGui;
 import net.minecraft.server.net.NetworkListenThread;
 import net.minecraft.server.net.PlayerList;
@@ -556,7 +556,7 @@ public class MinecraftServer
                         {
                             timeSinceLastTick -= 10L;
                             i++;
-                            for (ServerPlayer player : playerList.playerEntities) {
+                            for (PlayerServer player : playerList.playerEntities) {
                                 player.tickSendChunks();
                             }
                             if (i % 5 == 0) {
diff --git a/src/main/java/net/minecraft/server/entity/EntityTracker.java b/src/main/java/net/minecraft/server/entity/EntityTracker.java
index 451bcd842..dcd609924 100644
--- a/src/main/java/net/minecraft/server/entity/EntityTracker.java
+++ b/src/main/java/net/minecraft/server/entity/EntityTracker.java
@@ -6,7 +6,7 @@ import net.minecraft.core.net.entity.NetEntityHandler;
 import net.minecraft.core.net.packet.Packet;
 import net.minecraft.core.util.collection.IntHashMap;
 import net.minecraft.server.MinecraftServer;
-import net.minecraft.server.entity.player.ServerPlayer;
+import net.minecraft.server.entity.player.PlayerServer;
 
 import java.util.ArrayList;
 import java.util.HashSet;
@@ -53,9 +53,9 @@ public class EntityTracker {
 
     public void untrackEntity(Entity entity)
     {
-        if(entity instanceof ServerPlayer)
+        if(entity instanceof PlayerServer)
         {
-            ServerPlayer entityplayermp = (ServerPlayer)entity;
+            PlayerServer entityplayermp = (PlayerServer)entity;
             EntityTrackerEntry entitytrackerentry1;
             for(Iterator<EntityTrackerEntry> iterator = trackedEntitySet.iterator(); iterator.hasNext(); entitytrackerentry1.removeFromTrackedPlayers(entityplayermp))
             {
@@ -76,14 +76,14 @@ public class EntityTracker {
         ArrayList<Entity> arraylist = new ArrayList<>();
         for (EntityTrackerEntry entitytrackerentry : trackedEntitySet) {
             entitytrackerentry.tick(mcServer.getDimensionWorld(dimension).players);
-            if (entitytrackerentry.playerEntitiesUpdated && (entitytrackerentry.trackedEntity instanceof ServerPlayer)) {
+            if (entitytrackerentry.playerEntitiesUpdated && (entitytrackerentry.trackedEntity instanceof PlayerServer)) {
                 arraylist.add(entitytrackerentry.trackedEntity);
             }
         }
 label0:
         for(int i = 0; i < arraylist.size(); i++)
         {
-            ServerPlayer entityplayermp = (ServerPlayer)arraylist.get(i);
+            PlayerServer entityplayermp = (PlayerServer)arraylist.get(i);
             Iterator<EntityTrackerEntry> iterator1 = trackedEntitySet.iterator();
             do
             {
@@ -119,7 +119,7 @@ label0:
         }
     }
 
-    public void removeTrackedPlayerSymmetric(ServerPlayer entityplayermp)
+    public void removeTrackedPlayerSymmetric(PlayerServer entityplayermp)
     {
         EntityTrackerEntry entitytrackerentry;
         for(Iterator<EntityTrackerEntry> iterator = trackedEntitySet.iterator(); iterator.hasNext(); entitytrackerentry.removeTrackedPlayerSymmetric(entityplayermp))
diff --git a/src/main/java/net/minecraft/server/entity/EntityTrackerEntry.java b/src/main/java/net/minecraft/server/entity/EntityTrackerEntry.java
index 1edadfeeb..e2ceb9bb4 100644
--- a/src/main/java/net/minecraft/server/entity/EntityTrackerEntry.java
+++ b/src/main/java/net/minecraft/server/entity/EntityTrackerEntry.java
@@ -17,7 +17,7 @@ import net.minecraft.core.net.packet.EntityTagDataPacket;
 import net.minecraft.core.net.packet.SetEquippedItemPacket;
 import net.minecraft.core.util.helper.MathHelper;
 import net.minecraft.core.world.data.SynchedEntityData;
-import net.minecraft.server.entity.player.ServerPlayer;
+import net.minecraft.server.entity.player.PlayerServer;
 
 import java.util.HashSet;
 import java.util.List;
@@ -43,7 +43,7 @@ public class EntityTrackerEntry {
     private final boolean shouldSendMotionUpdates;
     private int ticksSinceLastTeleport;
     public boolean playerEntitiesUpdated;
-    public Set<ServerPlayer> trackedPlayers;
+    public Set<PlayerServer> trackedPlayers;
     public EntityTrackerEntry(Entity entity, int trackingDistance, int packetDelay, boolean shouldSendMotionUpdates) {
         updateCounter = 0;
         ticksSinceLastTeleport = 0;
@@ -150,15 +150,15 @@ public class EntityTrackerEntry {
     }
 
     public void sendPacketToTrackedPlayers(Packet packet) {
-        for (ServerPlayer playerMP : trackedPlayers){
+        for (PlayerServer playerMP : trackedPlayers){
             playerMP.playerNetServerHandler.sendPacket(packet);
         }
     }
 
     public void sendPacketToTrackedPlayersAndTrackedEntity(Packet packet) {
         sendPacketToTrackedPlayers(packet);
-        if(trackedEntity instanceof ServerPlayer) {
-            ((ServerPlayer)trackedEntity).playerNetServerHandler.sendPacket(packet);
+        if(trackedEntity instanceof PlayerServer) {
+            ((PlayerServer)trackedEntity).playerNetServerHandler.sendPacket(packet);
         }
     }
 
@@ -166,11 +166,11 @@ public class EntityTrackerEntry {
         sendPacketToTrackedPlayers(new RemoveEntityPacket(trackedEntity.id));
     }
 
-    public void removeFromTrackedPlayers(ServerPlayer playerMP) {
+    public void removeFromTrackedPlayers(PlayerServer playerMP) {
         trackedPlayers.remove(playerMP);
     }
 
-    public void updatePlayerEntity(ServerPlayer entityplayermp) {
+    public void updatePlayerEntity(PlayerServer entityplayermp) {
         if(entityplayermp == trackedEntity) {
             return;
         }
@@ -208,10 +208,10 @@ public class EntityTrackerEntry {
 
     public void updatePlayerEntities(List<Player> list) {
         for (Player player : list) {
-            updatePlayerEntity((ServerPlayer) player);
+            updatePlayerEntity((PlayerServer) player);
         }
     }
-    public void removeTrackedPlayerSymmetric(ServerPlayer playerMP) {
+    public void removeTrackedPlayerSymmetric(PlayerServer playerMP) {
         if(trackedPlayers.contains(playerMP)) {
             trackedPlayers.remove(playerMP);
             playerMP.playerNetServerHandler.sendPacket(new RemoveEntityPacket(trackedEntity.id));
diff --git a/src/main/java/net/minecraft/server/entity/player/ServerPlayer.java b/src/main/java/net/minecraft/server/entity/player/PlayerServer.java
similarity index 90%
rename from src/main/java/net/minecraft/server/entity/player/ServerPlayer.java
rename to src/main/java/net/minecraft/server/entity/player/PlayerServer.java
index 6c1b5e3c8..eca2e4066 100644
--- a/src/main/java/net/minecraft/server/entity/player/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/entity/player/PlayerServer.java
@@ -2,12 +2,12 @@ package net.minecraft.server.entity.player;
 
 import net.minecraft.core.achievement.stat.Stat;
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.PortalBlock;
+import net.minecraft.core.block.BlockPortal;
 import net.minecraft.core.block.entity.*;
 import net.minecraft.core.crafting.ContainerListener;
 import net.minecraft.core.entity.*;
 import net.minecraft.core.entity.player.Player;
-import net.minecraft.core.entity.projectile.ArrowProjectile;
+import net.minecraft.core.entity.projectile.ProjectileArrow;
 import net.minecraft.core.enums.EnumSleepStatus;
 import net.minecraft.core.item.Item;
 import net.minecraft.core.item.IComplexItem;
@@ -23,11 +23,11 @@ import net.minecraft.core.world.IVehicle;
 import net.minecraft.core.world.chunk.Chunk;
 import net.minecraft.core.world.chunk.ChunkSection;
 import net.minecraft.server.entity.EntityTracker;
-import net.minecraft.server.net.handler.ServerPacketHandler;
+import net.minecraft.server.net.handler.PacketHandlerServer;
 import net.minecraft.core.net.packet.*;
 import net.minecraft.server.world.ServerPlayerController;
 import net.minecraft.core.player.gamemode.Gamemode;
-import net.minecraft.core.player.inventory.slot.ResultSlot;
+import net.minecraft.core.player.inventory.slot.SlotResult;
 import net.minecraft.core.util.helper.AES;
 import net.minecraft.core.util.helper.DamageType;
 import net.minecraft.core.util.phys.AABB;
@@ -45,8 +45,8 @@ import java.util.List;
 import java.util.Set;
 import java.util.UUID;
 
-public class ServerPlayer extends Player implements ContainerListener {
-    public ServerPlayer(MinecraftServer minecraftserver, World world, String username, UUID uuid, ServerPlayerController serverPlayerController)
+public class PlayerServer extends Player implements ContainerListener {
+    public PlayerServer(MinecraftServer minecraftserver, World world, String username, UUID uuid, ServerPlayerController serverPlayerController)
     {
         super(world);
         loadedChunks = new LinkedList();
@@ -98,7 +98,7 @@ public class ServerPlayer extends Player implements ContainerListener {
         mcServer.playerList.sendPacketToAllPlayers(new PlayerGamemodePacket(this.id, gamemode.getId()));
         this.gamemode = gamemode;
 
-        InventoryMenu newContainer = gamemode.getContainer(this.inventory, !world.isClientSide);
+        MenuInventory newContainer = gamemode.getContainer(this.inventory, !world.isClientSide);
         if (craftingInventory == inventorySlots)
         {
             craftingInventory = newContainer;
@@ -257,9 +257,9 @@ public class ServerPlayer extends Player implements ContainerListener {
             {
                 return false;
             }
-            if (attacker instanceof ArrowProjectile)
+            if (attacker instanceof ProjectileArrow)
             {
-                ArrowProjectile entityarrow = (ArrowProjectile) attacker;
+                ProjectileArrow entityarrow = (ProjectileArrow) attacker;
                 if (entityarrow.owner instanceof Player)
                 {
                     return false;
@@ -301,7 +301,7 @@ public class ServerPlayer extends Player implements ContainerListener {
 
         if (inPortal)
         {
-            int targetDim = ((PortalBlock) Block.blocksList[portalID]).targetDimension;
+            int targetDim = ((BlockPortal) Block.blocksList[portalID]).targetDimension;
             boolean netherAllowed = mcServer.propertyManager.getBooleanProperty("allow-nether", true);
             boolean paradiseAllowed = mcServer.propertyManager.getBooleanProperty("allow-paradise", false);
             if ((netherAllowed && targetDim == Dimension.NETHER.id) || (paradiseAllowed && targetDim == Dimension.PARADISE.id) || (targetDim != Dimension.NETHER.id && targetDim != Dimension.PARADISE.id))
@@ -376,14 +376,14 @@ public class ServerPlayer extends Player implements ContainerListener {
                     List list = worldserver.getBlockEntitiesWithinBounds(chunkCoord.x * Chunk.CHUNK_SIZE_X, 0, chunkCoord.z * Chunk.CHUNK_SIZE_Z, chunkCoord.x * Chunk.CHUNK_SIZE_X + Chunk.CHUNK_SIZE_X, Chunk.CHUNK_SECTIONS * ChunkSection.SECTION_SIZE_Y, chunkCoord.z * Chunk.CHUNK_SIZE_Z + Chunk.CHUNK_SIZE_Z);
                     for (int j = 0; j < list.size(); j++)
                     {
-                        getTileEntityInfo((BlockEntity) list.get(j));
+                        getTileEntityInfo((TileEntity) list.get(j));
                     }
                 }
             }
         }
     }
 
-    private void getTileEntityInfo(BlockEntity tileentity)
+    private void getTileEntityInfo(TileEntity tileentity)
     {
         if (tileentity != null)
         {
@@ -411,11 +411,11 @@ public class ServerPlayer extends Player implements ContainerListener {
         if (!entity.removed)
         {
             EntityTracker entitytracker = mcServer.getEntityTracker(dimension);
-            if (entity instanceof ItemEntity)
+            if (entity instanceof EntityItem)
             {
                 entitytracker.sendPacketToTrackedPlayers(entity, new TakeItemEntityPacket(entity.id, id));
             }
-            if (entity instanceof ArrowProjectile)
+            if (entity instanceof ProjectileArrow)
             {
                 entitytracker.sendPacketToTrackedPlayers(entity, new TakeItemEntityPacket(entity.id, id));
             }
@@ -482,9 +482,9 @@ public class ServerPlayer extends Player implements ContainerListener {
         super.startRiding(vehicle);
         if (vehicle instanceof Entity) {
             playerNetServerHandler.sendPacket(new SetRidingPacket(this, (Entity) this.vehicle));
-        } else if (vehicle instanceof BlockEntity) {
-            BlockEntity blockEntity = (BlockEntity) vehicle;
-            playerNetServerHandler.sendPacket(new SetRidingPacket(this, blockEntity.x, blockEntity.y, blockEntity.z));
+        } else if (vehicle instanceof TileEntity) {
+            TileEntity tileEntity = (TileEntity) vehicle;
+            playerNetServerHandler.sendPacket(new SetRidingPacket(this, tileEntity.x, tileEntity.y, tileEntity.z));
         }
         playerNetServerHandler.teleport(x, y, z);
     }
@@ -510,7 +510,7 @@ public class ServerPlayer extends Player implements ContainerListener {
         getNextWindowId();
         playerNetServerHandler.sendPacket(new ContainerOpenPacket(currentWindowId, ContainerOpenPacket.TYPE_CRAFTING, "Crafting", 9));
         craftingInventory.onCraftGuiClosed(this);
-        craftingInventory = new CraftingMenu(inventory, world, x, y, z);
+        craftingInventory = new MenuCrafting(inventory, world, x, y, z);
         craftingInventory.containerId = currentWindowId;
         craftingInventory.addSlotListener(this);
     }
@@ -525,19 +525,19 @@ public class ServerPlayer extends Player implements ContainerListener {
 	public void displayContainerScreen(Container container)
     {
         getNextWindowId();
-        ServerPacketHandler.LOGGER.info("{} interacted with chest at ({}, {}, {})", username, x, y, z);
+        PacketHandlerServer.LOGGER.info("{} interacted with chest at ({}, {}, {})", username, x, y, z);
         playerNetServerHandler.sendPacket(new ContainerOpenPacket(currentWindowId, ContainerOpenPacket.TYPE_GENERIC_CONTAINER, container.getName(), container.getContainerSize()));
         craftingInventory.onCraftGuiClosed(this);
-        craftingInventory = new ContainerMenu(inventory, container);
+        craftingInventory = new MenuContainer(inventory, container);
         craftingInventory.containerId = currentWindowId;
         craftingInventory.addSlotListener(this);
     }
 
     @Override
-	public void displayFurnaceScreen(FurnaceBlockEntity blockEntity)
+	public void displayFurnaceScreen(TileEntityFurnace blockEntity)
     {
         getNextWindowId();
-        if (blockEntity instanceof BlastFurnaceBlockEntity)
+        if (blockEntity instanceof TileEntityFurnaceBlastFurnace)
         {
             playerNetServerHandler.sendPacket(new ContainerOpenPacket(currentWindowId, ContainerOpenPacket.TYPE_BLAST_FURNACE, blockEntity.getName(), blockEntity.getContainerSize()));
         }
@@ -546,52 +546,52 @@ public class ServerPlayer extends Player implements ContainerListener {
             playerNetServerHandler.sendPacket(new ContainerOpenPacket(currentWindowId, ContainerOpenPacket.TYPE_FURNACE, blockEntity.getName(), blockEntity.getContainerSize()));
         }
         craftingInventory.onCraftGuiClosed(this);
-        craftingInventory = new FurnaceMenu(inventory, blockEntity);
+        craftingInventory = new MenuFurnace(inventory, blockEntity);
         craftingInventory.containerId = currentWindowId;
         craftingInventory.addSlotListener(this);
     }
 
     @Override
-	public void displayDispenserScreen(DispenserBlockEntity blockEntity)
+	public void displayDispenserScreen(TileEntityDispenser blockEntity)
     {
         getNextWindowId();
         playerNetServerHandler.sendPacket(new ContainerOpenPacket(currentWindowId, ContainerOpenPacket.TYPE_DISPENSER, blockEntity.getName(), blockEntity.getContainerSize()));
         craftingInventory.onCraftGuiClosed(this);
-        craftingInventory = new TrapMenu(inventory, blockEntity);
+        craftingInventory = new MenuTrap(inventory, blockEntity);
         craftingInventory.containerId = currentWindowId;
         craftingInventory.addSlotListener(this);
     }
 
     @Override
-    public void displayActivatorScreen(ActivatorBlockEntity blockEntity)
+    public void displayActivatorScreen(TileEntityActivator blockEntity)
     {
         getNextWindowId();
         playerNetServerHandler.sendPacket(new ContainerOpenPacket(currentWindowId, ContainerOpenPacket.TYPE_ACTIVATOR, blockEntity.getName(), blockEntity.getContainerSize()));
         craftingInventory.onCraftGuiClosed(this);
-        craftingInventory = new ActivatorMenu(inventory, blockEntity);
+        craftingInventory = new MenuActivator(inventory, blockEntity);
         craftingInventory.containerId = currentWindowId;
         craftingInventory.addSlotListener(this);
     }
 
 
     @Override
-	public void displayTrommelScreen(TrommelBlockEntity blockEntity)
+	public void displayTrommelScreen(TileEntityTrommel blockEntity)
     {
         getNextWindowId();
         playerNetServerHandler.sendPacket(new ContainerOpenPacket(currentWindowId, ContainerOpenPacket.TYPE_TROMMEL, blockEntity.getName(), blockEntity.getContainerSize()));
         craftingInventory.onCraftGuiClosed(this);
-        craftingInventory = new TrommelMenu(inventory, blockEntity);
+        craftingInventory = new MenuTrommel(inventory, blockEntity);
         craftingInventory.containerId = currentWindowId;
         craftingInventory.addSlotListener(this);
     }
 
     @Override
-    public void displayFlagEditorScreen(FlagBlockEntity blockEntity)
+    public void displayFlagEditorScreen(TileEntityFlag blockEntity)
     {
         getNextWindowId();
         playerNetServerHandler.sendPacket(new FlagOpenPacket(currentWindowId, blockEntity.x, blockEntity.y, blockEntity.z));
         craftingInventory.onCraftGuiClosed(this);
-        craftingInventory = new FlagMenu(inventory, blockEntity);
+        craftingInventory = new MenuFlag(inventory, blockEntity);
         craftingInventory.containerId = currentWindowId;
         craftingInventory.addSlotListener(this);
     }
@@ -601,15 +601,15 @@ public class ServerPlayer extends Player implements ContainerListener {
         getNextWindowId();
 
         craftingInventory.onCraftGuiClosed(this);
-        craftingInventory = new GuidebookMenu();
+        craftingInventory = new MenuGuidebook();
         craftingInventory.containerId = currentWindowId;
         craftingInventory.addSlotListener(this);
     }
 
     @Override
-	public void updateInventorySlot(AbstractContainerMenu container, int i, ItemStack itemstack)
+	public void updateInventorySlot(MenuAbstract container, int i, ItemStack itemstack)
     {
-        if (container.getSlot(i) instanceof ResultSlot)
+        if (container.getSlot(i) instanceof SlotResult)
         {
             return;
         }
@@ -627,13 +627,13 @@ public class ServerPlayer extends Player implements ContainerListener {
         }
     }
 
-    public void initializeCraftingInventory(AbstractContainerMenu container)
+    public void initializeCraftingInventory(MenuAbstract container)
     {
         updateCraftingInventory(container, container.getSlotStackList());
     }
 
     @Override
-	public void updateCraftingInventory(AbstractContainerMenu container, List<ItemStack> list)
+	public void updateCraftingInventory(MenuAbstract container, List<ItemStack> list)
     {
 
         //playernetserverhandler returning false?
@@ -645,7 +645,7 @@ public class ServerPlayer extends Player implements ContainerListener {
     }
 
     @Override
-	public void updateCraftingInventoryInfo(AbstractContainerMenu container, int id, int value)
+	public void updateCraftingInventoryInfo(MenuAbstract container, int id, int value)
     {
         playerNetServerHandler.sendPacket(new ContainerSetDataPacket(container.containerId, id, value));
     }
@@ -768,7 +768,7 @@ public class ServerPlayer extends Player implements ContainerListener {
     }
 
 
-    public ServerPacketHandler playerNetServerHandler;
+    public PacketHandlerServer playerNetServerHandler;
     public MinecraftServer mcServer;
     public ServerPlayerController playerController;
 
diff --git a/src/main/java/net/minecraft/server/net/NetworkListenThread.java b/src/main/java/net/minecraft/server/net/NetworkListenThread.java
index 27157a2c9..ee12f199c 100644
--- a/src/main/java/net/minecraft/server/net/NetworkListenThread.java
+++ b/src/main/java/net/minecraft/server/net/NetworkListenThread.java
@@ -8,14 +8,14 @@ import java.util.ArrayList;
 
 
 import com.mojang.logging.LogUtils;
-import net.minecraft.server.net.handler.LoginPacketHandler;
-import net.minecraft.server.net.handler.ServerPacketHandler;
+import net.minecraft.server.net.handler.PacketHandlerLogin;
+import net.minecraft.server.net.handler.PacketHandlerServer;
 import net.minecraft.server.MinecraftServer;
 import org.slf4j.Logger;
 
 
 // Referenced classes of package net.minecraft.src:
-//            NetworkAcceptThread, LoginPacketHandler, NetworkManager, ServerPacketHandler
+//            NetworkAcceptThread, PacketHandlerLogin, NetworkManager, PacketHandlerServer
 
 public class NetworkListenThread
 {
@@ -24,8 +24,8 @@ public class NetworkListenThread
     private final Thread networkAcceptThread;
     public volatile boolean isListening;
     private int connectionCounter;
-    private final ArrayList<LoginPacketHandler> pendingConnections;
-    private final ArrayList<ServerPacketHandler> playerList;
+    private final ArrayList<PacketHandlerLogin> pendingConnections;
+    private final ArrayList<PacketHandlerServer> playerList;
     public MinecraftServer mcServer;
 
     public NetworkListenThread(MinecraftServer minecraftserver, InetAddress address, int i)
@@ -44,7 +44,7 @@ public class NetworkListenThread
                 try {
                     Socket socket = serverSocket.accept();
                     if (socket != null) {
-                        LoginPacketHandler loginHandler = new LoginPacketHandler(mcServer, socket, "Connection #" + connectionCounter++);
+                        PacketHandlerLogin loginHandler = new PacketHandlerLogin(mcServer, socket, "Connection #" + connectionCounter++);
                         addPendingConnection(loginHandler);
                     }
                 } catch (IOException ioexception) {
@@ -55,12 +55,12 @@ public class NetworkListenThread
         networkAcceptThread.start();
     }
 
-    public void addPlayer(ServerPacketHandler netserverhandler)
+    public void addPlayer(PacketHandlerServer netserverhandler)
     {
         playerList.add(netserverhandler);
     }
 
-    private void addPendingConnection(LoginPacketHandler netloginhandler)
+    private void addPendingConnection(PacketHandlerLogin netloginhandler)
     {
         if(netloginhandler == null)
         {
@@ -76,7 +76,7 @@ public class NetworkListenThread
     {
         for(int i = 0; i < pendingConnections.size(); i++)
         {
-            LoginPacketHandler netloginhandler = pendingConnections.get(i);
+            PacketHandlerLogin netloginhandler = pendingConnections.get(i);
             try
             {
                 netloginhandler.tryLogin();
@@ -95,21 +95,21 @@ public class NetworkListenThread
 
         for(int j = 0; j < playerList.size(); j++)
         {
-            ServerPacketHandler serverPacketHandler = playerList.get(j);
+            PacketHandlerServer packetHandlerServer = playerList.get(j);
             try
             {
-                serverPacketHandler.handlePackets();
+                packetHandlerServer.handlePackets();
             }
             catch(Exception exception1)
             {
                 LOGGER.warn("Failed to handle packet: {}", exception1, exception1);
-                serverPacketHandler.kickPlayer("Internal server error");
+                packetHandlerServer.kickPlayer("Internal server error");
             }
-            if(serverPacketHandler.connectionClosed)
+            if(packetHandlerServer.connectionClosed)
             {
                 playerList.remove(j--);
             }
-            serverPacketHandler.netManager.wakeThreads();
+            packetHandlerServer.netManager.wakeThreads();
         }
 
     }
diff --git a/src/main/java/net/minecraft/server/net/PlayerList.java b/src/main/java/net/minecraft/server/net/PlayerList.java
index b713dbbbd..e90b83e9c 100644
--- a/src/main/java/net/minecraft/server/net/PlayerList.java
+++ b/src/main/java/net/minecraft/server/net/PlayerList.java
@@ -2,14 +2,14 @@ package net.minecraft.server.net;
 
 import com.mojang.logging.LogUtils;
 import net.minecraft.core.achievement.Achievements;
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.data.registry.Registries;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.util.helper.DyeColor;
 import net.minecraft.core.util.helper.UUIDHelper;
 import net.minecraft.core.util.helper.MathHelper;
-import net.minecraft.server.entity.player.ServerPlayer;
-import net.minecraft.server.net.handler.LoginPacketHandler;
+import net.minecraft.server.entity.player.PlayerServer;
+import net.minecraft.server.net.handler.PacketHandlerLogin;
 import net.minecraft.core.net.packet.*;
 import net.minecraft.server.player.PlayerManager;
 import net.minecraft.server.world.ServerPlayerController;
@@ -31,7 +31,7 @@ import java.util.concurrent.atomic.AtomicInteger;
 public class PlayerList
 {
     public static Logger logger = LogUtils.getLogger();
-    public List<ServerPlayer> playerEntities;
+    public List<PlayerServer> playerEntities;
     private final MinecraftServer server;
     private final Map<Integer, PlayerManager> playerManagers;
     private final Set<UUID> bans;
@@ -108,7 +108,7 @@ public class PlayerList
         playerIo = worldServerMap.get(0).getSaveHandler().getPlayerFileData();
     }
 
-    public void syncPlayerDimension(ServerPlayer player)
+    public void syncPlayerDimension(PlayerServer player)
     {
         for (PlayerManager playerManager : playerManagers.values()) {
             playerManager.removePlayer(player);
@@ -128,12 +128,12 @@ public class PlayerList
         return playerManagers.get(dim);
     }
 
-    public void load(ServerPlayer player)
+    public void load(PlayerServer player)
     {
         playerIo.load(player);
     }
 
-    public void playerLoggedIn(ServerPlayer player)
+    public void playerLoggedIn(PlayerServer player)
     {
         playerEntities.add(player);
         player.playerNetServerHandler.handleSendInitialPlayerList();
@@ -152,12 +152,12 @@ public class PlayerList
         getPlayerManager(player.dimension).addPlayer(player);
     }
 
-    public void onPlayerMoved(ServerPlayer player)
+    public void onPlayerMoved(PlayerServer player)
     {
         getPlayerManager(player.dimension).onPlayerMoved(player);
     }
 
-    public void playerLoggedOut(ServerPlayer entityplayermp)
+    public void playerLoggedOut(PlayerServer entityplayermp)
     {
         playerIo.save(entityplayermp);
         server.getDimensionWorld(entityplayermp.dimension).setEntityDead(entityplayermp);
@@ -165,7 +165,7 @@ public class PlayerList
         getPlayerManager(entityplayermp.dimension).removePlayer(entityplayermp);
     }
 
-    public ServerPlayer getPlayerForLogin(LoginPacketHandler handler, String username, UUID uuid)
+    public PlayerServer getPlayerForLogin(PacketHandlerLogin handler, String username, UUID uuid)
     {
         if (bans.contains(uuid))
         {
@@ -190,17 +190,17 @@ public class PlayerList
             handler.kickUser("The server is full!");
             return null;
         }
-        List<ServerPlayer> playerListCopy = new ArrayList<>(playerEntities);
-        for (ServerPlayer player : playerListCopy) {
+        List<PlayerServer> playerListCopy = new ArrayList<>(playerEntities);
+        for (PlayerServer player : playerListCopy) {
             if (player.username.equalsIgnoreCase(username) || player.uuid.equals(uuid)) {
                 player.playerNetServerHandler.kickPlayer("You are logged in from another location!");
             }
         }
 
-        return new ServerPlayer(server, server.getDimensionWorld(0), username, uuid, new ServerPlayerController(server.getDimensionWorld(0)));
+        return new PlayerServer(server, server.getDimensionWorld(0), username, uuid, new ServerPlayerController(server.getDimensionWorld(0)));
     }
 
-    public ServerPlayer recreatePlayerEntity(ServerPlayer previousPlayer, int i)
+    public PlayerServer recreatePlayerEntity(PlayerServer previousPlayer, int i)
     {
         server.getEntityTracker(previousPlayer.dimension).removeTrackedPlayerSymmetric(previousPlayer);
         server.getEntityTracker(previousPlayer.dimension).untrackEntity(previousPlayer);
@@ -209,7 +209,7 @@ public class PlayerList
         server.getDimensionWorld(previousPlayer.dimension).removePlayer(previousPlayer);
         ChunkCoordinates chunkcoordinates = previousPlayer.getPlayerSpawnCoordinate();
         previousPlayer.dimension = i;
-        ServerPlayer newPlayer = new ServerPlayer(server, server.getDimensionWorld(previousPlayer.dimension), previousPlayer.username, previousPlayer.uuid, new ServerPlayerController(server.getDimensionWorld(previousPlayer.dimension)));
+        PlayerServer newPlayer = new PlayerServer(server, server.getDimensionWorld(previousPlayer.dimension), previousPlayer.username, previousPlayer.uuid, new ServerPlayerController(server.getDimensionWorld(previousPlayer.dimension)));
         newPlayer.id = previousPlayer.id;
         newPlayer.chatColor = previousPlayer.chatColor;
         newPlayer.nickname = previousPlayer.nickname;
@@ -248,58 +248,58 @@ public class PlayerList
         return newPlayer;
     }
 
-    public void sendPlayerToOtherDimension(ServerPlayer serverPlayer, int targetDim, DyeColor portalColor, boolean generatePortal)
+    public void sendPlayerToOtherDimension(PlayerServer playerServer, int targetDim, DyeColor portalColor, boolean generatePortal)
     {
-        WorldServer worldserver = server.getDimensionWorld(serverPlayer.dimension);
-        Dimension lastDim = Dimension.getDimensionList().get(serverPlayer.dimension);
+        WorldServer worldserver = server.getDimensionWorld(playerServer.dimension);
+        Dimension lastDim = Dimension.getDimensionList().get(playerServer.dimension);
         Dimension newDim = Dimension.getDimensionList().get(targetDim);
 
-        serverPlayer.dimension = targetDim;
-        WorldServer worldserver1 = server.getDimensionWorld(serverPlayer.dimension);
-        serverPlayer.playerNetServerHandler.sendPacket(new RespawnPacket((byte) serverPlayer.dimension, (byte) Registries.WORLD_TYPES.getNumericIdOfItem(worldserver1.worldType)));
-        worldserver.removePlayer(serverPlayer);
-        serverPlayer.removed = false;
-        double x = serverPlayer.x;
-        double y = serverPlayer.y;
-        double z = serverPlayer.z;
+        playerServer.dimension = targetDim;
+        WorldServer worldserver1 = server.getDimensionWorld(playerServer.dimension);
+        playerServer.playerNetServerHandler.sendPacket(new RespawnPacket((byte) playerServer.dimension, (byte) Registries.WORLD_TYPES.getNumericIdOfItem(worldserver1.worldType)));
+        worldserver.removePlayer(playerServer);
+        playerServer.removed = false;
+        double x = playerServer.x;
+        double y = playerServer.y;
+        double z = playerServer.z;
 
         x *= Dimension.getCoordScale(lastDim, newDim);
         z *= Dimension.getCoordScale(lastDim, newDim);
-        serverPlayer.teleport(x, y, z, serverPlayer.yRot, serverPlayer.xRot);
+        playerServer.teleport(x, y, z, playerServer.yRot, playerServer.xRot);
         ChunkCoordinates newCoordinates = new ChunkCoordinates(MathHelper.floor(x), MathHelper.floor(y), MathHelper.floor(z));
-        if (serverPlayer.dimensionEnterCoordinate != null) {
-            double dx = serverPlayer.dimensionEnterCoordinate.x - x;
-            double dy = serverPlayer.dimensionEnterCoordinate.y - y;
-            double dz = serverPlayer.dimensionEnterCoordinate.z - z;
+        if (playerServer.dimensionEnterCoordinate != null) {
+            double dx = playerServer.dimensionEnterCoordinate.x - x;
+            double dy = playerServer.dimensionEnterCoordinate.y - y;
+            double dz = playerServer.dimensionEnterCoordinate.z - z;
             double distSqr = (dx * dx) + (dy * dy) + (dz * dz);
             if (distSqr > 8000 * 8000) {
-                serverPlayer.addStat(Achievements.FAST_TRAVEL, 1);
+                playerServer.addStat(Achievements.FAST_TRAVEL, 1);
             }
         }
-        serverPlayer.dimensionEnterCoordinate = newCoordinates;
-        if (serverPlayer.isAlive())
+        playerServer.dimensionEnterCoordinate = newCoordinates;
+        if (playerServer.isAlive())
         {
-            worldserver.updateEntityWithOptionalForce(serverPlayer, false);
+            worldserver.updateEntityWithOptionalForce(playerServer, false);
         }
 
-        if (serverPlayer.isAlive())
+        if (playerServer.isAlive())
         {
-            worldserver1.entityJoinedWorld(serverPlayer);
-            serverPlayer.teleport(x, serverPlayer.y, z, serverPlayer.yRot, serverPlayer.xRot);
-            worldserver1.updateEntityWithOptionalForce(serverPlayer, false);
+            worldserver1.entityJoinedWorld(playerServer);
+            playerServer.teleport(x, playerServer.y, z, playerServer.yRot, playerServer.xRot);
+            worldserver1.updateEntityWithOptionalForce(playerServer, false);
             if (generatePortal){
                 worldserver1.chunkProviderServer.chunkLoadOverride = true;
-                (new PortalHandler()).teleportEntity(worldserver1, serverPlayer, portalColor, lastDim, newDim);
+                (new PortalHandler()).teleportEntity(worldserver1, playerServer, portalColor, lastDim, newDim);
                 worldserver1.chunkProviderServer.chunkLoadOverride = false;
             }
         }
-        syncPlayerDimension(serverPlayer);
-        serverPlayer.playerNetServerHandler.teleportAndRotate(serverPlayer.x, serverPlayer.y, serverPlayer.z, serverPlayer.yRot, serverPlayer.xRot);
-        server.playerList.sendPacketToAllPlayers(new PlayerGamemodePacket(serverPlayer.id, serverPlayer.gamemode.getId()));
-        serverPlayer.setWorld(worldserver1);
-        setTime(serverPlayer, worldserver1);
-        initializePlayerObject(serverPlayer);
-        serverPlayer.playerNetServerHandler.sendPacket(new GameRulePacket(server.getDimensionWorld(0).getLevelData().getGameRules()));
+        syncPlayerDimension(playerServer);
+        playerServer.playerNetServerHandler.teleportAndRotate(playerServer.x, playerServer.y, playerServer.z, playerServer.yRot, playerServer.xRot);
+        server.playerList.sendPacketToAllPlayers(new PlayerGamemodePacket(playerServer.id, playerServer.gamemode.getId()));
+        playerServer.setWorld(worldserver1);
+        setTime(playerServer, worldserver1);
+        initializePlayerObject(playerServer);
+        playerServer.playerNetServerHandler.sendPacket(new GameRulePacket(server.getDimensionWorld(0).getLevelData().getGameRules()));
     }
 
     public void onTick()
@@ -316,7 +316,7 @@ public class PlayerList
 
     public void sendPacketToAllPlayers(Packet packet)
     {
-        for (ServerPlayer player : playerEntities) {
+        for (PlayerServer player : playerEntities) {
             player.playerNetServerHandler.sendPacket(packet);
         }
 
@@ -324,7 +324,7 @@ public class PlayerList
 
     public void sendEncryptedChatToAllPlayers(String message)
     {
-        for (ServerPlayer player : playerEntities) {
+        for (PlayerServer player : playerEntities) {
             player.playerNetServerHandler.sendPacket(new ChatPacket(message, 0, AES.keyChain.get(player.username)));
         }
 
@@ -332,7 +332,7 @@ public class PlayerList
 
     public void sendPacketToAllPlayersInDimension(Packet packet, int i)
     {
-        for (ServerPlayer player : playerEntities) {
+        for (PlayerServer player : playerEntities) {
             if (player.dimension == i) {
                 player.playerNetServerHandler.sendPacket(packet);
             }
@@ -576,9 +576,9 @@ public class PlayerList
         return ops.contains(uuid);
     }
     @Nullable
-    public ServerPlayer getPlayerEntity(String s)
+    public PlayerServer getPlayerEntity(String s)
     {
-        for (ServerPlayer player : playerEntities) {
+        for (PlayerServer player : playerEntities) {
             if (player.username.equalsIgnoreCase(s)) {
                 return player;
             }
@@ -589,7 +589,7 @@ public class PlayerList
 
     public void sendChatMessageToPlayer(String s, String s1)
     {
-        ServerPlayer player = getPlayerEntity(s);
+        PlayerServer player = getPlayerEntity(s);
         if (player != null)
         {
             player.playerNetServerHandler.sendPacket(new ChatPacket(s1));
@@ -604,7 +604,7 @@ public class PlayerList
     public void sendPacketToOtherPlayersAroundPoint(Player player, double x, double y, double z,
                                                     double radius, int dimension, Packet packet)
     {
-        for (ServerPlayer otherPlayer : playerEntities) {
+        for (PlayerServer otherPlayer : playerEntities) {
             if (otherPlayer == player || otherPlayer.dimension != dimension) {
                 continue;
             }
@@ -621,7 +621,7 @@ public class PlayerList
     public void sendChatMessageToAllOps(String s)
     {
         ChatPacket chatPacket = new ChatPacket(s);
-        for (ServerPlayer player : playerEntities) {
+        for (PlayerServer player : playerEntities) {
             if (isOp(player.uuid)) {
                 player.playerNetServerHandler.sendPacket(chatPacket);
             }
@@ -631,7 +631,7 @@ public class PlayerList
 
     public boolean sendPacketToPlayer(String s, Packet packet)
     {
-        ServerPlayer player = getPlayerEntity(s);
+        PlayerServer player = getPlayerEntity(s);
         if (player != null)
         {
             player.playerNetServerHandler.sendPacket(packet);
@@ -645,13 +645,13 @@ public class PlayerList
 
     public void savePlayerStates()
     {
-        for (ServerPlayer playerEntity : playerEntities) {
+        for (PlayerServer playerEntity : playerEntities) {
             playerIo.save(playerEntity);
         }
 
     }
 
-    public void sendBlockEntityToPlayer(int x, int y, int z, int dimension, BlockEntity blockEntity)
+    public void sendBlockEntityToPlayer(int x, int y, int z, int dimension, TileEntity tileEntity)
     {
         getPlayerManager(dimension).markBlockNeedsUpdate(x, y, z);
     }
@@ -678,7 +678,7 @@ public class PlayerList
         loadWhiteList();
     }
 
-    public void setTime(ServerPlayer player, WorldServer worldserver)
+    public void setTime(PlayerServer player, WorldServer worldserver)
     {
         player.playerNetServerHandler.sendPacket(new SetTimePacket(worldserver.getWorldTime()));
 //        if(worldserver.func_27068_v())
@@ -687,7 +687,7 @@ public class PlayerList
 //        }
     }
 
-    public void initializePlayerObject(ServerPlayer player)
+    public void initializePlayerObject(PlayerServer player)
     {
         player.initializeCraftingInventory(player.inventorySlots);
         player.initializeLastFieldValues();
diff --git a/src/main/java/net/minecraft/server/net/command/ConsoleCommandSource.java b/src/main/java/net/minecraft/server/net/command/ConsoleCommandSource.java
index 17d60c366..e914ac39c 100644
--- a/src/main/java/net/minecraft/server/net/command/ConsoleCommandSource.java
+++ b/src/main/java/net/minecraft/server/net/command/ConsoleCommandSource.java
@@ -9,7 +9,7 @@ import net.minecraft.core.util.helper.LoggedPrintStream;
 import net.minecraft.core.util.phys.Vec3;
 import net.minecraft.core.world.World;
 import net.minecraft.server.MinecraftServer;
-import net.minecraft.server.entity.player.ServerPlayer;
+import net.minecraft.server.entity.player.PlayerServer;
 import org.jetbrains.annotations.Nullable;
 import org.slf4j.Logger;
 
@@ -97,9 +97,9 @@ public class ConsoleCommandSource implements CommandSource, IServerCommandSource
 
     @Override
     public void movePlayerToDimension(Player player, int dimension) {
-        if (player instanceof ServerPlayer)
-            this.server.playerList.sendPlayerToOtherDimension((ServerPlayer) player, dimension, null, false);
-        else throw new IllegalStateException("Player is not an instance of ServerPlayer");
+        if (player instanceof PlayerServer)
+            this.server.playerList.sendPlayerToOtherDimension((PlayerServer) player, dimension, null, false);
+        else throw new IllegalStateException("Player is not an instance of PlayerServer");
     }
 
     @Override
diff --git a/src/main/java/net/minecraft/server/net/command/ServerCommandSource.java b/src/main/java/net/minecraft/server/net/command/ServerCommandSource.java
index 57d568ea1..256483608 100644
--- a/src/main/java/net/minecraft/server/net/command/ServerCommandSource.java
+++ b/src/main/java/net/minecraft/server/net/command/ServerCommandSource.java
@@ -8,7 +8,7 @@ import net.minecraft.core.util.helper.MathHelper;
 import net.minecraft.core.util.phys.Vec3;
 import net.minecraft.core.world.World;
 import net.minecraft.server.MinecraftServer;
-import net.minecraft.server.entity.player.ServerPlayer;
+import net.minecraft.server.entity.player.PlayerServer;
 import org.jetbrains.annotations.NotNull;
 
 import java.util.ArrayList;
@@ -17,9 +17,9 @@ import java.util.List;
 
 public class ServerCommandSource implements CommandSource, IServerCommandSource {
     public final MinecraftServer server;
-    public final ServerPlayer player;
+    public final PlayerServer player;
 
-    public ServerCommandSource(MinecraftServer server, ServerPlayer player) {
+    public ServerCommandSource(MinecraftServer server, PlayerServer player) {
         this.server = server;
         this.player = player;
     }
@@ -98,9 +98,9 @@ public class ServerCommandSource implements CommandSource, IServerCommandSource
 
     @Override
     public void movePlayerToDimension(Player player, int dimension) {
-        if (player instanceof ServerPlayer)
-            this.server.playerList.sendPlayerToOtherDimension((ServerPlayer) player, dimension, null, false);
-        else throw new IllegalStateException("Player is not an instance of ServerPlayer");
+        if (player instanceof PlayerServer)
+            this.server.playerList.sendPlayerToOtherDimension((PlayerServer) player, dimension, null, false);
+        else throw new IllegalStateException("Player is not an instance of PlayerServer");
     }
 
     @Override
diff --git a/src/main/java/net/minecraft/server/net/command/commands/BanCommand.java b/src/main/java/net/minecraft/server/net/command/commands/CommandBan.java
similarity index 95%
rename from src/main/java/net/minecraft/server/net/command/commands/BanCommand.java
rename to src/main/java/net/minecraft/server/net/command/commands/CommandBan.java
index 02a749722..a34ac08b1 100644
--- a/src/main/java/net/minecraft/server/net/command/commands/BanCommand.java
+++ b/src/main/java/net/minecraft/server/net/command/commands/CommandBan.java
@@ -11,10 +11,10 @@ import net.minecraft.core.net.command.CommandSource;
 import net.minecraft.core.net.command.exceptions.CommandExceptions;
 import net.minecraft.core.util.helper.UUIDHelper;
 import net.minecraft.server.MinecraftServer;
-import net.minecraft.server.entity.player.ServerPlayer;
+import net.minecraft.server.entity.player.PlayerServer;
 import net.minecraft.server.net.command.IServerCommandSource;
 
-public class BanCommand {
+public class CommandBan {
     private static final DynamicCommandExceptionType FAILURE =
         new DynamicCommandExceptionType(arg -> () -> I18n.getInstance().translateKeyAndFormat("command.commands.ban.exception_failure", arg));
 
@@ -32,7 +32,7 @@ public class BanCommand {
 
 //                        String senderName = c.getSource().getName();
                         String nameToBan = c.getArgument("name", String.class);
-                        ServerPlayer player = server.playerList.getPlayerEntity(nameToBan);
+                        PlayerServer player = server.playerList.getPlayerEntity(nameToBan);
                         if(player != null) {
                             server.playerList.banPlayer(player.uuid);
 //                            sendNoticeToOps(senderName, "Banning " + nameToBan);
@@ -63,7 +63,7 @@ public class BanCommand {
 
 //                        sendNoticeToOps(senderName, "Banning ip " + ip);
                         c.getSource().sendTranslatableMessage("command.commands.ban.ip.success", ip);
-//                        ServerPlayer player = server.playerList.getPlayerEntity(ip);
+//                        PlayerServer player = server.playerList.getPlayerEntity(ip);
 //                        if(player != null)
 //                        {
 //                            player.playerNetServerHandler.kickPlayer("Banned by admin");
diff --git a/src/main/java/net/minecraft/server/net/command/commands/ColorCommand.java b/src/main/java/net/minecraft/server/net/command/commands/CommandColor.java
similarity index 86%
rename from src/main/java/net/minecraft/server/net/command/commands/ColorCommand.java
rename to src/main/java/net/minecraft/server/net/command/commands/CommandColor.java
index 3174b33bc..7b1c5c093 100644
--- a/src/main/java/net/minecraft/server/net/command/commands/ColorCommand.java
+++ b/src/main/java/net/minecraft/server/net/command/commands/CommandColor.java
@@ -10,16 +10,16 @@ import net.minecraft.core.entity.Entity;
 import net.minecraft.core.lang.I18n;
 import net.minecraft.core.net.command.TextFormatting;
 import net.minecraft.core.net.command.CommandSource;
+import net.minecraft.server.entity.player.PlayerServer;
 import net.minecraft.server.net.command.IServerCommandSource;
-import net.minecraft.core.net.command.arguments.EntityArgumentType;
+import net.minecraft.core.net.command.arguments.ArgumentTypeEntity;
 import net.minecraft.core.net.command.exceptions.CommandExceptions;
 import net.minecraft.core.net.command.helpers.EntitySelector;
 import net.minecraft.core.net.command.util.CommandHelper;
-import net.minecraft.server.entity.player.ServerPlayer;
 
 import java.util.List;
 
-public class ColorCommand {
+public class CommandColor {
     public static void register(CommandDispatcher<CommandSource> dispatcher) {
         CommandNode<CommandSource> command = dispatcher.register(LiteralArgumentBuilder.<CommandSource>literal("color")
             .then(LiteralArgumentBuilder.<CommandSource>literal("get")
@@ -28,21 +28,21 @@ public class ColorCommand {
                     if (!(source instanceof IServerCommandSource))
                         throw CommandExceptions.multiplayerWorldOnly().create();
 
-                    ServerPlayer player = (ServerPlayer) source.getSender();
+                    PlayerServer player = (PlayerServer) source.getSender();
                     if (player == null) throw CommandExceptions.notInWorld().create();
 
                     TextFormatting color = TextFormatting.get(player.chatColor);
                     source.sendMessage(I18n.getInstance().translateKeyAndFormat("command.commands.color.get.success", color + color.getNames()[0]));
                     return Command.SINGLE_SUCCESS;
                 })
-                .then(RequiredArgumentBuilder.<CommandSource, EntitySelector>argument("target", EntityArgumentType.player())
+                .then(RequiredArgumentBuilder.<CommandSource, EntitySelector>argument("target", ArgumentTypeEntity.player())
                     .executes(c -> {
                         CommandSource source = c.getSource();
                         if (!(source instanceof IServerCommandSource))
                             throw CommandExceptions.multiplayerWorldOnly().create();
 
                         EntitySelector entitySelector = c.getArgument("target", EntitySelector.class);
-                        ServerPlayer player = (ServerPlayer) entitySelector.get(source).get(0);
+                        PlayerServer player = (PlayerServer) entitySelector.get(source).get(0);
 
                         TextFormatting color = TextFormatting.get(player.chatColor);
                         source.sendMessage(I18n.getInstance().translateKeyAndFormat("command.commands.color.get.success_other", color + color.getNames()[0]));
@@ -52,84 +52,84 @@ public class ColorCommand {
                 .then(LiteralArgumentBuilder.<CommandSource>literal("white")
                     .executes(c -> {
                         CommandSource source = c.getSource();
-                        return setColor((ServerPlayer) source.getSender(), source, (byte) 0);
+                        return setColor((PlayerServer) source.getSender(), source, (byte) 0);
                     }))
                 .then(LiteralArgumentBuilder.<CommandSource>literal("orange")
                     .executes(c -> {
                         CommandSource source = c.getSource();
-                        return setColor((ServerPlayer) source.getSender(), source, (byte) 1);
+                        return setColor((PlayerServer) source.getSender(), source, (byte) 1);
                     }))
                 .then(LiteralArgumentBuilder.<CommandSource>literal("magenta")
                     .executes(c -> {
                         CommandSource source = c.getSource();
-                        return setColor((ServerPlayer) source.getSender(), source, (byte) 2);
+                        return setColor((PlayerServer) source.getSender(), source, (byte) 2);
                     }))
                 .then(LiteralArgumentBuilder.<CommandSource>literal("light_blue")
                     .executes(c -> {
                         CommandSource source = c.getSource();
-                        return setColor((ServerPlayer) source.getSender(), source, (byte) 3);
+                        return setColor((PlayerServer) source.getSender(), source, (byte) 3);
                     }))
                 .then(LiteralArgumentBuilder.<CommandSource>literal("yellow")
                     .executes(c -> {
                         CommandSource source = c.getSource();
-                        return setColor((ServerPlayer) source.getSender(), source, (byte) 4);
+                        return setColor((PlayerServer) source.getSender(), source, (byte) 4);
                     }))
                 .then(LiteralArgumentBuilder.<CommandSource>literal("lime")
                     .executes(c -> {
                         CommandSource source = c.getSource();
-                        return setColor((ServerPlayer) source.getSender(), source, (byte) 5);
+                        return setColor((PlayerServer) source.getSender(), source, (byte) 5);
                     }))
                 .then(LiteralArgumentBuilder.<CommandSource>literal("pink")
                     .executes(c -> {
                         CommandSource source = c.getSource();
-                        return setColor((ServerPlayer) source.getSender(), source, (byte) 6);
+                        return setColor((PlayerServer) source.getSender(), source, (byte) 6);
                     }))
                 .then(LiteralArgumentBuilder.<CommandSource>literal("gray")
                     .executes(c -> {
                         CommandSource source = c.getSource();
-                        return setColor((ServerPlayer) source.getSender(), source, (byte) 7);
+                        return setColor((PlayerServer) source.getSender(), source, (byte) 7);
                     }))
                 .then(LiteralArgumentBuilder.<CommandSource>literal("light_gray")
                     .executes(c -> {
                         CommandSource source = c.getSource();
-                        return setColor((ServerPlayer) source.getSender(), source, (byte) 8);
+                        return setColor((PlayerServer) source.getSender(), source, (byte) 8);
                     }))
                 .then(LiteralArgumentBuilder.<CommandSource>literal("cyan")
                     .executes(c -> {
                         CommandSource source = c.getSource();
-                        return setColor((ServerPlayer) source.getSender(), source, (byte) 9);
+                        return setColor((PlayerServer) source.getSender(), source, (byte) 9);
                     }))
                 .then(LiteralArgumentBuilder.<CommandSource>literal("purple")
                     .executes(c -> {
                         CommandSource source = c.getSource();
-                        return setColor((ServerPlayer) source.getSender(), source, (byte) 10);
+                        return setColor((PlayerServer) source.getSender(), source, (byte) 10);
                     }))
                 .then(LiteralArgumentBuilder.<CommandSource>literal("blue")
                     .executes(c -> {
                         CommandSource source = c.getSource();
-                        return setColor((ServerPlayer) source.getSender(), source, (byte) 11);
+                        return setColor((PlayerServer) source.getSender(), source, (byte) 11);
                     }))
                 .then(LiteralArgumentBuilder.<CommandSource>literal("brown")
                     .executes(c -> {
                         CommandSource source = c.getSource();
-                        return setColor((ServerPlayer) source.getSender(), source, (byte) 12);
+                        return setColor((PlayerServer) source.getSender(), source, (byte) 12);
                     }))
                 .then(LiteralArgumentBuilder.<CommandSource>literal("green")
                     .executes(c -> {
                         CommandSource source = c.getSource();
-                        return setColor((ServerPlayer) source.getSender(), source, (byte) 13);
+                        return setColor((PlayerServer) source.getSender(), source, (byte) 13);
                     }))
                 .then(LiteralArgumentBuilder.<CommandSource>literal("red")
                     .executes(c -> {
                         CommandSource source = c.getSource();
-                        return setColor((ServerPlayer) source.getSender(), source, (byte) 14);
+                        return setColor((PlayerServer) source.getSender(), source, (byte) 14);
                     }))
                 .then(LiteralArgumentBuilder.<CommandSource>literal("black")
                     .executes(c -> {
                         CommandSource source = c.getSource();
-                        return setColor((ServerPlayer) source.getSender(), source, (byte) 15);
+                        return setColor((PlayerServer) source.getSender(), source, (byte) 15);
                     }))
-                .then(RequiredArgumentBuilder.<CommandSource, EntitySelector>argument("target", EntityArgumentType.players())
+                .then(RequiredArgumentBuilder.<CommandSource, EntitySelector>argument("target", ArgumentTypeEntity.players())
                     .requires(CommandSource::hasAdmin)
                     .then(LiteralArgumentBuilder.<CommandSource>literal("white")
                         .executes(c -> {
@@ -137,7 +137,7 @@ public class ColorCommand {
                             EntitySelector entitySelector = c.getArgument("target", EntitySelector.class);
                             List<? extends Entity> entities = entitySelector.get(source);
                             for (Entity entity : entities) {
-                                setColor((ServerPlayer) entity, source, (byte) 0);
+                                setColor((PlayerServer) entity, source, (byte) 0);
                             }
                             return Command.SINGLE_SUCCESS;
                         }))
@@ -147,7 +147,7 @@ public class ColorCommand {
                             EntitySelector entitySelector = c.getArgument("target", EntitySelector.class);
                             List<? extends Entity> entities = entitySelector.get(source);
                             for (Entity entity : entities) {
-                                setColor((ServerPlayer) entity, source, (byte) 1);
+                                setColor((PlayerServer) entity, source, (byte) 1);
                             }
                             return Command.SINGLE_SUCCESS;
                         }))
@@ -157,7 +157,7 @@ public class ColorCommand {
                             EntitySelector entitySelector = c.getArgument("target", EntitySelector.class);
                             List<? extends Entity> entities = entitySelector.get(source);
                             for (Entity entity : entities) {
-                                setColor((ServerPlayer) entity, source, (byte) 2);
+                                setColor((PlayerServer) entity, source, (byte) 2);
                             }
                             return Command.SINGLE_SUCCESS;
                         }))
@@ -167,7 +167,7 @@ public class ColorCommand {
                             EntitySelector entitySelector = c.getArgument("target", EntitySelector.class);
                             List<? extends Entity> entities = entitySelector.get(source);
                             for (Entity entity : entities) {
-                                setColor((ServerPlayer) entity, source, (byte) 3);
+                                setColor((PlayerServer) entity, source, (byte) 3);
                             }
                             return Command.SINGLE_SUCCESS;
                         }))
@@ -177,7 +177,7 @@ public class ColorCommand {
                             EntitySelector entitySelector = c.getArgument("target", EntitySelector.class);
                             List<? extends Entity> entities = entitySelector.get(source);
                             for (Entity entity : entities) {
-                                setColor((ServerPlayer) entity, source, (byte) 4);
+                                setColor((PlayerServer) entity, source, (byte) 4);
                             }
                             return Command.SINGLE_SUCCESS;
                         }))
@@ -187,7 +187,7 @@ public class ColorCommand {
                             EntitySelector entitySelector = c.getArgument("target", EntitySelector.class);
                             List<? extends Entity> entities = entitySelector.get(source);
                             for (Entity entity : entities) {
-                                setColor((ServerPlayer) entity, source, (byte) 5);
+                                setColor((PlayerServer) entity, source, (byte) 5);
                             }
                             return Command.SINGLE_SUCCESS;
                         }))
@@ -197,7 +197,7 @@ public class ColorCommand {
                             EntitySelector entitySelector = c.getArgument("target", EntitySelector.class);
                             List<? extends Entity> entities = entitySelector.get(source);
                             for (Entity entity : entities) {
-                                setColor((ServerPlayer) entity, source, (byte) 6);
+                                setColor((PlayerServer) entity, source, (byte) 6);
                             }
                             return Command.SINGLE_SUCCESS;
                         }))
@@ -207,7 +207,7 @@ public class ColorCommand {
                             EntitySelector entitySelector = c.getArgument("target", EntitySelector.class);
                             List<? extends Entity> entities = entitySelector.get(source);
                             for (Entity entity : entities) {
-                                setColor((ServerPlayer) entity, source, (byte) 7);
+                                setColor((PlayerServer) entity, source, (byte) 7);
                             }
                             return Command.SINGLE_SUCCESS;
                         }))
@@ -217,7 +217,7 @@ public class ColorCommand {
                             EntitySelector entitySelector = c.getArgument("target", EntitySelector.class);
                             List<? extends Entity> entities = entitySelector.get(source);
                             for (Entity entity : entities) {
-                                setColor((ServerPlayer) entity, source, (byte) 8);
+                                setColor((PlayerServer) entity, source, (byte) 8);
                             }
                             return Command.SINGLE_SUCCESS;
                         }))
@@ -227,7 +227,7 @@ public class ColorCommand {
                             EntitySelector entitySelector = c.getArgument("target", EntitySelector.class);
                             List<? extends Entity> entities = entitySelector.get(source);
                             for (Entity entity : entities) {
-                                setColor((ServerPlayer) entity, source, (byte) 9);
+                                setColor((PlayerServer) entity, source, (byte) 9);
                             }
                             return Command.SINGLE_SUCCESS;
                         }))
@@ -237,7 +237,7 @@ public class ColorCommand {
                             EntitySelector entitySelector = c.getArgument("target", EntitySelector.class);
                             List<? extends Entity> entities = entitySelector.get(source);
                             for (Entity entity : entities) {
-                                setColor((ServerPlayer) entity, source, (byte) 10);
+                                setColor((PlayerServer) entity, source, (byte) 10);
                             }
                             return Command.SINGLE_SUCCESS;
                         }))
@@ -247,7 +247,7 @@ public class ColorCommand {
                             EntitySelector entitySelector = c.getArgument("target", EntitySelector.class);
                             List<? extends Entity> entities = entitySelector.get(source);
                             for (Entity entity : entities) {
-                                setColor((ServerPlayer) entity, source, (byte) 11);
+                                setColor((PlayerServer) entity, source, (byte) 11);
                             }
                             return Command.SINGLE_SUCCESS;
                         }))
@@ -257,7 +257,7 @@ public class ColorCommand {
                             EntitySelector entitySelector = c.getArgument("target", EntitySelector.class);
                             List<? extends Entity> entities = entitySelector.get(source);
                             for (Entity entity : entities) {
-                                setColor((ServerPlayer) entity, source, (byte) 12);
+                                setColor((PlayerServer) entity, source, (byte) 12);
                             }
                             return Command.SINGLE_SUCCESS;
                         }))
@@ -267,7 +267,7 @@ public class ColorCommand {
                             EntitySelector entitySelector = c.getArgument("target", EntitySelector.class);
                             List<? extends Entity> entities = entitySelector.get(source);
                             for (Entity entity : entities) {
-                                setColor((ServerPlayer) entity, source, (byte) 13);
+                                setColor((PlayerServer) entity, source, (byte) 13);
                             }
                             return Command.SINGLE_SUCCESS;
                         }))
@@ -277,7 +277,7 @@ public class ColorCommand {
                             EntitySelector entitySelector = c.getArgument("target", EntitySelector.class);
                             List<? extends Entity> entities = entitySelector.get(source);
                             for (Entity entity : entities) {
-                                setColor((ServerPlayer) entity, source, (byte) 14);
+                                setColor((PlayerServer) entity, source, (byte) 14);
                             }
                             return Command.SINGLE_SUCCESS;
                         }))
@@ -287,7 +287,7 @@ public class ColorCommand {
                             EntitySelector entitySelector = c.getArgument("target", EntitySelector.class);
                             List<? extends Entity> entities = entitySelector.get(source);
                             for (Entity entity : entities) {
-                                setColor((ServerPlayer) entity, source, (byte) 15);
+                                setColor((PlayerServer) entity, source, (byte) 15);
                             }
                             return Command.SINGLE_SUCCESS;
                         })))));
@@ -295,7 +295,7 @@ public class ColorCommand {
             .redirect(command));
     }
 
-    private static int setColor(ServerPlayer player, CommandSource source, byte colorId) throws CommandSyntaxException {
+    private static int setColor(PlayerServer player, CommandSource source, byte colorId) throws CommandSyntaxException {
         if (!(source instanceof IServerCommandSource)) throw CommandExceptions.multiplayerWorldOnly().create();
 
         if (player == null) throw CommandExceptions.notInWorld().create();
diff --git a/src/main/java/net/minecraft/server/net/command/commands/DeopCommand.java b/src/main/java/net/minecraft/server/net/command/commands/CommandDeop.java
similarity index 90%
rename from src/main/java/net/minecraft/server/net/command/commands/DeopCommand.java
rename to src/main/java/net/minecraft/server/net/command/commands/CommandDeop.java
index 318c11636..44e96a566 100644
--- a/src/main/java/net/minecraft/server/net/command/commands/DeopCommand.java
+++ b/src/main/java/net/minecraft/server/net/command/commands/CommandDeop.java
@@ -8,23 +8,23 @@ import com.mojang.brigadier.exceptions.SimpleCommandExceptionType;
 import net.minecraft.core.entity.Entity;
 import net.minecraft.core.lang.I18n;
 import net.minecraft.core.net.command.CommandSource;
+import net.minecraft.server.entity.player.PlayerServer;
 import net.minecraft.server.net.command.IServerCommandSource;
-import net.minecraft.core.net.command.arguments.EntityArgumentType;
+import net.minecraft.core.net.command.arguments.ArgumentTypeEntity;
 import net.minecraft.core.net.command.exceptions.CommandExceptions;
 import net.minecraft.core.net.command.helpers.EntitySelector;
 import net.minecraft.core.net.packet.UpdatePlayerProfilePacket;
 import net.minecraft.server.MinecraftServer;
-import net.minecraft.server.entity.player.ServerPlayer;
 
 import java.util.List;
 
-public class DeopCommand {
+public class CommandDeop {
     private static final SimpleCommandExceptionType FAILURE = new SimpleCommandExceptionType(() -> I18n.getInstance().translateKey("command.commands.deop.exception_failure"));
 
     public static void register(CommandDispatcher<CommandSource> dispatcher) {
         dispatcher.register(LiteralArgumentBuilder.<CommandSource>literal("deop")
             .requires(CommandSource::hasAdmin)
-            .then(RequiredArgumentBuilder.<CommandSource, EntitySelector>argument("target", EntityArgumentType.players())
+            .then(RequiredArgumentBuilder.<CommandSource, EntitySelector>argument("target", ArgumentTypeEntity.players())
                 .executes(c -> {
                     CommandSource source = c.getSource();
                     if (!(source instanceof IServerCommandSource))
@@ -37,7 +37,7 @@ public class DeopCommand {
                     boolean deoppedSomeone = false;
 
                     for (Entity entity : entities) {
-                        ServerPlayer player = (ServerPlayer) entity;
+                        PlayerServer player = (PlayerServer) entity;
                         if (player.isOperator()) {
                             deoppedSomeone = true;
                             server.playerList.deopPlayer(player.uuid);
diff --git a/src/main/java/net/minecraft/server/net/command/commands/DifficultyCommand.java b/src/main/java/net/minecraft/server/net/command/commands/CommandDifficulty.java
similarity index 99%
rename from src/main/java/net/minecraft/server/net/command/commands/DifficultyCommand.java
rename to src/main/java/net/minecraft/server/net/command/commands/CommandDifficulty.java
index e5cfa81ee..16a0b2eb9 100644
--- a/src/main/java/net/minecraft/server/net/command/commands/DifficultyCommand.java
+++ b/src/main/java/net/minecraft/server/net/command/commands/CommandDifficulty.java
@@ -14,7 +14,7 @@ import net.minecraft.core.net.command.exceptions.CommandExceptions;
 import java.util.Arrays;
 import java.util.List;
 
-public class DifficultyCommand {
+public class CommandDifficulty {
     public static void register(CommandDispatcher<CommandSource> dispatcher) {
         dispatcher.register(LiteralArgumentBuilder.<CommandSource>literal("difficulty")
                 .requires(CommandSource::hasAdmin)
diff --git a/src/main/java/net/minecraft/server/net/command/commands/EmotesCommand.java b/src/main/java/net/minecraft/server/net/command/commands/CommandEmotes.java
similarity index 97%
rename from src/main/java/net/minecraft/server/net/command/commands/EmotesCommand.java
rename to src/main/java/net/minecraft/server/net/command/commands/CommandEmotes.java
index 1e325dddc..b1adb5fb2 100644
--- a/src/main/java/net/minecraft/server/net/command/commands/EmotesCommand.java
+++ b/src/main/java/net/minecraft/server/net/command/commands/CommandEmotes.java
@@ -9,7 +9,7 @@ import net.minecraft.core.net.command.CommandSource;
 import java.util.ArrayList;
 import java.util.Map;
 
-public class EmotesCommand {
+public class CommandEmotes {
     public static void register(CommandDispatcher<CommandSource> dispatcher) {
         dispatcher.register(LiteralArgumentBuilder.<CommandSource>literal("emotes")
             .executes(c -> {
diff --git a/src/main/java/net/minecraft/server/net/command/commands/KickCommand.java b/src/main/java/net/minecraft/server/net/command/commands/CommandKick.java
similarity index 87%
rename from src/main/java/net/minecraft/server/net/command/commands/KickCommand.java
rename to src/main/java/net/minecraft/server/net/command/commands/CommandKick.java
index 642ccdc4b..a0e1cd6bf 100644
--- a/src/main/java/net/minecraft/server/net/command/commands/KickCommand.java
+++ b/src/main/java/net/minecraft/server/net/command/commands/CommandKick.java
@@ -7,13 +7,13 @@ import com.mojang.brigadier.builder.RequiredArgumentBuilder;
 import com.mojang.brigadier.exceptions.DynamicCommandExceptionType;
 import net.minecraft.core.lang.I18n;
 import net.minecraft.core.net.command.CommandSource;
-import net.minecraft.core.net.command.arguments.EntityArgumentType;
+import net.minecraft.core.net.command.arguments.ArgumentTypeEntity;
 import net.minecraft.core.net.command.exceptions.CommandExceptions;
 import net.minecraft.core.net.command.helpers.EntitySelector;
-import net.minecraft.server.entity.player.ServerPlayer;
+import net.minecraft.server.entity.player.PlayerServer;
 import net.minecraft.server.net.command.IServerCommandSource;
 
-public class KickCommand {
+public class CommandKick {
     private static final DynamicCommandExceptionType FAILURE =
         new DynamicCommandExceptionType(arg -> () -> I18n.getInstance().translateKeyAndFormat("command.commands.kick.exception_failure", arg));
 
@@ -22,12 +22,12 @@ public class KickCommand {
             (
                 LiteralArgumentBuilder.<CommandSource>literal("kick")
                     .requires(CommandSource::hasAdmin)
-                    .then(RequiredArgumentBuilder.<CommandSource, EntitySelector>argument("player", EntityArgumentType.player()).executes(c -> {
+                    .then(RequiredArgumentBuilder.<CommandSource, EntitySelector>argument("player", ArgumentTypeEntity.player()).executes(c -> {
                             CommandSource source = c.getSource();
                             if (!(source instanceof IServerCommandSource)) throw CommandExceptions.multiplayerWorldOnly().create();
 
                             EntitySelector entitySelector = c.getArgument("player", EntitySelector.class);
-                            ServerPlayer playerToKick = (ServerPlayer) entitySelector.get(source).get(0);
+                            PlayerServer playerToKick = (PlayerServer) entitySelector.get(source).get(0);
                             if(playerToKick != null)
                             {
                                 playerToKick.playerNetServerHandler.kickPlayer("Kicked by admin");
diff --git a/src/main/java/net/minecraft/server/net/command/commands/ListCommand.java b/src/main/java/net/minecraft/server/net/command/commands/CommandList.java
similarity index 98%
rename from src/main/java/net/minecraft/server/net/command/commands/ListCommand.java
rename to src/main/java/net/minecraft/server/net/command/commands/CommandList.java
index 40ea0835b..324a49007 100644
--- a/src/main/java/net/minecraft/server/net/command/commands/ListCommand.java
+++ b/src/main/java/net/minecraft/server/net/command/commands/CommandList.java
@@ -11,7 +11,7 @@ import net.minecraft.core.net.command.CommandSource;
 import net.minecraft.server.net.command.IServerCommandSource;
 import net.minecraft.core.net.command.exceptions.CommandExceptions;
 
-public class ListCommand {
+public class CommandList {
     private static final SimpleCommandExceptionType FAILURE = new SimpleCommandExceptionType(() -> I18n.getInstance().translateKey("command.commands.list.exception_failure"));
 
     public static void register(CommandDispatcher<CommandSource> dispatcher) {
diff --git a/src/main/java/net/minecraft/server/net/command/commands/MeCommand.java b/src/main/java/net/minecraft/server/net/command/commands/CommandMe.java
similarity index 98%
rename from src/main/java/net/minecraft/server/net/command/commands/MeCommand.java
rename to src/main/java/net/minecraft/server/net/command/commands/CommandMe.java
index fc1cddca8..bec59aa25 100644
--- a/src/main/java/net/minecraft/server/net/command/commands/MeCommand.java
+++ b/src/main/java/net/minecraft/server/net/command/commands/CommandMe.java
@@ -11,7 +11,7 @@ import net.minecraft.server.net.command.IServerCommandSource;
 import net.minecraft.core.net.command.exceptions.CommandExceptions;
 import net.minecraft.core.net.packet.ChatPacket;
 
-public class MeCommand {
+public class CommandMe {
     public static void register(CommandDispatcher<CommandSource> dispatcher) {
         dispatcher.register(LiteralArgumentBuilder.<CommandSource>literal("me")
             .then(RequiredArgumentBuilder.<CommandSource, Boolean>argument("asterisk", BoolArgumentType.bool())
diff --git a/src/main/java/net/minecraft/server/net/command/commands/NicknameCommand.java b/src/main/java/net/minecraft/server/net/command/commands/CommandNickname.java
similarity index 91%
rename from src/main/java/net/minecraft/server/net/command/commands/NicknameCommand.java
rename to src/main/java/net/minecraft/server/net/command/commands/CommandNickname.java
index 08c27d29e..f5b45f507 100644
--- a/src/main/java/net/minecraft/server/net/command/commands/NicknameCommand.java
+++ b/src/main/java/net/minecraft/server/net/command/commands/CommandNickname.java
@@ -10,22 +10,22 @@ import com.mojang.brigadier.tree.CommandNode;
 import net.minecraft.core.entity.Entity;
 import net.minecraft.core.lang.I18n;
 import net.minecraft.core.net.command.CommandSource;
-import net.minecraft.core.net.command.arguments.EntityArgumentType;
+import net.minecraft.core.net.command.arguments.ArgumentTypeEntity;
 import net.minecraft.core.net.command.exceptions.CommandExceptions;
 import net.minecraft.core.net.command.helpers.EntitySelector;
 import net.minecraft.core.net.packet.UpdatePlayerProfilePacket;
-import net.minecraft.server.entity.player.ServerPlayer;
+import net.minecraft.server.entity.player.PlayerServer;
 
 import java.util.List;
 
-public class NicknameCommand {
+public class CommandNickname {
     private static final SimpleCommandExceptionType NICKNAME_TOO_LARGE = new SimpleCommandExceptionType(() -> I18n.getInstance().translateKey("command.commands.nickname.exception_too_large"));
     private static final SimpleCommandExceptionType NICKNAME_TOO_SMALL = new SimpleCommandExceptionType(() -> I18n.getInstance().translateKey("command.commands.nickname.exception_too_small"));
 
     public static void register(CommandDispatcher<CommandSource> dispatcher) {
         CommandNode<CommandSource> command = dispatcher.register(LiteralArgumentBuilder.<CommandSource>literal("nickname")
             .then(LiteralArgumentBuilder.<CommandSource>literal("set")
-                .then(RequiredArgumentBuilder.<CommandSource, EntitySelector>argument("target", EntityArgumentType.player())
+                .then(RequiredArgumentBuilder.<CommandSource, EntitySelector>argument("target", ArgumentTypeEntity.player())
                     .requires(CommandSource::hasAdmin)
                     .then(RequiredArgumentBuilder.<CommandSource, String>argument("nickname", StringArgumentType.greedyString())
                         .executes(c -> {
@@ -36,7 +36,7 @@ public class NicknameCommand {
                             if (nickname.isEmpty()) throw NICKNAME_TOO_SMALL.create();
                             List<? extends Entity> entities = entitySelector.get(source);
 
-                            ServerPlayer player = (ServerPlayer) entities.get(0);
+                            PlayerServer player = (PlayerServer) entities.get(0);
 
                             player.nickname = nickname;
                             player.hadNicknameSet = true;
@@ -56,7 +56,7 @@ public class NicknameCommand {
                         if (nickname.length() > 16) throw NICKNAME_TOO_LARGE.create();
                         if (nickname.isEmpty()) throw NICKNAME_TOO_SMALL.create();
 
-                        ServerPlayer player = (ServerPlayer) source.getSender();
+                        PlayerServer player = (PlayerServer) source.getSender();
 
                         if (player == null) throw CommandExceptions.notInWorld().create();
 
@@ -69,25 +69,25 @@ public class NicknameCommand {
                         return Command.SINGLE_SUCCESS;
                     })))
             .then(LiteralArgumentBuilder.<CommandSource>literal("get")
-                .then(RequiredArgumentBuilder.<CommandSource, EntitySelector>argument("target", EntityArgumentType.player())
+                .then(RequiredArgumentBuilder.<CommandSource, EntitySelector>argument("target", ArgumentTypeEntity.player())
                     .executes(c -> {
                         CommandSource source = c.getSource();
                         EntitySelector entitySelector = c.getArgument("target", EntitySelector.class);
                         List<? extends Entity> entities = entitySelector.get(source);
-                        ServerPlayer player = (ServerPlayer) entities.get(0);
+                        PlayerServer player = (PlayerServer) entities.get(0);
 
                         source.sendTranslatableMessage("command.commands.nickname.get.success", player.username, player.nickname);
                         return Command.SINGLE_SUCCESS;
                     })))
             .then(LiteralArgumentBuilder.<CommandSource>literal("reset")
-                .then(RequiredArgumentBuilder.<CommandSource, EntitySelector>argument("target", EntityArgumentType.player())
+                .then(RequiredArgumentBuilder.<CommandSource, EntitySelector>argument("target", ArgumentTypeEntity.player())
                     .requires(CommandSource::hasAdmin)
                     .executes(c -> {
                         CommandSource source = c.getSource();
                         EntitySelector entitySelector = c.getArgument("target", EntitySelector.class);
                         List<? extends Entity> entities = entitySelector.get(source);
 
-                        ServerPlayer player = (ServerPlayer) entities.get(0);
+                        PlayerServer player = (PlayerServer) entities.get(0);
 
                         player.nickname = "";
                         player.hadNicknameSet = false;
@@ -103,7 +103,7 @@ public class NicknameCommand {
                 .executes(c -> {
                     CommandSource source = c.getSource();
 
-                    ServerPlayer player = (ServerPlayer) source.getSender();
+                    PlayerServer player = (PlayerServer) source.getSender();
 
                     if (player == null) throw CommandExceptions.notInWorld().create();
 
diff --git a/src/main/java/net/minecraft/server/net/command/commands/OpCommand.java b/src/main/java/net/minecraft/server/net/command/commands/CommandOp.java
similarity index 90%
rename from src/main/java/net/minecraft/server/net/command/commands/OpCommand.java
rename to src/main/java/net/minecraft/server/net/command/commands/CommandOp.java
index 57deba69f..b9de58b1e 100644
--- a/src/main/java/net/minecraft/server/net/command/commands/OpCommand.java
+++ b/src/main/java/net/minecraft/server/net/command/commands/CommandOp.java
@@ -8,23 +8,23 @@ import com.mojang.brigadier.exceptions.SimpleCommandExceptionType;
 import net.minecraft.core.entity.Entity;
 import net.minecraft.core.lang.I18n;
 import net.minecraft.core.net.command.CommandSource;
+import net.minecraft.server.entity.player.PlayerServer;
 import net.minecraft.server.net.command.IServerCommandSource;
-import net.minecraft.core.net.command.arguments.EntityArgumentType;
+import net.minecraft.core.net.command.arguments.ArgumentTypeEntity;
 import net.minecraft.core.net.command.exceptions.CommandExceptions;
 import net.minecraft.core.net.command.helpers.EntitySelector;
 import net.minecraft.core.net.packet.UpdatePlayerProfilePacket;
 import net.minecraft.server.MinecraftServer;
-import net.minecraft.server.entity.player.ServerPlayer;
 
 import java.util.List;
 
-public class OpCommand {
+public class CommandOp {
     private static final SimpleCommandExceptionType FAILURE = new SimpleCommandExceptionType(() -> I18n.getInstance().translateKey("command.commands.op.exception_failure"));
 
     public static void register(CommandDispatcher<CommandSource> dispatcher) {
         dispatcher.register(LiteralArgumentBuilder.<CommandSource>literal("op")
             .requires(CommandSource::hasAdmin)
-            .then(RequiredArgumentBuilder.<CommandSource, EntitySelector>argument("target", EntityArgumentType.players())
+            .then(RequiredArgumentBuilder.<CommandSource, EntitySelector>argument("target", ArgumentTypeEntity.players())
                 .executes(c -> {
                     CommandSource source = c.getSource();
                     if (!(source instanceof IServerCommandSource))
@@ -37,7 +37,7 @@ public class OpCommand {
                     boolean oppedSomeone = false;
 
                     for (Entity entity : entities) {
-                        ServerPlayer player = (ServerPlayer) entity;
+                        PlayerServer player = (PlayerServer) entity;
                         if (!player.isOperator()) {
                             oppedSomeone = true;
                             server.playerList.opPlayer(player.uuid);
diff --git a/src/main/java/net/minecraft/server/net/command/commands/SaveCommand.java b/src/main/java/net/minecraft/server/net/command/commands/CommandSave.java
similarity index 99%
rename from src/main/java/net/minecraft/server/net/command/commands/SaveCommand.java
rename to src/main/java/net/minecraft/server/net/command/commands/CommandSave.java
index a52105084..087044399 100644
--- a/src/main/java/net/minecraft/server/net/command/commands/SaveCommand.java
+++ b/src/main/java/net/minecraft/server/net/command/commands/CommandSave.java
@@ -14,7 +14,7 @@ import net.minecraft.server.MinecraftServer;
 import net.minecraft.server.net.command.IServerCommandSource;
 import net.minecraft.server.world.WorldServer;
 
-public class SaveCommand {
+public class CommandSave {
     private static final DynamicCommandExceptionType FAILURE =
         new DynamicCommandExceptionType(arg -> () -> I18n.getInstance().translateKeyAndFormat("command.commands.save.exception_failure", arg));
 
diff --git a/src/main/java/net/minecraft/server/net/command/commands/ScoreCommand.java b/src/main/java/net/minecraft/server/net/command/commands/CommandScore.java
similarity index 88%
rename from src/main/java/net/minecraft/server/net/command/commands/ScoreCommand.java
rename to src/main/java/net/minecraft/server/net/command/commands/CommandScore.java
index ad1833461..498479034 100644
--- a/src/main/java/net/minecraft/server/net/command/commands/ScoreCommand.java
+++ b/src/main/java/net/minecraft/server/net/command/commands/CommandScore.java
@@ -8,18 +8,18 @@ import com.mojang.brigadier.exceptions.CommandSyntaxException;
 import net.minecraft.core.entity.Entity;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.net.command.CommandSource;
+import net.minecraft.server.entity.player.PlayerServer;
 import net.minecraft.server.net.command.IServerCommandSource;
-import net.minecraft.core.net.command.arguments.EntityArgumentType;
+import net.minecraft.core.net.command.arguments.ArgumentTypeEntity;
 import net.minecraft.core.net.command.exceptions.CommandExceptions;
 import net.minecraft.core.net.command.helpers.EntitySelector;
 import net.minecraft.core.net.command.util.CommandHelper;
 import net.minecraft.core.net.packet.UpdatePlayerProfilePacket;
 import net.minecraft.server.MinecraftServer;
-import net.minecraft.server.entity.player.ServerPlayer;
 
 import java.util.List;
 
-public class ScoreCommand {
+public class CommandScore {
     public static void register(CommandDispatcher<CommandSource> dispatcher) {
         dispatcher.register(LiteralArgumentBuilder.<CommandSource>literal("score")
             .then(LiteralArgumentBuilder.<CommandSource>literal("get")
@@ -30,7 +30,7 @@ public class ScoreCommand {
                     source.sendTranslatableMessage("command.commands.score.get.success", player.score);
                     return player.score;
                 })
-                .then(RequiredArgumentBuilder.<CommandSource, EntitySelector>argument("target", EntityArgumentType.player())
+                .then(RequiredArgumentBuilder.<CommandSource, EntitySelector>argument("target", ArgumentTypeEntity.player())
                     .requires(CommandSource::hasAdmin)
                     .executes(c -> {
                         CommandSource source = c.getSource();
@@ -45,7 +45,7 @@ public class ScoreCommand {
                     })))
             .then(LiteralArgumentBuilder.<CommandSource>literal("set")
                 .requires(CommandSource::hasAdmin)
-                .then(RequiredArgumentBuilder.<CommandSource, EntitySelector>argument("target", EntityArgumentType.players())
+                .then(RequiredArgumentBuilder.<CommandSource, EntitySelector>argument("target", ArgumentTypeEntity.players())
                     .then(RequiredArgumentBuilder.<CommandSource, Integer>argument("score", IntegerArgumentType.integer(0, Integer.MAX_VALUE))
                         .executes(c -> {
                             CommandSource source = c.getSource();
@@ -53,13 +53,13 @@ public class ScoreCommand {
                             List<? extends Entity> entities = entitySelector.get(source);
                             int score = c.getArgument("score", Integer.class);
                             for (Entity entity : entities) {
-                                setPlayerScore(source, (ServerPlayer) entity, score);
+                                setPlayerScore(source, (PlayerServer) entity, score);
                             }
                             return score;
                         }))))
             .then(LiteralArgumentBuilder.<CommandSource>literal("add")
                 .requires(CommandSource::hasAdmin)
-                .then(RequiredArgumentBuilder.<CommandSource, EntitySelector>argument("target", EntityArgumentType.players())
+                .then(RequiredArgumentBuilder.<CommandSource, EntitySelector>argument("target", ArgumentTypeEntity.players())
                     .then(RequiredArgumentBuilder.<CommandSource, Integer>argument("score", IntegerArgumentType.integer(0, Integer.MAX_VALUE))
                         .executes(c -> {
                             CommandSource source = c.getSource();
@@ -67,13 +67,13 @@ public class ScoreCommand {
                             List<? extends Entity> entities = entitySelector.get(source);
                             int score = c.getArgument("score", Integer.class);
                             for (Entity entity : entities) {
-                                setPlayerScore(source, (ServerPlayer) entity, ((ServerPlayer) entity).score + score);
+                                setPlayerScore(source, (PlayerServer) entity, ((PlayerServer) entity).score + score);
                             }
                             return score;
                         })))));
     }
 
-    private static void setPlayerScore(CommandSource source, ServerPlayer player, int score) throws CommandSyntaxException {
+    private static void setPlayerScore(CommandSource source, PlayerServer player, int score) throws CommandSyntaxException {
         if (!(source instanceof IServerCommandSource)) throw CommandExceptions.multiplayerWorldOnly().create();
         MinecraftServer server = ((IServerCommandSource) source).getServer();
         player.score = score;
diff --git a/src/main/java/net/minecraft/server/net/command/commands/StopCommand.java b/src/main/java/net/minecraft/server/net/command/commands/CommandStop.java
similarity index 98%
rename from src/main/java/net/minecraft/server/net/command/commands/StopCommand.java
rename to src/main/java/net/minecraft/server/net/command/commands/CommandStop.java
index 409b1cc57..2c9eedbe0 100644
--- a/src/main/java/net/minecraft/server/net/command/commands/StopCommand.java
+++ b/src/main/java/net/minecraft/server/net/command/commands/CommandStop.java
@@ -9,7 +9,7 @@ import net.minecraft.core.net.command.CommandSource;
 import net.minecraft.server.net.command.IServerCommandSource;
 import net.minecraft.core.net.command.exceptions.CommandExceptions;
 
-public class StopCommand {
+public class CommandStop {
     public static void register(CommandDispatcher<CommandSource> dispatcher) {
         dispatcher.register(LiteralArgumentBuilder.<CommandSource>literal("stop")
                 .requires(CommandSource::hasAdmin)
diff --git a/src/main/java/net/minecraft/server/net/command/commands/UnbanCommand.java b/src/main/java/net/minecraft/server/net/command/commands/CommandUnban.java
similarity index 99%
rename from src/main/java/net/minecraft/server/net/command/commands/UnbanCommand.java
rename to src/main/java/net/minecraft/server/net/command/commands/CommandUnban.java
index 3fa77754f..7af0aa6c0 100644
--- a/src/main/java/net/minecraft/server/net/command/commands/UnbanCommand.java
+++ b/src/main/java/net/minecraft/server/net/command/commands/CommandUnban.java
@@ -13,7 +13,7 @@ import net.minecraft.core.util.helper.UUIDHelper;
 import net.minecraft.server.MinecraftServer;
 import net.minecraft.server.net.command.IServerCommandSource;
 
-public class UnbanCommand {
+public class CommandUnban {
     private static final DynamicCommandExceptionType FAILURE =
         new DynamicCommandExceptionType(arg -> () -> I18n.getInstance().translateKeyAndFormat("command.commands.unban.exception_failure", arg));
 
diff --git a/src/main/java/net/minecraft/server/net/command/commands/WhitelistCommand.java b/src/main/java/net/minecraft/server/net/command/commands/CommandWhitelist.java
similarity index 97%
rename from src/main/java/net/minecraft/server/net/command/commands/WhitelistCommand.java
rename to src/main/java/net/minecraft/server/net/command/commands/CommandWhitelist.java
index b6c9679f9..bbaeae680 100644
--- a/src/main/java/net/minecraft/server/net/command/commands/WhitelistCommand.java
+++ b/src/main/java/net/minecraft/server/net/command/commands/CommandWhitelist.java
@@ -11,13 +11,13 @@ import net.minecraft.core.net.command.CommandSource;
 import net.minecraft.core.net.command.exceptions.CommandExceptions;
 import net.minecraft.core.util.helper.UUIDHelper;
 import net.minecraft.server.MinecraftServer;
-import net.minecraft.server.entity.player.ServerPlayer;
+import net.minecraft.server.entity.player.PlayerServer;
 import net.minecraft.server.net.command.IServerCommandSource;
 
 import java.util.Set;
 import java.util.UUID;
 
-public class WhitelistCommand {
+public class CommandWhitelist {
     private static final DynamicCommandExceptionType FAILURE =
         new DynamicCommandExceptionType(arg -> () -> I18n.getInstance().translateKeyAndFormat("command.commands.whitelist.exception_failure", arg));
 
@@ -84,7 +84,7 @@ public class WhitelistCommand {
 
                         String nameToAdd = c.getArgument("name", String.class);
 
-                        ServerPlayer player = server.playerList.getPlayerEntity(nameToAdd);
+                        PlayerServer player = server.playerList.getPlayerEntity(nameToAdd);
                         if(player != null) {
                             server.playerList.addToWhiteList(player.uuid);
                             c.getSource().sendTranslatableMessage("command.commands.whitelist.add.success", player.username);
@@ -106,7 +106,7 @@ public class WhitelistCommand {
 
                                 String nameToAdd = c.getArgument("name", String.class);
 
-                                ServerPlayer player = server.playerList.getPlayerEntity(nameToAdd);
+                                PlayerServer player = server.playerList.getPlayerEntity(nameToAdd);
                                 if(player != null) {
                                     server.playerList.removeFromWhiteList(player.uuid);
                                     c.getSource().sendTranslatableMessage("command.commands.whitelist.remove.success", player.username);
diff --git a/src/main/java/net/minecraft/server/net/command/commands/WhoIsCommand.java b/src/main/java/net/minecraft/server/net/command/commands/CommandWhoIs.java
similarity index 90%
rename from src/main/java/net/minecraft/server/net/command/commands/WhoIsCommand.java
rename to src/main/java/net/minecraft/server/net/command/commands/CommandWhoIs.java
index 11e46f11f..ba2f5f9c8 100644
--- a/src/main/java/net/minecraft/server/net/command/commands/WhoIsCommand.java
+++ b/src/main/java/net/minecraft/server/net/command/commands/CommandWhoIs.java
@@ -8,13 +8,13 @@ import com.mojang.brigadier.tree.CommandNode;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.net.command.util.CommandHelper;
 import net.minecraft.core.net.command.CommandSource;
-import net.minecraft.core.net.command.arguments.EntityArgumentType;
+import net.minecraft.core.net.command.arguments.ArgumentTypeEntity;
 import net.minecraft.core.net.command.helpers.EntitySelector;
 
-public class WhoIsCommand {
+public class CommandWhoIs {
     public static void register(CommandDispatcher<CommandSource> dispatcher) {
         CommandNode<CommandSource> command = dispatcher.register(LiteralArgumentBuilder.<CommandSource>literal("whois")
-                .then(RequiredArgumentBuilder.<CommandSource, EntitySelector>argument("target", EntityArgumentType.player())
+                .then(RequiredArgumentBuilder.<CommandSource, EntitySelector>argument("target", ArgumentTypeEntity.player())
                         .executes(c -> {
                             CommandSource source = c.getSource();
                             EntitySelector entitySelector = c.getArgument("target", EntitySelector.class);
diff --git a/src/main/java/net/minecraft/server/net/handler/LoginPacketHandler.java b/src/main/java/net/minecraft/server/net/handler/PacketHandlerLogin.java
similarity index 93%
rename from src/main/java/net/minecraft/server/net/handler/LoginPacketHandler.java
rename to src/main/java/net/minecraft/server/net/handler/PacketHandlerLogin.java
index 9ebdd6156..983210804 100644
--- a/src/main/java/net/minecraft/server/net/handler/LoginPacketHandler.java
+++ b/src/main/java/net/minecraft/server/net/handler/PacketHandlerLogin.java
@@ -7,7 +7,7 @@ import net.minecraft.core.data.registry.recipe.RecipeEntryBase;
 import net.minecraft.server.net.command.ServerCommandSource;
 import net.minecraft.core.net.handler.PacketHandler;
 import net.minecraft.core.util.helper.UUIDHelper;
-import net.minecraft.server.entity.player.ServerPlayer;
+import net.minecraft.server.entity.player.PlayerServer;
 import net.minecraft.core.net.NetworkManager;
 import net.minecraft.core.net.command.TextFormatting;
 import net.minecraft.core.net.packet.*;
@@ -29,7 +29,7 @@ import java.security.Key;
 import java.util.Random;
 import java.util.UUID;
 
-public class LoginPacketHandler extends PacketHandler
+public class PacketHandlerLogin extends PacketHandler
 {
     private static final Logger LOGGER = LogUtils.getLogger();
     private static final Random rand = new Random();
@@ -42,7 +42,7 @@ public class LoginPacketHandler extends PacketHandler
     private String serverId;
     public static String kickMessage = null;
 
-    public LoginPacketHandler(MinecraftServer minecraftserver, Socket socket, String s)
+    public PacketHandlerLogin(MinecraftServer minecraftserver, Socket socket, String s)
             throws IOException
     {
         finishedProcessing = false;
@@ -132,14 +132,14 @@ public class LoginPacketHandler extends PacketHandler
                 () -> {
                     try
                     {
-                        String s = LoginPacketHandler.getServerId(this);
+                        String s = PacketHandlerLogin.getServerId(this);
                         URL url = new URL("http://session.minecraft.net/game/checkserver.jsp?user=" + URLEncoder.encode(loginPacket.username, "UTF-8") + "&serverId=" + URLEncoder.encode(s, "UTF-8"));
                         BufferedReader bufferedreader = new BufferedReader(new InputStreamReader(url.openStream()));
                         String s1 = bufferedreader.readLine();
                         bufferedreader.close();
                         if(s1.equals("YES"))
                         {
-                            LoginPacketHandler.setLoginPacket(this, loginPacket);
+                            PacketHandlerLogin.setLoginPacket(this, loginPacket);
                         } else
                         {
                             this.kickUser("Failed to verify username!");
@@ -168,7 +168,7 @@ public class LoginPacketHandler extends PacketHandler
                 return;
             }
         }
-        ServerPlayer player = mcServer.playerList.getPlayerForLogin(this, loginPacket.username, loginPacket.uuid);
+        PlayerServer player = mcServer.playerList.getPlayerForLogin(this, loginPacket.username, loginPacket.uuid);
         if (player != null)
         {
             mcServer.playerList.load(player);
@@ -176,7 +176,7 @@ public class LoginPacketHandler extends PacketHandler
             LOGGER.info(getUserAndIPString() + " logged in with entity id " + player.id + " at (" + player.x + ", " + player.y + ", " + player.z + ")");
             WorldServer worldserver = mcServer.getDimensionWorld(player.dimension);
             ChunkCoordinates chunkcoordinates = worldserver.getSpawnPoint();
-            ServerPacketHandler packetHandler = new ServerPacketHandler(mcServer, netManager, player);
+            PacketHandlerServer packetHandler = new PacketHandlerServer(mcServer, netManager, player);
             try
             {
                 packetHandler.sendPacket(new LoginPacket("", new UUID(0, 0), player.id, worldserver.getRandomSeed(), (byte) worldserver.dimension.id, (byte) Registries.WORLD_TYPES.getNumericIdOfItem(worldserver.dimensionData.getWorldType()), NetworkManager.PACKET_DELAY, RSA.getPublicKey(RSA.RSAKeyChain.getPublic())));
@@ -295,13 +295,13 @@ public class LoginPacketHandler extends PacketHandler
         return true;
     }
 
-    public static String getServerId(LoginPacketHandler loginPacketHandler)
+    public static String getServerId(PacketHandlerLogin packetHandlerLogin)
     {
-        return loginPacketHandler.serverId;
+        return packetHandlerLogin.serverId;
     }
 
-    public static LoginPacket setLoginPacket(LoginPacketHandler loginPacketHandler, LoginPacket loginPacket)
+    public static LoginPacket setLoginPacket(PacketHandlerLogin packetHandlerLogin, LoginPacket loginPacket)
     {
-        return loginPacketHandler.loginPacket = loginPacket;
+        return packetHandlerLogin.loginPacket = loginPacket;
     }
 }
diff --git a/src/main/java/net/minecraft/server/net/handler/ServerPacketHandler.java b/src/main/java/net/minecraft/server/net/handler/PacketHandlerServer.java
similarity index 94%
rename from src/main/java/net/minecraft/server/net/handler/ServerPacketHandler.java
rename to src/main/java/net/minecraft/server/net/handler/PacketHandlerServer.java
index 5f9b17c1e..22a799429 100644
--- a/src/main/java/net/minecraft/server/net/handler/ServerPacketHandler.java
+++ b/src/main/java/net/minecraft/server/net/handler/PacketHandlerServer.java
@@ -2,10 +2,10 @@ package net.minecraft.server.net.handler;
 
 import com.mojang.brigadier.exceptions.CommandSyntaxException;
 import com.mojang.logging.LogUtils;
-import net.minecraft.core.block.entity.BlockEntity;
-import net.minecraft.core.block.entity.FlagBlockEntity;
-import net.minecraft.core.block.entity.MobSpawnerBlockEntity;
-import net.minecraft.core.block.entity.SignBlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
+import net.minecraft.core.block.entity.TileEntityFlag;
+import net.minecraft.core.block.entity.TileEntityMobSpawner;
+import net.minecraft.core.block.entity.TileEntitySign;
 import net.minecraft.core.entity.Entity;
 import net.minecraft.core.entity.vehicle.BoatEntity;
 import net.minecraft.core.enums.ArtType;
@@ -17,14 +17,14 @@ import net.minecraft.core.net.ChatEmotes;
 import net.minecraft.core.net.ICommandListener;
 import net.minecraft.core.net.NetworkManager;
 import net.minecraft.core.net.command.TextFormatting;
+import net.minecraft.core.player.inventory.container.ContainerInventory;
 import net.minecraft.core.world.World;
 import net.minecraft.server.net.command.ServerCommandSource;
 import net.minecraft.core.net.handler.PacketHandler;
 import net.minecraft.core.net.packet.*;
 import net.minecraft.core.player.gamemode.Gamemode;
-import net.minecraft.core.player.inventory.menu.FlagMenu;
-import net.minecraft.core.player.inventory.menu.CreativeInventoryMenu;
-import net.minecraft.core.player.inventory.container.Inventory;
+import net.minecraft.core.player.inventory.menu.MenuFlag;
+import net.minecraft.core.player.inventory.menu.MenuInventoryCreative;
 import net.minecraft.core.player.inventory.slot.Slot;
 import net.minecraft.core.util.helper.AES;
 import net.minecraft.core.util.helper.ChatAllowedCharacters;
@@ -36,7 +36,7 @@ import net.minecraft.core.util.phys.HitResult;
 import net.minecraft.core.util.phys.Vec3;
 import net.minecraft.core.world.chunk.ChunkCoordinates;
 import net.minecraft.server.MinecraftServer;
-import net.minecraft.server.entity.player.ServerPlayer;
+import net.minecraft.server.entity.player.PlayerServer;
 import net.minecraft.server.util.helper.PlayerList;
 import net.minecraft.server.world.WorldServer;
 import org.slf4j.Logger;
@@ -46,11 +46,11 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Map;
 
-public class ServerPacketHandler extends PacketHandler
+public class PacketHandlerServer extends PacketHandler
         implements ICommandListener
 {
 
-    public ServerPacketHandler(MinecraftServer minecraftserver, NetworkManager networkManager, ServerPlayer player)
+    public PacketHandlerServer(MinecraftServer minecraftserver, NetworkManager networkManager, PlayerServer player)
     {
         connectionClosed = false;
         hasMoved = true;
@@ -96,10 +96,10 @@ public class ServerPacketHandler extends PacketHandler
         WorldServer world = mcServer.getDimensionWorld(playerEntity.dimension);
         if (playerEntity.getGamemode() == Gamemode.creative && world.isBlockLoaded(packet.xPosition, packet.yPosition, packet.zPosition))
         {
-            BlockEntity tileentity = world.getBlockEntity(packet.xPosition, packet.yPosition, packet.zPosition);
-            if (tileentity instanceof MobSpawnerBlockEntity)
+            TileEntity tileentity = world.getBlockEntity(packet.xPosition, packet.yPosition, packet.zPosition);
+            if (tileentity instanceof TileEntityMobSpawner)
             {
-                MobSpawnerBlockEntity tileEntityMobSpawner = (MobSpawnerBlockEntity) tileentity;
+                TileEntityMobSpawner tileEntityMobSpawner = (TileEntityMobSpawner) tileentity;
                 tileEntityMobSpawner.setMobId(packet.spawnType);
 
                 tileEntityMobSpawner.setChanged();
@@ -359,9 +359,9 @@ public class ServerPacketHandler extends PacketHandler
 
     public void handleSendInitialPlayerList()
     {
-        for (ServerPlayer serverPlayer : mcServer.playerList.playerEntities)
+        for (PlayerServer playerServer : mcServer.playerList.playerEntities)
         {
-            sendPacket(new UpdatePlayerProfilePacket(serverPlayer.username, serverPlayer.nickname, serverPlayer.uuid, serverPlayer.score, serverPlayer.chatColor, true, serverPlayer.isOperator()));
+            sendPacket(new UpdatePlayerProfilePacket(playerServer.username, playerServer.nickname, playerServer.uuid, playerServer.score, playerServer.chatColor, true, playerServer.isOperator()));
         }
     }
 
@@ -456,7 +456,7 @@ public class ServerPacketHandler extends PacketHandler
     @Override
     public void handleBlockItemSwitch(SetCarriedItemPacket setCarriedItemPacket)
     {
-        if (setCarriedItemPacket.id < 0 || setCarriedItemPacket.id > Inventory.playerMainInventorySize())
+        if (setCarriedItemPacket.id < 0 || setCarriedItemPacket.id > ContainerInventory.playerMainInventorySize())
         {
             LOGGER.warn("{} tried to set an invalid carried item", playerEntity.username);
         }
@@ -693,10 +693,10 @@ public class ServerPacketHandler extends PacketHandler
         WorldServer worldserver = mcServer.getDimensionWorld(playerEntity.dimension);
         if (worldserver.isBlockLoaded(signUpdatePacket.xPosition, signUpdatePacket.yPosition, signUpdatePacket.zPosition))
         {
-            BlockEntity blockEntity = worldserver.getBlockEntity(signUpdatePacket.xPosition, signUpdatePacket.yPosition, signUpdatePacket.zPosition);
-            if (blockEntity instanceof SignBlockEntity)
+            TileEntity blockEntity = worldserver.getBlockEntity(signUpdatePacket.xPosition, signUpdatePacket.yPosition, signUpdatePacket.zPosition);
+            if (blockEntity instanceof TileEntitySign)
             {
-                SignBlockEntity sign = (SignBlockEntity) blockEntity;
+                TileEntitySign sign = (TileEntitySign) blockEntity;
                 if (!sign.isEditableBy(playerEntity))
                 {
                     LOGGER.warn("Player {} just tried to change non-editable sign", playerEntity.username);
@@ -728,12 +728,12 @@ public class ServerPacketHandler extends PacketHandler
                 }
             }
 
-            if (blockEntity instanceof SignBlockEntity)
+            if (blockEntity instanceof TileEntitySign)
             {
                 int x = signUpdatePacket.xPosition;
                 int y = signUpdatePacket.yPosition;
                 int z = signUpdatePacket.zPosition;
-                SignBlockEntity tileEntity = (SignBlockEntity) blockEntity;
+                TileEntitySign tileEntity = (TileEntitySign) blockEntity;
                 System.arraycopy(signUpdatePacket.signLines, 0, tileEntity.signText, 0, 4);
 
                 tileEntity.setColor(TextFormatting.FORMATTINGS[signUpdatePacket.color]);
@@ -748,9 +748,9 @@ public class ServerPacketHandler extends PacketHandler
     @Override
     public void handleUpdateCreativeInventory(UpdateCreativeInventoryPacket packet)
     {
-        if (playerEntity.craftingInventory.containerId == packet.windowId && playerEntity.craftingInventory instanceof CreativeInventoryMenu)
+        if (playerEntity.craftingInventory.containerId == packet.windowId && playerEntity.craftingInventory instanceof MenuInventoryCreative)
         {
-            ((CreativeInventoryMenu) playerEntity.craftingInventory).setInventoryStatus(packet.page, packet.searchText);
+            ((MenuInventoryCreative) playerEntity.craftingInventory).setInventoryStatus(packet.page, packet.searchText);
         }
     }
 
@@ -788,9 +788,9 @@ public class ServerPacketHandler extends PacketHandler
         		playerEntity.placementModeOverride = PlacementMode.get(customPayloadPacket.data[3]);
     		}
     	}else if("BTA|Flag".equals(customPayloadPacket.channel)) {
-    		if(customPayloadPacket.data.length == 24 * 16 && playerEntity.craftingInventory instanceof FlagMenu) {
-    			FlagMenu flagMenu = (FlagMenu) playerEntity.craftingInventory;
-    			FlagBlockEntity flag = flagMenu.flag;
+    		if(customPayloadPacket.data.length == 24 * 16 && playerEntity.craftingInventory instanceof MenuFlag) {
+    			MenuFlag menuFlag = (MenuFlag) playerEntity.craftingInventory;
+    			TileEntityFlag flag = menuFlag.flag;
 
     			if(flag.owner == null || flag.owner.equals(playerEntity.uuid)) {
                     flag.owner = playerEntity.uuid;
@@ -836,7 +836,7 @@ public class ServerPacketHandler extends PacketHandler
     public NetworkManager netManager;
     public boolean connectionClosed;
     private final MinecraftServer mcServer;
-    private ServerPlayer playerEntity;
+    private PlayerServer playerEntity;
     private int field_15_f;
     private int field_22004_g;
     private int playerInAirTime;
diff --git a/src/main/java/net/minecraft/server/player/PlayerManager.java b/src/main/java/net/minecraft/server/player/PlayerManager.java
index 773ef4407..059fa3db1 100644
--- a/src/main/java/net/minecraft/server/player/PlayerManager.java
+++ b/src/main/java/net/minecraft/server/player/PlayerManager.java
@@ -4,18 +4,18 @@ import java.util.ArrayList;
 import java.util.List;
 
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.net.packet.*;
+import net.minecraft.server.entity.player.PlayerServer;
 import net.minecraft.server.net.PlayerHash;
 import net.minecraft.core.world.chunk.Chunk;
 import net.minecraft.core.world.chunk.ChunkCoordinate;
-import net.minecraft.server.entity.player.ServerPlayer;
 import net.minecraft.server.world.WorldServer;
 import net.minecraft.server.MinecraftServer;
 
 public class PlayerManager
 {
-    public final List<ServerPlayer> players;
+    public final List<PlayerServer> players;
     private final PlayerHash playerInstances;
     private final List<PlayerInstance> playerInstancesToUpdate;
     private final MinecraftServer server;
@@ -78,7 +78,7 @@ public class PlayerManager
         }
     }
 
-    public void addPlayer(ServerPlayer player)
+    public void addPlayer(PlayerServer player)
     {
         int xChunk = (int)player.x >> 4;
         int zChunk = (int)player.z >> 4;
@@ -114,7 +114,7 @@ public class PlayerManager
         players.add(player);
     }
 
-    public void removePlayer(ServerPlayer entityplayermp)
+    public void removePlayer(PlayerServer entityplayermp)
     {
         int i = (int)entityplayermp.viewingX >> 4;
         int j = (int)entityplayermp.viewingZ >> 4;
@@ -141,7 +141,7 @@ public class PlayerManager
         return cDZ >= -viewRadius && cDZ <= viewRadius && cDX >= -viewRadius && cDX <= viewRadius;
     }
 
-    public void onPlayerMoved(ServerPlayer player)
+    public void onPlayerMoved(PlayerServer player)
     {
         int chunkX = (int)player.x >> 4;
         int chunkZ = (int)player.z >> 4;
@@ -191,7 +191,7 @@ public class PlayerManager
     }
 
     class PlayerInstance {
-        private final List<ServerPlayer> players;
+        private final List<PlayerServer> players;
         private final int chunkX;
         private final int chunkZ;
         private final ChunkCoordinate currentChunk;
@@ -214,7 +214,7 @@ public class PlayerManager
             server.getDimensionWorld(dimension).chunkProviderServer.prepareChunk(chunkX, chunkZ);
         }
 
-        public void addPlayer(ServerPlayer player) {
+        public void addPlayer(PlayerServer player) {
             if (players.contains(player)) {
                 throw new IllegalStateException("Failed to add player. " + player + " already is in chunk " + chunkX + ", " + chunkZ);
             } else {
@@ -225,7 +225,7 @@ public class PlayerManager
             }
         }
 
-        public void removePlayer(ServerPlayer player) {
+        public void removePlayer(PlayerServer player) {
             if (!players.contains(player)) {
                 return;
             }
@@ -283,7 +283,7 @@ public class PlayerManager
 
         public void sendPacketToPlayersInInstance(Packet packet) {
             for (int i = 0; i < players.size(); i++) {
-                ServerPlayer entityplayermp = (ServerPlayer) players.get(i);
+                PlayerServer entityplayermp = (PlayerServer) players.get(i);
                 if (entityplayermp.field_420_ah.contains(currentChunk)) {
                     entityplayermp.playerNetServerHandler.sendPacket(packet);
                 }
@@ -325,10 +325,10 @@ public class PlayerManager
     //	            zSize = 16;
     //            }
                 sendPacketToPlayersInInstance(new BlockRegionUpdatePacket(minWorldX, minWorldY, minWorldZ, xSize, ySize, zSize, world));
-                List<BlockEntity> list = world.getBlockEntitiesWithinBounds(minWorldX, minWorldY, minWorldZ, minWorldX + xSize, minWorldY + ySize, minWorldZ + zSize);
+                List<TileEntity> list = world.getBlockEntitiesWithinBounds(minWorldX, minWorldY, minWorldZ, minWorldX + xSize, minWorldY + ySize, minWorldZ + zSize);
                 for(int j3 = 0; j3 < list.size(); j3++)
                 {
-                    updateTileEntity((BlockEntity)list.get(j3));
+                    updateTileEntity((TileEntity)list.get(j3));
                 }
 
             } else
@@ -349,7 +349,7 @@ public class PlayerManager
             numBlocksToUpdate = 0;
         }
 
-        public void updateTileEntity(BlockEntity tileentity) {
+        public void updateTileEntity(TileEntity tileentity) {
             if (tileentity != null) {
                 Packet packet = tileentity.getDescriptionPacket();
                 if (packet != null) {
diff --git a/src/main/java/net/minecraft/server/util/helper/PlayerList.java b/src/main/java/net/minecraft/server/util/helper/PlayerList.java
index 72d8d9283..6186336f3 100644
--- a/src/main/java/net/minecraft/server/util/helper/PlayerList.java
+++ b/src/main/java/net/minecraft/server/util/helper/PlayerList.java
@@ -2,7 +2,7 @@ package net.minecraft.server.util.helper;
 
 import net.minecraft.core.net.packet.PlayerListPacket;
 import net.minecraft.server.MinecraftServer;
-import net.minecraft.server.entity.player.ServerPlayer;
+import net.minecraft.server.entity.player.PlayerServer;
 
 public class PlayerList {
 	
@@ -15,7 +15,7 @@ public class PlayerList {
 		String[] scores = new String[playerCount];
     	
     	for(int i=0; i < playerCount; i++) {
-    		ServerPlayer player = server.playerList.playerEntities.get(i);
+    		PlayerServer player = server.playerList.playerEntities.get(i);
     		
     		players[i] = player.getDisplayName();
     		scores[i] = String.valueOf(player.getScore());
diff --git a/src/main/java/net/minecraft/server/world/ServerPlayerController.java b/src/main/java/net/minecraft/server/world/ServerPlayerController.java
index 63b7cc607..7c6265e21 100644
--- a/src/main/java/net/minecraft/server/world/ServerPlayerController.java
+++ b/src/main/java/net/minecraft/server/world/ServerPlayerController.java
@@ -5,10 +5,10 @@ import net.minecraft.core.block.Block;
 
 // Referenced classes of package net.minecraft.src:
 //            WorldServer, Block, Player, ItemStack,
-//            ServerPlayer, BlockUpdatePacket, ServerPacketHandler, InventoryPlayer,
+//            PlayerServer, BlockUpdatePacket, PacketHandlerServer, InventoryPlayer,
 //            World
 
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.item.Item;
 import net.minecraft.core.item.ItemStack;
@@ -16,7 +16,7 @@ import net.minecraft.core.net.packet.BlockUpdatePacket;
 import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.world.LevelListener;
 import net.minecraft.core.world.World;
-import net.minecraft.server.entity.player.ServerPlayer;
+import net.minecraft.server.entity.player.PlayerServer;
 
 public class ServerPlayerController
 {
@@ -121,7 +121,7 @@ public class ServerPlayerController
     		}
     	}
         Block block = Block.getBlock(id);
-        BlockEntity blockEntity = thisWorld.getBlockEntity(x, y, z);
+        TileEntity tileEntity = thisWorld.getBlockEntity(x, y, z);
         thisWorld.playBlockEvent(player, LevelListener.EVENT_BLOCK_BREAK, x, y, z, id);
         boolean flag = removeBlock(x, y, z);
         if(flag) {
@@ -131,8 +131,8 @@ public class ServerPlayerController
         }
         if(flag && player.canHarvestBlock(Block.blocksList[id]) && player.getGamemode().dropBlockOnBreak())
         {
-            Block.blocksList[id].harvestBlock(thisWorld, player, x, y, z, meta, blockEntity);
-            ((ServerPlayer) player).playerNetServerHandler.sendPacket(new BlockUpdatePacket(x, y, z, thisWorld));
+            Block.blocksList[id].harvestBlock(thisWorld, player, x, y, z, meta, tileEntity);
+            ((PlayerServer) player).playerNetServerHandler.sendPacket(new BlockUpdatePacket(x, y, z, thisWorld));
         }
         ItemStack itemstack = player.getCurrentEquippedItem();
         if(itemstack != null)
@@ -171,9 +171,9 @@ public class ServerPlayerController
         int blockId = world.getBlockId(blockX, blockY, blockZ);
         if (player.getHeldObject() == null) {
             if (player.isSneaking() && itemstack == null) { // If crouched and hand empty try to pickup block entity
-                BlockEntity blockEntity = world.getBlockEntity(blockX, blockY, blockZ);
-                if (blockEntity != null && blockEntity.canBeCarried(world, player)) {
-                    player.setHeldObject(blockEntity.pickup(world, player));
+                TileEntity tileEntity = world.getBlockEntity(blockX, blockY, blockZ);
+                if (tileEntity != null && tileEntity.canBeCarried(world, player)) {
+                    player.setHeldObject(tileEntity.pickup(world, player));
                     return true;
                 }
             }
diff --git a/src/main/java/net/minecraft/server/world/WorldManager.java b/src/main/java/net/minecraft/server/world/WorldManager.java
index cc4d33e62..d4e2549b5 100644
--- a/src/main/java/net/minecraft/server/world/WorldManager.java
+++ b/src/main/java/net/minecraft/server/world/WorldManager.java
@@ -4,9 +4,9 @@ import java.util.HashSet;
 import java.util.Set;
 
 import com.mojang.logging.LogUtils;
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.entity.Entity;
-import net.minecraft.core.entity.ItemEntity;
+import net.minecraft.core.entity.EntityItem;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.net.packet.PlaySoundEffectPacket;
 import net.minecraft.core.net.packet.PlaySoundEffectDirectPacket;
@@ -47,9 +47,9 @@ public class WorldManager
 	public void entityAdded(Entity entity)
     {
     	// Fix crash
-    	if(entity instanceof ItemEntity) {
-    		ItemEntity itemEntity = (ItemEntity) entity;
-    		if(itemEntity.item == null || itemEntity.item.getItem() == null) {
+    	if(entity instanceof EntityItem) {
+    		EntityItem entityItem = (EntityItem) entity;
+    		if(entityItem.item == null || entityItem.item.getItem() == null) {
     			return;
     		}
     	}
@@ -111,9 +111,9 @@ public class WorldManager
     }
 
     @Override
-	public void tileEntityChanged(int x, int y, int z, BlockEntity blockEntity)
+	public void tileEntityChanged(int x, int y, int z, TileEntity tileEntity)
     {
-        mcServer.playerList.sendBlockEntityToPlayer(x, y, z, worldServer.dimension.id, blockEntity);
+        mcServer.playerList.sendBlockEntityToPlayer(x, y, z, worldServer.dimension.id, tileEntity);
     }
 
     @Override
diff --git a/src/main/java/net/minecraft/server/world/WorldServer.java b/src/main/java/net/minecraft/server/world/WorldServer.java
index 92a7d413b..24b2b389b 100644
--- a/src/main/java/net/minecraft/server/world/WorldServer.java
+++ b/src/main/java/net/minecraft/server/world/WorldServer.java
@@ -4,7 +4,7 @@ import java.util.ArrayList;
 import java.util.List;
 
 import net.minecraft.core.Global;
-import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.entity.TileEntity;
 import net.minecraft.core.util.collection.IntHashMap;
 import net.minecraft.core.world.*;
 import net.minecraft.core.entity.Entity;
@@ -46,15 +46,15 @@ public class WorldServer extends World
         return chunkProviderServer;
     }
 
-    public List<BlockEntity> getBlockEntitiesWithinBounds(int minX, int minY, int minZ, int maxX, int maxY, int maxZ)
+    public List<TileEntity> getBlockEntitiesWithinBounds(int minX, int minY, int minZ, int maxX, int maxY, int maxZ)
     {
-        ArrayList<BlockEntity> arraylist = new ArrayList<>();
-        for(int i = 0; i < loadedBlockEntityList.size(); i++)
+        ArrayList<TileEntity> arraylist = new ArrayList<>();
+        for(int i = 0; i < loadedTileEntityList.size(); i++)
         {
-            BlockEntity blockEntity = loadedBlockEntityList.get(i);
-            if(blockEntity.x >= minX && blockEntity.y >= minY && blockEntity.z >= minZ && blockEntity.x < maxX && blockEntity.y < maxY && blockEntity.z < maxZ)
+            TileEntity tileEntity = loadedTileEntityList.get(i);
+            if(tileEntity.x >= minX && tileEntity.y >= minY && tileEntity.z >= minZ && tileEntity.x < maxX && tileEntity.y < maxY && tileEntity.z < maxZ)
             {
-                arraylist.add(blockEntity);
+                arraylist.add(tileEntity);
             }
         }
 
diff --git a/src/main/resources/assets/minecraft/textures/block/portal_nether/pink.png b/src/main/resources/assets/minecraft/textures/block/portal_nether/pink.png
index 8ddef5c3e..39e36d8ce 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/portal_nether/pink.png and b/src/main/resources/assets/minecraft/textures/block/portal_nether/pink.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/portal_paradise/pink.png b/src/main/resources/assets/minecraft/textures/block/portal_paradise/pink.png
index 8ddef5c3e..39e36d8ce 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/portal_paradise/pink.png and b/src/main/resources/assets/minecraft/textures/block/portal_paradise/pink.png differ
diff --git a/src/main/resources/assets/minecraft/textures/gui/title/splashes.txt b/src/main/resources/assets/minecraft/textures/gui/title/splashes.txt
index 3fb22c348..a82a0419e 100644
--- a/src/main/resources/assets/minecraft/textures/gui/title/splashes.txt
+++ b/src/main/resources/assets/minecraft/textures/gui/title/splashes.txt
@@ -134,7 +134,7 @@ The finest minds of a generation!
 Every copy is personalized!
 Damn fine cherry pie!
 Bee tea, eh!
-This background has an Easter eggProjectile!
+This background has an Easter projectileEgg!
 Almost finished!
 Watch out for chest goblins!
 Self-documenting!
