--- a/net/minecraft/world/entity/monster/Monster.java
+++ b/net/minecraft/world/entity/monster/Monster.java
@@ -58,22 +_,22 @@
     }
 
     @Override
-    protected SoundEvent getSwimSound() {
+    public SoundEvent getSwimSound() {
         return SoundEvents.HOSTILE_SWIM;
     }
 
     @Override
-    protected SoundEvent getSwimSplashSound() {
+    public SoundEvent getSwimSplashSound() {
         return SoundEvents.HOSTILE_SPLASH;
     }
 
     @Override
-    protected SoundEvent getHurtSound(DamageSource damageSource) {
+    public SoundEvent getHurtSound(DamageSource damageSource) {
         return SoundEvents.HOSTILE_HURT;
     }
 
     @Override
-    protected SoundEvent getDeathSound() {
+    public SoundEvent getDeathSound() {
         return SoundEvents.HOSTILE_DEATH;
     }
 
@@ -92,7 +_,7 @@
             return false;
         } else {
             DimensionType dimensionType = level.dimensionType();
-            int i = dimensionType.monsterSpawnBlockLightLimit();
+            int i = level.getLevel().paperConfig().entities.spawning.monsterSpawnMaxLightLevel.or(dimensionType.monsterSpawnBlockLightLimit()); // Paper - Configurable max block light for monster spawning
             if (i < 15 && level.getBrightness(LightLayer.BLOCK, pos) > i) {
                 return false;
             } else {
