--- a/net/minecraft/world/level/block/PowderSnowBlock.java
+++ b/net/minecraft/world/level/block/PowderSnowBlock.java
@@ -32,18 +32,19 @@
 import net.minecraft.world.phys.shapes.VoxelShape;
 
 public class PowderSnowBlock extends Block implements BucketPickup {
+
     public static final MapCodec<PowderSnowBlock> CODEC = simpleCodec(PowderSnowBlock::new);
     private static final float HORIZONTAL_PARTICLE_MOMENTUM_FACTOR = 0.083333336F;
     private static final float IN_BLOCK_HORIZONTAL_SPEED_MULTIPLIER = 0.9F;
     private static final float IN_BLOCK_VERTICAL_SPEED_MULTIPLIER = 1.5F;
     private static final float NUM_BLOCKS_TO_FALL_INTO_BLOCK = 2.5F;
-    private static final VoxelShape FALLING_COLLISION_SHAPE = Shapes.box(0.0, 0.0, 0.0, 1.0, 0.9F, 1.0);
-    private static final double MINIMUM_FALL_DISTANCE_FOR_SOUND = 4.0;
-    private static final double MINIMUM_FALL_DISTANCE_FOR_BIG_SOUND = 7.0;
+    private static final VoxelShape FALLING_COLLISION_SHAPE = Shapes.box(0.0D, 0.0D, 0.0D, 1.0D, 0.8999999761581421D, 1.0D);
+    private static final double MINIMUM_FALL_DISTANCE_FOR_SOUND = 4.0D;
+    private static final double MINIMUM_FALL_DISTANCE_FOR_BIG_SOUND = 7.0D;
 
     @Override
     public MapCodec<PowderSnowBlock> codec() {
-        return CODEC;
+        return PowderSnowBlock.CODEC;
     }
 
     public PowderSnowBlock(BlockBehaviour.Properties settings) {
@@ -52,7 +53,7 @@
 
     @Override
     protected boolean skipRendering(BlockState state, BlockState stateFrom, Direction direction) {
-        return stateFrom.is(this) || super.skipRendering(state, stateFrom, direction);
+        return stateFrom.is((Block) this) ? true : super.skipRendering(state, stateFrom, direction);
     }
 
     @Override
@@ -62,57 +63,58 @@
 
     @Override
     protected void entityInside(BlockState state, Level world, BlockPos pos, Entity entity) {
-        if (!(entity instanceof LivingEntity) || entity.getInBlockState().is(this)) {
-            entity.makeStuckInBlock(state, new Vec3(0.9F, 1.5, 0.9F));
+        if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper - Add EntityInsideBlockEvent
+        if (!(entity instanceof LivingEntity) || entity.getInBlockState().is((Block) this)) {
+            entity.makeStuckInBlock(state, new Vec3(0.8999999761581421D, 1.5D, 0.8999999761581421D));
             if (world.isClientSide) {
-                RandomSource randomSource = world.getRandom();
-                boolean bl = entity.xOld != entity.getX() || entity.zOld != entity.getZ();
-                if (bl && randomSource.nextBoolean()) {
-                    world.addParticle(
-                        ParticleTypes.SNOWFLAKE,
-                        entity.getX(),
-                        (double)(pos.getY() + 1),
-                        entity.getZ(),
-                        (double)(Mth.randomBetween(randomSource, -1.0F, 1.0F) * 0.083333336F),
-                        0.05F,
-                        (double)(Mth.randomBetween(randomSource, -1.0F, 1.0F) * 0.083333336F)
-                    );
+                RandomSource randomsource = world.getRandom();
+                boolean flag = entity.xOld != entity.getX() || entity.zOld != entity.getZ();
+
+                if (flag && randomsource.nextBoolean()) {
+                    world.addParticle(ParticleTypes.SNOWFLAKE, entity.getX(), (double) (pos.getY() + 1), entity.getZ(), (double) (Mth.randomBetween(randomsource, -1.0F, 1.0F) * 0.083333336F), 0.05000000074505806D, (double) (Mth.randomBetween(randomsource, -1.0F, 1.0F) * 0.083333336F));
                 }
             }
         }
 
         entity.setIsInPowderSnow(true);
         if (!world.isClientSide) {
-            if (entity.isOnFire()
-                && (world.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING) || entity instanceof Player)
-                && entity.mayInteract(world, pos)) {
+            // CraftBukkit start
+            if (entity.isOnFire() && entity.mayInteract(world, pos)) {
+                if (!org.bukkit.craftbukkit.event.CraftEventFactory.callEntityChangeBlockEvent(entity, pos, Blocks.AIR.defaultBlockState(), !(world.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING) || entity instanceof Player))) {
+                    return;
+                }
+                // CraftBukkit end
                 world.destroyBlock(pos, false);
             }
 
             entity.setSharedFlagOnFire(false);
         }
+
     }
 
     @Override
     public void fallOn(Level world, BlockState state, BlockPos pos, Entity entity, float fallDistance) {
-        if (!((double)fallDistance < 4.0) && entity instanceof LivingEntity livingEntity) {
-            LivingEntity.Fallsounds fallsounds = livingEntity.getFallSounds();
-            SoundEvent soundEvent = (double)fallDistance < 7.0 ? fallsounds.small() : fallsounds.big();
-            entity.playSound(soundEvent, 1.0F, 1.0F);
+        if ((double) fallDistance >= 4.0D && entity instanceof LivingEntity entityliving) {
+            LivingEntity.Fallsounds entityliving_a = entityliving.getFallSounds();
+            SoundEvent soundeffect = (double) fallDistance < 7.0D ? entityliving_a.small() : entityliving_a.big();
+
+            entity.playSound(soundeffect, 1.0F, 1.0F);
         }
     }
 
     @Override
     protected VoxelShape getCollisionShape(BlockState state, BlockGetter world, BlockPos pos, CollisionContext context) {
-        if (context instanceof EntityCollisionContext entityCollisionContext) {
-            Entity entity = entityCollisionContext.getEntity();
+        if (context instanceof EntityCollisionContext voxelshapecollisionentity) {
+            Entity entity = voxelshapecollisionentity.getEntity();
+
             if (entity != null) {
                 if (entity.fallDistance > 2.5F) {
-                    return FALLING_COLLISION_SHAPE;
+                    return PowderSnowBlock.FALLING_COLLISION_SHAPE;
                 }
 
-                boolean bl = entity instanceof FallingBlockEntity;
-                if (bl || canEntityWalkOnPowderSnow(entity) && context.isAbove(Shapes.block(), pos, false) && !context.isDescending()) {
+                boolean flag = entity instanceof FallingBlockEntity;
+
+                if (flag || PowderSnowBlock.canEntityWalkOnPowderSnow(entity) && context.isAbove(Shapes.block(), pos, false) && !context.isDescending()) {
                     return super.getCollisionShape(state, world, pos, context);
                 }
             }
@@ -127,8 +129,7 @@
     }
 
     public static boolean canEntityWalkOnPowderSnow(Entity entity) {
-        return entity.getType().is(EntityTypeTags.POWDER_SNOW_WALKABLE_MOBS)
-            || entity instanceof LivingEntity && ((LivingEntity)entity).getItemBySlot(EquipmentSlot.FEET).is(Items.LEATHER_BOOTS);
+        return entity.getType().is(EntityTypeTags.POWDER_SNOW_WALKABLE_MOBS) ? true : (entity instanceof LivingEntity ? ((LivingEntity) entity).getItemBySlot(EquipmentSlot.FEET).is(Items.LEATHER_BOOTS) : false);
     }
 
     @Override
