All current mapgens work in the same way. They generate a terrain with different noises and overlay this with a two dimensional biome map.
There are a lot of downsides. Because of the nature of perlin noise biomes can be huge, but also really tiny. A bigger problem is that there is no control for the terrain. It is nearly impossible to generate specific biomes that need a specific terrain. A nice example is the lavender fields. You can specify a biome in Minetest, but there is no guarantee that this biome spawns in a plain
So I think the biome definition should include the terrain and not only heat and humidity
The basic shape of a biome can be generated by voronoi cells. Each cell has a defined terrain like hills, mountains or plains, topping like snow, sand or grass and a vegetation.
Voronoi cells are generated by placing random points. But they are scattered very uneven. To make it (a little bit) more even the Lloyd relaxation can be used. One or two iterations should be enough. To make the edges less sharp a noise ripple could be added and to blend the biomes a gradient could be used
A voronoi cell could be subdevided by a voronoi treemap to create subbiomes or define the terrain more specific
But the basic idea is to define biomes not only by heat and humidity. A definition of the terrain is also important. A glacier biome doesn't makes sense in a plain. It needs a mountain. A landscape like the "Lüneburg Heath" (a landscape in Germany similar to the lavender fields) doesn't make sense on a mountain.
My biggest concern is: how can I generate a mountain within a mountain biome? I can use normal perlin noise, but I have no guarantee that the noise generates a mountain within the cell.
What do you think about this idea and how could this be implemented?