--- a/net/minecraft/entity/passive/MooshroomEntity.java
+++ b/net/minecraft/entity/passive/MooshroomEntity.java
@@ -41,7 +41,7 @@
 import net.minecraftforge.api.distmarker.OnlyIn;
 import org.apache.commons.lang3.tuple.Pair;
 
-public class MooshroomEntity extends CowEntity implements IShearable {
+public class MooshroomEntity extends CowEntity implements IShearable, net.minecraftforge.common.IForgeShearable {
    private static final DataParameter<String> field_213449_bz = EntityDataManager.func_187226_a(MooshroomEntity.class, DataSerializers.field_187194_d);
    private Effect field_213450_bA;
    private int field_213447_bB;
@@ -100,7 +100,7 @@
 
          this.func_184185_a(soundevent, 1.0F, 1.0F);
          return ActionResultType.func_233537_a_(this.field_70170_p.field_72995_K);
-      } else if (itemstack.func_77973_b() == Items.field_151097_aZ && this.func_230262_K__()) {
+      } else if (false && itemstack.func_77973_b() == Items.field_151097_aZ && this.func_230262_K__()) { //Forge: Moved to onSheared
          this.func_230263_a_(SoundCategory.PLAYERS);
          if (!this.field_70170_p.field_72995_K) {
             itemstack.func_222118_a(1, p_230254_1_, (p_213442_1_) -> {
@@ -235,6 +235,45 @@
       return mooshroomentity$type2;
    }
 
+   @Override
+   public boolean isShearable(@javax.annotation.Nonnull ItemStack item, World world, BlockPos pos) {
+      return func_230262_K__();
+   }
+
+   @javax.annotation.Nonnull
+   @Override
+   public java.util.List<ItemStack> onSheared(@javax.annotation.Nullable PlayerEntity player, @javax.annotation.Nonnull ItemStack item, World world, BlockPos pos, int fortune) {
+      world.func_217384_a(null, this, SoundEvents.field_187784_dt, player == null ? SoundCategory.BLOCKS : SoundCategory.PLAYERS, 1.0F, 1.0F);
+      if (!world.func_201670_d()) {
+         ((ServerWorld)this.field_70170_p).func_195598_a(ParticleTypes.field_197627_t, this.func_226277_ct_(), this.func_226283_e_(0.5D), this.func_226281_cx_(), 1, 0.0D, 0.0D, 0.0D, 0.0D);
+         this.func_70106_y();
+         CowEntity cowentity = EntityType.field_200796_j.func_200721_a(this.field_70170_p);
+         cowentity.func_70012_b(this.func_226277_ct_(), this.func_226278_cu_(), this.func_226281_cx_(), this.field_70177_z, this.field_70125_A);
+         cowentity.func_70606_j(this.func_110143_aJ());
+         cowentity.field_70761_aq = this.field_70761_aq;
+         if (this.func_145818_k_()) {
+            cowentity.func_200203_b(this.func_200201_e());
+            cowentity.func_174805_g(this.func_174833_aM());
+         }
+
+         if (this.func_104002_bU()) {
+            cowentity.func_110163_bv();
+         }
+
+         cowentity.func_184224_h(this.func_190530_aW());
+         this.field_70170_p.func_217376_c(cowentity);
+
+         java.util.List<ItemStack> items = new java.util.ArrayList<>();
+         for (int i = 0; i < 5; ++i) {
+            items.add(new ItemStack(this.func_213444_dV().field_221099_d.func_177230_c()));
+         }
+
+         return items;
+      }
+      return java.util.Collections.emptyList();
+   }
+
+
    public static enum Type {
       RED("red", Blocks.field_150337_Q.func_176223_P()),
       BROWN("brown", Blocks.field_150338_P.func_176223_P());
