--- a/net/minecraft/world/entity/animal/ShoulderRidingEntity.java
+++ b/net/minecraft/world/entity/animal/ShoulderRidingEntity.java
@@ -5,8 +5,12 @@
 import net.minecraft.world.entity.EntityType;
 import net.minecraft.world.entity.TamableAnimal;
 import net.minecraft.world.level.Level;
+// CraftBukkit start
+import org.bukkit.event.entity.EntityRemoveEvent;
+// CraftBukkit end
 
 public abstract class ShoulderRidingEntity extends TamableAnimal {
+
     private static final int RIDE_COOLDOWN = 100;
     private int rideCooldownCounter;
 
@@ -15,11 +19,12 @@
     }
 
     public boolean setEntityOnShoulder(ServerPlayer player) {
-        CompoundTag compoundTag = new CompoundTag();
-        compoundTag.putString("id", this.getEncodeId());
-        this.saveWithoutId(compoundTag);
-        if (player.setEntityOnShoulder(compoundTag)) {
-            this.discard();
+        CompoundTag nbttagcompound = new CompoundTag();
+
+        nbttagcompound.putString("id", this.getEncodeId());
+        this.saveWithoutId(nbttagcompound);
+        if (player.setEntityOnShoulder(nbttagcompound)) {
+            this.discard(EntityRemoveEvent.Cause.PICKUP); // CraftBukkit - add Bukkit remove cause
             return true;
         } else {
             return false;
@@ -28,7 +33,7 @@
 
     @Override
     public void tick() {
-        this.rideCooldownCounter++;
+        ++this.rideCooldownCounter;
         super.tick();
     }
 
