--- a/net/minecraft/world/entity/ai/behavior/VillagerMakeLove.java
+++ b/net/minecraft/world/entity/ai/behavior/VillagerMakeLove.java
@@ -110,11 +_,17 @@
         if (breedOffspring == null) {
             return Optional.empty();
         } else {
-            parent.setAge(6000);
-            partner.setAge(6000);
             breedOffspring.setAge(-24000);
+            // Paper - Move age setting down
             breedOffspring.snapTo(parent.getX(), parent.getY(), parent.getZ(), 0.0F, 0.0F);
-            level.addFreshEntityWithPassengers(breedOffspring);
+            // CraftBukkit start - call EntityBreedEvent
+            if (org.bukkit.craftbukkit.event.CraftEventFactory.callEntityBreedEvent(breedOffspring, parent, partner, null, null, 0).isCancelled()) {
+                return Optional.empty();
+            }
+            parent.setAge(6000);
+            partner.setAge(6000);
+            level.addFreshEntityWithPassengers(breedOffspring, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.BREEDING);
+            // CraftBukkit end - call EntityBreedEvent
             level.broadcastEntityEvent(breedOffspring, (byte)12);
             return Optional.of(breedOffspring);
         }
