--- a/net/minecraft/world/entity/animal/Rabbit.java
+++ b/net/minecraft/world/entity/animal/Rabbit.java
@@ -88,7 +_,7 @@
         super(entityType, level);
         this.jumpControl = new Rabbit.RabbitJumpControl(this);
         this.moveControl = new Rabbit.RabbitMoveControl(this);
-        this.setSpeedModifier(0.0);
+        //this.setSpeedModifier(0.0); // CraftBukkit
     }
 
     @Override
@@ -561,9 +_,11 @@
                 if (this.canRaid && block instanceof CarrotBlock) {
                     int ageValue = blockState.getValue(CarrotBlock.AGE);
                     if (ageValue == 0) {
+                        if (!org.bukkit.craftbukkit.event.CraftEventFactory.callEntityChangeBlockEvent(this.rabbit, blockPos, blockState.getFluidState().createLegacyBlock())) return; // CraftBukkit // Paper - fix wrong block state
                         level.setBlock(blockPos, Blocks.AIR.defaultBlockState(), 2);
                         level.destroyBlock(blockPos, true, this.rabbit);
                     } else {
+                        if (!org.bukkit.craftbukkit.event.CraftEventFactory.callEntityChangeBlockEvent(this.rabbit, blockPos, blockState.setValue(CarrotBlock.AGE, ageValue - 1))) return; // CraftBukkit // Paper - fix wrong block state
                         level.setBlock(blockPos, blockState.setValue(CarrotBlock.AGE, Integer.valueOf(ageValue - 1)), 2);
                         level.gameEvent(GameEvent.BLOCK_CHANGE, blockPos, GameEvent.Context.of(this.rabbit));
                         level.levelEvent(2001, blockPos, Block.getId(blockState));
