              double d1 = p_145771_5_ - (double)blockpos.func_177952_p();
  
 -            if (!this.func_175162_d(blockpos))
-+            int entHeight = Math.max(Math.round(this.field_70131_O), 1);
++            int entHeight = Math.max((int)Math.ceil(this.field_70131_O), 1);
 +
 +            boolean inTranslucentBlock = this.isHeadspaceFree(blockpos, entHeight);
 +

                 {
                     d2 = 1.0D - d1;
                     i = 5;
@@ -515,7 +528,13 @@
 
     public void func_184185_a(SoundEvent p_184185_1_, float p_184185_2_, float p_184185_3_)

+    {
+        for (int y = 0; y < height; y++)
+        {
+            if (!func_175162_d(pos.func_177982_a(0, y, 0))) return false;
+        }
+        return true;
+    }
