--- a/net/minecraft/world/entity/ai/navigation/GroundPathNavigation.java
+++ b/net/minecraft/world/entity/ai/navigation/GroundPathNavigation.java
@@ -39,14 +39,14 @@
     }
 
     @Override
-    public Path createPath(BlockPos target, int distance) {
+    public Path createPath(BlockPos target, @javax.annotation.Nullable Entity entity, int distance) { // Paper
         if (this.level.getBlockState(target).isAir()) {
             BlockPos blockPos;
             for(blockPos = target.below(); blockPos.getY() > this.level.getMinBuildHeight() && this.level.getBlockState(blockPos).isAir(); blockPos = blockPos.below()) {
             }
 
             if (blockPos.getY() > this.level.getMinBuildHeight()) {
-                return super.createPath(blockPos.above(), distance);
+                return super.createPath(blockPos.above(), entity, distance); // Paper
             }
 
             while(blockPos.getY() < this.level.getMaxBuildHeight() && this.level.getBlockState(blockPos).isAir()) {
@@ -57,19 +57,19 @@
         }
 
         if (!this.level.getBlockState(target).getMaterial().isSolid()) {
-            return super.createPath(target, distance);
+            return super.createPath(target, entity, distance); // Paper
         } else {
             BlockPos blockPos2;
             for(blockPos2 = target.above(); blockPos2.getY() < this.level.getMaxBuildHeight() && this.level.getBlockState(blockPos2).getMaterial().isSolid(); blockPos2 = blockPos2.above()) {
             }
 
-            return super.createPath(blockPos2, distance);
+            return super.createPath(blockPos2, entity, distance); // Paper
         }
     }
 
     @Override
     public Path createPath(Entity entity, int distance) {
-        return this.createPath(entity.blockPosition(), distance);
+        return this.createPath(entity.blockPosition(), entity, distance); // Paper - Forward target entity
     }
 
     private int getSurfaceY() {
