--- a/net/minecraft/server/ChunkGeneratorAbstract.java
+++ b/net/minecraft/server/ChunkGeneratorAbstract.java
@@ -23,7 +23,7 @@
             return chunkgeneratorabstract.h;
         })).apply(instance, instance.stable(ChunkGeneratorAbstract::new));
     });
-    private static final float[] i = (float[]) SystemUtils.a((Object) (new float[13824]), (afloat) -> {
+    private static final float[] i = (float[]) SystemUtils.a((new float[13824]), (afloat) -> { // CraftBukkit - decompile error
         for (int i = 0; i < 24; ++i) {
             for (int j = 0; j < 24; ++j) {
                 for (int k = 0; k < 24; ++k) {
@@ -33,7 +33,7 @@
         }
 
     });
-    private static final float[] j = (float[]) SystemUtils.a((Object) (new float[25]), (afloat) -> {
+    private static final float[] j = (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);
@@ -190,6 +190,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 * ChunkGeneratorAbstract.j[l + 2 + (i1 + 2) * 5] / (f6 + 2.0F);