diff --git a/Spigot-Server-Patches/Use-saner-Entity-bounding-box-limits.patch b/Spigot-Server-Patches/Use-saner-Entity-bounding-box-limits.patch
new file mode 100644
index 0000000000..f239f60471
--- /dev/null
+++ b/Spigot-Server-Patches/Use-saner-Entity-bounding-box-limits.patch
@@ -0,0 +1,67 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Aikar <aikar@aikar.co>
+Date: Fri, 22 May 2020 00:29:52 -0400
+Subject: [PATCH] Use saner Entity bounding box limits
+
+CB only protected from > 64 but there's no reason an entity should ever
+be more than 2x its width or 1x height as the BB is supposed to represent
+the entity size.
+
+BB is / 2 to calculate position.
+
+diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
+index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
+--- a/src/main/java/net/minecraft/server/Entity.java
++++ b/src/main/java/net/minecraft/server/Entity.java
+@@ -0,0 +0,0 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
+                 maxX = axisalignedbb.maxX,
+                 maxY = axisalignedbb.maxY,
+                 maxZ = axisalignedbb.maxZ;
++        // Paper start - use saner max's for bounding box
++        boolean illegal = false;
++        double maxW = this.getWidth() * 2;
++        double maxH = this.getHeight();
+         double len = axisalignedbb.maxX - axisalignedbb.minX;
+-        if (len < 0) maxX = minX;
+-        if (len > 64) maxX = minX + 64.0;
++        if (len < 0) {
++            maxX = minX;
++            illegal = true;
++        }
++        if (len > maxW+1.0E-7D) {
++            maxX = minX + maxW;
++            illegal = true;
++        }
+ 
+         len = axisalignedbb.maxY - axisalignedbb.minY;
+-        if (len < 0) maxY = minY;
+-        if (len > 64) maxY = minY + 64.0;
++        if (len < 0) {
++            maxY = minY;
++            illegal = true;
++        }
++        if (len > maxH+1.0E-7D) {
++            maxY = minY + maxH;
++            illegal = true;
++        }
+ 
+         len = axisalignedbb.maxZ - axisalignedbb.minZ;
+-        if (len < 0) maxZ = minZ;
+-        if (len > 64) maxZ = minZ + 64.0;
++        if (len < 0) {
++            maxZ = minZ;
++            illegal = true;
++        }
++        if (len > maxW+1.0E-7D) {
++            maxZ = minZ + maxW;
++            illegal = true;
++        }
++
+         this.boundingBox = new AxisAlignedBB(minX, minY, minZ, maxX, maxY, maxZ);
++        if (illegal) {
++            new Throwable("Illegal Entity bounding box attempt on (" + this + ") - tried: " + axisalignedbb + " - using: " + boundingBox).printStackTrace();
++        }
++        // Paper end
+         // CraftBukkit end
+     }
+