diff --git a/src/main/java/net/minecraft/client/entity/player/EntityOtherPlayerMP.java b/src/main/java/net/minecraft/client/entity/player/EntityOtherPlayerMP.java
index 554049899..c46763e1e 100644
--- a/src/main/java/net/minecraft/client/entity/player/EntityOtherPlayerMP.java
+++ b/src/main/java/net/minecraft/client/entity/player/EntityOtherPlayerMP.java
@@ -100,7 +100,7 @@ public class EntityOtherPlayerMP extends EntityPlayer
             setPos(d, d1, d2);
             setRot(yRot, xRot);
         }
-        field_775_e = field_774_f;
+        cameraVelocityOld = cameraVelocity;
         float horizontalSpeed = MathHelper.sqrt_double(xd * xd + zd * zd);
         float f1 = (float) Math.atan(-yd * 0.2D) * 15F;
         if(horizontalSpeed > 0.1F)
@@ -115,7 +115,7 @@ public class EntityOtherPlayerMP extends EntityPlayer
         {
             f1 = 0.0F;
         }
-        field_774_f += (horizontalSpeed - field_774_f) * 0.4F;
+        cameraVelocity += (horizontalSpeed - cameraVelocity) * 0.4F;
         cameraPitch += (f1 - cameraPitch) * 0.8F;
     }
 
diff --git a/src/main/java/net/minecraft/client/render/WorldRenderer.java b/src/main/java/net/minecraft/client/render/WorldRenderer.java
index 1e43de8fb..018b2f24f 100644
--- a/src/main/java/net/minecraft/client/render/WorldRenderer.java
+++ b/src/main/java/net/minecraft/client/render/WorldRenderer.java
@@ -6,6 +6,7 @@ import java.util.List;
 import java.util.Random;
 
 import org.lwjgl.input.Mouse;
+import org.lwjgl.opengl.GL11;
 import org.lwjgl.util.glu.GLU;
 
 import net.minecraft.client.Minecraft;
@@ -242,17 +243,18 @@ public class WorldRenderer
     {
         if (mc.activeCamera instanceof EntityCamera && ((EntityCamera) mc.activeCamera).entity instanceof EntityPlayer)
         {
-            EntityPlayer entityplayer = (EntityPlayer)((EntityCamera) mc.activeCamera).entity;
-            float f1 = entityplayer.walkDist - entityplayer.walkDistO;
-            float f2 = -(entityplayer.walkDist + f1 * partialTick);
-            float f3 = entityplayer.field_775_e + (entityplayer.field_774_f - entityplayer.field_775_e) * partialTick;
-            if (entityplayer.isSkating)
-            {
-                f2 *= 0.25f;
-            };
-            glTranslatef(MathHelper.sin(f2 * 3.141593F) * f3 * 0.5F, -java.lang.Math.abs(MathHelper.cos(f2 * 3.141593F) * f3), 0.0F);
-            glRotatef(MathHelper.sin(f2 * 3.141593F) * f3 * 3F, 0.0F, 0.0F, 1.0F);
-            glRotatef(java.lang.Math.abs(MathHelper.cos(f2 * 3.141593F - 0.2F) * f3) * 5F, 1.0F, 0.0F, 0.0F);
+            EntityPlayer player = (EntityPlayer)((EntityCamera) mc.activeCamera).entity;
+            float walkDist = -MathHelper.lerp(player.walkDistO, player.walkDist, partialTick);
+            float cameraVel = MathHelper.lerp(player.cameraVelocityOld, player.cameraVelocity, partialTick);
+            float cameraPitch = MathHelper.lerp(player.prevCameraPitch, player.cameraPitch, partialTick);
+            if (player.isSkating) {
+                walkDist *= 0.25f;
+                cameraPitch *= 0.25f;
+            }
+            GL11.glTranslatef(MathHelper.sin(walkDist * MathHelper.PI) * cameraVel * 0.5F, -Math.abs(MathHelper.cos(walkDist * MathHelper.PI) * cameraVel), 0.0F);
+            GL11.glRotatef(MathHelper.sin(walkDist * MathHelper.PI) * cameraVel * 3F, 0.0F, 0.0F, 1.0F);
+            GL11.glRotatef(java.lang.Math.abs(MathHelper.cos(walkDist * MathHelper.PI - 0.2F) * cameraVel) * 5F, 1.0F, 0.0F, 0.0F);
+            GL11.glRotatef(cameraPitch, 1.0F, 0.0F, 0.0F);
         }
     }
 
@@ -668,6 +670,7 @@ public class WorldRenderer
 
         Debug.change("entities");
         glShadeModel(GL_FLAT);
+        GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
         Lighting.enableLight();
         if (!mc.gameSettings.fog.value)
         {
diff --git a/src/main/java/net/minecraft/core/entity/player/EntityPlayer.java b/src/main/java/net/minecraft/core/entity/player/EntityPlayer.java
index e202cfca4..c689d17d5 100644
--- a/src/main/java/net/minecraft/core/entity/player/EntityPlayer.java
+++ b/src/main/java/net/minecraft/core/entity/player/EntityPlayer.java
@@ -210,8 +210,8 @@ public abstract class EntityPlayer extends EntityLiving
         double d1 = y;
         double d2 = z;
         super.rideTick();
-        field_775_e = field_774_f;
-        field_774_f = 0.0F;
+        cameraVelocityOld = cameraVelocity;
+        cameraVelocity = 0.0F;
         addMountedMovementStat(x - d, y - d1, z - d2);
     }
 
@@ -253,7 +253,7 @@ public abstract class EntityPlayer extends EntityLiving
         }
 
         inventory.decrementAnimations();
-        field_775_e = field_774_f;
+        cameraVelocityOld = cameraVelocity;
         super.onLivingUpdate();
 
         speed = baseSpeed;
@@ -264,22 +264,22 @@ public abstract class EntityPlayer extends EntityLiving
             flySpeed += (double)baseFlySpeed * 0.3;
         }
 
-        float f = MathHelper.sqrt_double(xd * xd + zd * zd);
-        float f1 = (float) java.lang.Math.atan(-yd * 0.2D) * 15F;
-        if(f > 0.1F)
+        double velocity = MathHelper.sqrt_double(xd * xd + zd * zd);
+        double pitch = (float) Math.atan(-yd * 0.2D) * 15F;
+        if(velocity > 0.1F)
         {
-            f = 0.1F;
+            velocity = 0.1F;
         }
         if(!onGround || getHealth() <= 0)
         {
-            f = 0.0F;
+            velocity = 0.0F;
         }
         if(onGround || getHealth() <= 0)
         {
-            f1 = 0.0F;
+            pitch = 0.0F;
         }
-        field_774_f += (f - field_774_f) * 0.4F;
-        cameraPitch += (f1 - cameraPitch) * 0.8F;
+        cameraVelocity += (float) ((velocity - cameraVelocity) * 0.4F);
+        cameraPitch += (float) ((pitch - cameraPitch) * 0.8F);
 
 
         //clear death marker if player is within 16 blocks.
@@ -1544,8 +1544,8 @@ public abstract class EntityPlayer extends EntityLiving
     public byte field_9371_f;
     public int score;
     public List<String> messageHistory = new ArrayList<>();
-    public float field_775_e;
-    public float field_774_f;
+    public float cameraVelocityOld;
+    public float cameraVelocity;
     public boolean isSwinging;
     public int swingProgressInt;
     public String username;
diff --git a/src/main/java/net/minecraft/core/item/ItemPlaceable.java b/src/main/java/net/minecraft/core/item/ItemPlaceable.java
index c84c929eb..7b109ac42 100644
--- a/src/main/java/net/minecraft/core/item/ItemPlaceable.java
+++ b/src/main/java/net/minecraft/core/item/ItemPlaceable.java
@@ -21,19 +21,19 @@ public class ItemPlaceable extends Item {
 		if(stack.stackSize <= 0) {
 			return false;
 		}
-		boolean placedInside = false;
+
 		if(!world.canPlaceInsideBlock(blockX, blockY, blockZ)) {
 			blockX += side.getOffsetX();
 			blockY += side.getOffsetY();
 			blockZ += side.getOffsetZ();
-		} else {
-			placedInside = true;
 		}
+		boolean placedInside = world.getBlock(blockX, blockY, blockZ) != null;
+
 		if(blockY < 0 || blockY >= world.getHeightBlocks()) {
 			return false;
 		}
 		if(world.canBlockBePlacedAt(blockToPlace.id, blockX, blockY, blockZ, false, side) && stack.consumeItem(player)) {
-			if (placedInside){
+			if (placedInside && !world.isClientSide){
 				world.playSoundEffect(2001, blockX, blockY, blockZ, world.getBlockId(blockX, blockY, blockZ));
 			}
 			if(world.setBlockWithNotify(blockX, blockY, blockZ, blockToPlace.id)) {
diff --git a/src/main/java/net/minecraft/core/item/ItemRope.java b/src/main/java/net/minecraft/core/item/ItemRope.java
index 3154cdbfd..c78a9b665 100644
--- a/src/main/java/net/minecraft/core/item/ItemRope.java
+++ b/src/main/java/net/minecraft/core/item/ItemRope.java
@@ -30,19 +30,18 @@ public class ItemRope extends ItemPlaceable{
             }
 
         }
-        boolean placedInside = false;
         if(!world.canPlaceInsideBlock(blockX, blockY, blockZ)) {
             blockX += side.getOffsetX();
             blockY += side.getOffsetY();
             blockZ += side.getOffsetZ();
-        } else {
-            placedInside = true;
         }
+        boolean placedInside = world.getBlock(blockX, blockY, blockZ) != null;
+
         if(blockY < 0 || blockY >= world.getHeightBlocks()) {
             return false;
         }
         if(world.canBlockBePlacedAt(blockToPlace.id, blockX, blockY, blockZ, false, side) && stack.consumeItem(player)) {
-            if (placedInside){
+            if (placedInside && !world.isClientSide){
                 world.playSoundEffect(2001, blockX, blockY, blockZ, world.getBlockId(blockX, blockY, blockZ));
             }
             if(world.setBlockAndMetadataWithNotify(blockX, blockY, blockZ, blockToPlace.id, placeOnSide ? 0b1000_0000 : 0)) {
diff --git a/src/main/java/net/minecraft/core/item/block/ItemBlock.java b/src/main/java/net/minecraft/core/item/block/ItemBlock.java
index 86697b6ea..d6b8aa628 100644
--- a/src/main/java/net/minecraft/core/item/block/ItemBlock.java
+++ b/src/main/java/net/minecraft/core/item/block/ItemBlock.java
@@ -34,20 +34,18 @@ public class ItemBlock extends Item
 		if(stack.stackSize <= 0) {
 			return false;
 		}
-        boolean placedInside = false;
 		if(!world.canPlaceInsideBlock(blockX, blockY, blockZ)) {
 			blockX += side.getOffsetX();
 			blockY += side.getOffsetY();
 			blockZ += side.getOffsetZ();
-		} else {
-            placedInside = true;
-        }
+		}
+        boolean placedInside = world.getBlock(blockX, blockY, blockZ) != null;
         if(blockY < 0 || blockY >= world.getHeightBlocks()) {
         	return false;
         }
 		if(world.canBlockBePlacedAt(blockID, blockX, blockY, blockZ, false, side) && stack.consumeItem(player)) {
 			Block block = Block.blocksList[blockID];
-            if (placedInside){
+            if (placedInside && !world.isClientSide){
                 world.playSoundEffect(2001, blockX, blockY, blockZ, world.getBlockId(blockX, blockY, blockZ));
             }
 			if(world.setBlockAndMetadataWithNotify(blockX, blockY, blockZ, blockID, getPlacedBlockMetadata(stack.getMetadata()))) {
diff --git a/src/main/java/net/minecraft/core/item/block/ItemBlockLadder.java b/src/main/java/net/minecraft/core/item/block/ItemBlockLadder.java
index 466ffb0ea..ef2e9ddad 100644
--- a/src/main/java/net/minecraft/core/item/block/ItemBlockLadder.java
+++ b/src/main/java/net/minecraft/core/item/block/ItemBlockLadder.java
@@ -55,7 +55,7 @@ public class ItemBlockLadder extends ItemBlock {
 	public boolean placeBlock(World world, int x, int y, int z, int meta, EntityPlayer player, ItemStack stack, Side side, double sideHeight) {
 		Block currentBlock = world.getBlock(x, y, z);
 		if(world.canPlaceInsideBlock(x, y, z) && world.canBlockBePlacedAt(blockID, x, y, z, false, side) && stack.consumeItem(player)) {
-			if (currentBlock != null){
+			if (currentBlock != null && !world.isClientSide){
 				world.playSoundEffect(2001, x, y, z, world.getBlockId(x, y, z));
 			}
 			if(world.setBlockAndMetadataWithNotify(x, y, z, blockID, meta)) {
diff --git a/src/main/java/net/minecraft/core/item/block/ItemBlockLayer.java b/src/main/java/net/minecraft/core/item/block/ItemBlockLayer.java
index 54d70aedd..30410ce3c 100644
--- a/src/main/java/net/minecraft/core/item/block/ItemBlockLayer.java
+++ b/src/main/java/net/minecraft/core/item/block/ItemBlockLayer.java
@@ -129,7 +129,7 @@ public class ItemBlockLayer extends ItemBlock
 			boolean placedInside = currentBlock != null;
 			if (world.setBlockAndMetadataWithNotify(blockX, blockY, blockZ, blockID, getPlacedBlockMetadata(itemstack.getMetadata())))
 			{
-				if (placedInside){
+				if (placedInside && !world.isClientSide){
 					world.playSoundEffect(2001, blockX, blockY, blockZ, currentBlock.id);
 				}
 				Block.blocksList[blockID].onBlockPlaced(world, blockX, blockY, blockZ, null, entityplayer, yPlaced);
diff --git a/src/main/java/net/minecraft/core/item/block/ItemBlockLayerLeaves.java b/src/main/java/net/minecraft/core/item/block/ItemBlockLayerLeaves.java
index f6b1252ff..3057c289d 100644
--- a/src/main/java/net/minecraft/core/item/block/ItemBlockLayerLeaves.java
+++ b/src/main/java/net/minecraft/core/item/block/ItemBlockLayerLeaves.java
@@ -126,7 +126,7 @@ public class ItemBlockLayerLeaves extends ItemBlock
 			boolean placedInside = currentBlock != null;
 			if (world.setBlockAndMetadataWithNotify(blockX, blockY, blockZ, blockID, getPlacedBlockMetadata(itemstack.getMetadata())))
 			{
-				if (placedInside){
+				if (placedInside && !world.isClientSide){
 					world.playSoundEffect(2001, blockX, blockY, blockZ, currentBlock.id);
 				}
 				Block.blocksList[blockID].onBlockPlaced(world, blockX, blockY, blockZ, null, entityplayer, yPlaced);
diff --git a/src/main/java/net/minecraft/core/item/block/ItemBlockSlab.java b/src/main/java/net/minecraft/core/item/block/ItemBlockSlab.java
index 94d3a88a3..115984e3b 100644
--- a/src/main/java/net/minecraft/core/item/block/ItemBlockSlab.java
+++ b/src/main/java/net/minecraft/core/item/block/ItemBlockSlab.java
@@ -96,7 +96,7 @@ public class ItemBlockSlab extends ItemBlock
             boolean placedInside = currentBlock != null;
             if(world.setBlockAndMetadataWithNotify(blockX, blockY, blockZ, blockID, getPlacedBlockMetadata(itemstack.getMetadata())))
             {
-                if (placedInside){
+                if (placedInside && !world.isClientSide){
                     world.playSoundEffect(2001, blockX, blockY, blockZ, currentBlock.id);
                 }
             	Block.blocksList[blockID].onBlockPlaced(world, blockX, blockY, blockZ, side, entityplayer, yPlaced);
diff --git a/src/main/java/net/minecraft/core/net/packet/Packet.java b/src/main/java/net/minecraft/core/net/packet/Packet.java
index 398e2e307..3a82f0dba 100644
--- a/src/main/java/net/minecraft/core/net/packet/Packet.java
+++ b/src/main/java/net/minecraft/core/net/packet/Packet.java
@@ -207,12 +207,8 @@ public abstract class Packet
     public static CompoundTag readCompressedCompoundTag(DataInputStream dis)
             throws IOException
     {
-        short length = dis.readShort();
-        if (length < 0)
-        {
-            throw new IOException("Received tag length is less than zero! Weird tag!");
-        }
-        else if (length == 0)
+        int length = Short.toUnsignedInt(dis.readShort());
+        if (length == 0)
         {
             return null;
         }
