--- a/net/minecraft/world/level/levelgen/NoiseSampler.java
+++ b/net/minecraft/world/level/levelgen/NoiseSampler.java
@@ -13,7 +13,7 @@
 public class NoiseSampler {
 
     private static final int OLD_CELL_COUNT_Y = 32;
-    private static final float[] BIOME_WEIGHTS = (float[]) SystemUtils.a((Object) (new float[25]), (afloat) -> {
+    private static final float[] BIOME_WEIGHTS = (float[]) SystemUtils.a((new float[25]), (afloat) -> { // CraftBukkit - decompile error
         for (int i = -2; i <= 2; ++i) {
             for (int j = -2; j <= 2; ++j) {
                 float f = 10.0F / MathHelper.c((float) (i * i + j * j) + 0.2F);
@@ -97,6 +97,11 @@
                         f6 = f4;
                         f7 = f5;
                     }
+                    // CraftBukkit start - fix MC-54738
+                    if (f6 < -1.8F) {
+                        f6 = -1.8F;
+                    }
+                    // CraftBukkit end
 
                     float f8 = f4 > f3 ? 0.5F : 1.0F;
                     float f9 = f8 * NoiseSampler.BIOME_WEIGHTS[k1 + 2 + (l1 + 2) * 5] / (f6 + 2.0F);
