THE "WATER WORLD" BIOME DEFINITION FILES:

If I wanted to be very generous with my use of the term "unique," I could probably make a case that this data pack features about 60 unique land biomes. But realistically, the number is closer to 30. ("Officially," according to the way I broke them down for the revised "Adventuring Time" advancement, there are 29.) And there are 15 unique ocean biomes. So that means the data pack includes somewhere between 45 and 75 unique biomes.

So why are there 720 biome definition files?

It's because I wanted a "believable" world, at least within the bounds of what's possible in "Minecraft," where you can't have actual climate zones and can't avoid sharp dividing lines between biomes. I wanted to try to avoid having radically different biomes (in terms of temperature or humidity) butting up against each other, and I wanted to avoid having cliffs routinely show up as demarcations between biomes.

(To be fair, worlds created by the data pack do in fact feature large cliffs at biome transitions between shallow and normal oceans and between normal and deep oceans, but I tend to think of those as representing continental shelves and deep sea trenches, respectively. And obviously, the insides of dormant volcanos tend to have very steep sides, but that's a deliberate feature.)

Biomes in Minecraft are placed in the world based on several intersecting factors: temperature, humidity, altitude and "weirdness." (There's also offset, but that works a bit differently and isn't relevant to this discussion.) When a world map is created, "noise maps" for each of those factors are overlayed, and biomes are placed in the world based on which biome best matches the values of those four factors at any given location.

To try to make sure biomes don't end up adjacent to each other if it doesn't make sense for them to be adjacent, I utilize a very deliberate "grid" structure in defining those factors for each biome. But in order for that structure to work properly, I can't leave any blank spots in the grid. 

To begin with, for purposes of map placement, each biome is assigned one of five temperature values, defining whether it's frozen, cold, cool temperate, warm temperate, or hot. It also has one of three humidity values, indicating whether it's dry, average or humid. Looking just at those two factors, then, you'll see that in order to "fill" the grid, I have to have 15 biomes defined. If I leave any of those 15 grid spots empty, the game might end up putting, for example, a frozen biome immediately adjacent to a temperate biome. 

I also use 12 distinct altitude values. That might seem excessive, but I actually define the altitude scale not with deep ocean at one end and mountains at the other, but instead with archipelagos at one end and mountains at the other, and with deep ocean at the center point, which necessitates the large number of altitude values. This is what allows the data pack to create both archipelagos of small islands and large islands with mountains (and occasionally volcanos) at their centers, by the way, and is also what allows deep ocean to wind throughout the map, instead of just appearing in "pools" here and there. But here, as before, grid spots can't be left empty, or the map would feature anomalies like islands immediately adjacent to deep oceans, resulting in a lot of nonsensical cliff faces at biome transitions.

And finally, there are four possible "weirdness" options. These options define when the more exotic biomes show up, and also determine whether dormant volcanos are land filled, and if not, whether they feature large lakes or "nether-like" dormant volcano terrain. You might argue that only the more exotic biomes actually need to have a non-zero weirdness value, but again, if I don't "fill the grid" around them with the appropriate normal biomes, map generation can get bizarre.

So.... Five temperature options, three humidity options, 12 altitude options and four "weirdness" options. 5 x 3 x 12 x 4 = 720 grid slots to fill, which means I need 720 biome definition files, even though most of them are very duplicative, in order to have the world generate the way I want it to generate.

This would all be much simpler if it was possible in the "overworld.json" file to assign multiple temperature, humidity, altitude and/or weirdness values to a single biome definition file, but sadly, it's not.

My apologies to those trying to use the /locatebiome command while playing on a "Water World" map. Believe me, I feel your pain.
