diff --git a/patches/server/Fire-EntityChangeBlockEvent-in-more-places.patch b/patches/server/Fire-EntityChangeBlockEvent-in-more-places.patch
index e3c0963d2f..bf4285e0fb 100644
--- a/patches/server/Fire-EntityChangeBlockEvent-in-more-places.patch
+++ b/patches/server/Fire-EntityChangeBlockEvent-in-more-places.patch
@@ -78,6 +78,23 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
              world.setBlockAndUpdate(blockposition1Final, iblockdata1); // CraftBukkit - decompile error
          });
          world.levelEvent(3002, blockposition1, -1);
+diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/TryLaySpawnOnWaterNearLand.java b/src/main/java/net/minecraft/world/entity/ai/behavior/TryLaySpawnOnWaterNearLand.java
+index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
+--- a/src/main/java/net/minecraft/world/entity/ai/behavior/TryLaySpawnOnWaterNearLand.java
++++ b/src/main/java/net/minecraft/world/entity/ai/behavior/TryLaySpawnOnWaterNearLand.java
+@@ -0,0 +0,0 @@ public class TryLaySpawnOnWaterNearLand extends Behavior<Frog> {
+             if (world.getBlockState(blockPos2).getCollisionShape(world, blockPos2).getFaceShape(Direction.UP).isEmpty() && world.getFluidState(blockPos2).is(Fluids.WATER)) {
+                 BlockPos blockPos3 = blockPos2.above();
+                 if (world.getBlockState(blockPos3).isAir()) {
++                    // Paper start
++                    if (org.bukkit.craftbukkit.event.CraftEventFactory.callEntityChangeBlockEvent(entity, blockPos3, this.spawnBlock.defaultBlockState()).isCancelled()) {
++                        entity.getBrain().eraseMemory(this.memoryModule); // forgot pregnant memory
++                        return;
++                    }
++                    // Paper end
+                     world.setBlock(blockPos3, this.spawnBlock.defaultBlockState(), 3);
+                     world.playSound((Player)null, entity, SoundEvents.FROG_LAY_SPAWN, SoundSource.BLOCKS, 1.0F, 1.0F);
+                     entity.getBrain().eraseMemory(this.memoryModule);
 diff --git a/src/main/java/net/minecraft/world/item/AxeItem.java b/src/main/java/net/minecraft/world/item/AxeItem.java
 index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
 --- a/src/main/java/net/minecraft/world/item/AxeItem.java