--- a/net/minecraft/world/entity/animal/HappyGhast.java
+++ b/net/minecraft/world/entity/animal/HappyGhast.java
@@ -206,22 +_,22 @@
     }
 
     @Override
-    protected SoundEvent getAmbientSound() {
+    public SoundEvent getAmbientSound() {
         return this.isBaby() ? SoundEvents.GHASTLING_AMBIENT : SoundEvents.HAPPY_GHAST_AMBIENT;
     }
 
     @Override
-    protected SoundEvent getHurtSound(DamageSource damageSource) {
+    public SoundEvent getHurtSound(DamageSource damageSource) {
         return this.isBaby() ? SoundEvents.GHASTLING_HURT : SoundEvents.HAPPY_GHAST_HURT;
     }
 
     @Override
-    protected SoundEvent getDeathSound() {
+    public SoundEvent getDeathSound() {
         return this.isBaby() ? SoundEvents.GHASTLING_DEATH : SoundEvents.HAPPY_GHAST_DEATH;
     }
 
     @Override
-    protected float getSoundVolume() {
+    public float getSoundVolume() {
         return this.isBaby() ? 1.0F : 4.0F;
     }
 
@@ -306,8 +_,12 @@
     }
 
     @Override
-    protected void removePassenger(Entity passenger) {
-        super.removePassenger(passenger);
+    // Paper start - cancellable passengers
+    protected boolean removePassenger(Entity passenger, boolean suppressCancellation) {
+        if (!super.removePassenger(passenger, suppressCancellation)) {
+            return false;
+        }
+        // Paper end - cancellable passengers
         if (!this.level().isClientSide()) {
             this.setServerStillTimeout(10);
         }
@@ -316,6 +_,7 @@
             this.clearHome();
             this.level().playSound(null, this.getX(), this.getY(), this.getZ(), SoundEvents.HARNESS_GOGGLES_UP, this.getSoundSource(), 1.0F, 1.0F);
         }
+        return true; // Paper - cancellable passengers
     }
 
     @Override
