Using 21w41a I generated 13 worlds with seeds 100 to 112 inclusive and analyzed the passive mob locations. If account is taken of ocean, desert, badlands, dark_forest, and old_growth_pine_taiga, and snowy_plains, the distribution appears to be fairly uniform. Possibly the new random number generator in 21w41a fixed the problem. It would be interesting to hear if anyone else still sees large areas without passive mobs when using 21w41a.
Issue is still present in 21w40a. The attached map of passive mobs is for seed = 3. Land is brown, water is dark blue. Note that there are plenty of mobs in the upper right and almost none in the lower left.
[media]I mapped the passive mobs with the 202109291427 seed. You can see that there are regions where the density looks almost normal, and other regions, large regions, where the density is zero. The background is black where there is water to indicate that the zero density regions are not over oceans. Maybe Mojang is hinting at a vegetarian future 🙂. Depending on where you spawn you could have the impression of a very empty world.
[media]I will pull out my numerical library extension from the MCA reader scripts so that the scripts are pure Ruby. I may post the result if the resulting scripts are still usable. I am sort of busy at work right now, so don't hold your breath.
Yup, 18w20a fixed the problem in the overworld. Coal and iron are back to 1.12.2 levels. I haven't tried the nether. See the attached plot.
[media]I used some Ruby scripts and a personal numerical Ruby C extension to read in the new format save files. The scripts and library will not be easy to port to your environment. The numerical Ruby extension has been verified and is in use on production software products, so I have no doubt it is giving me correct answers. The save file reader generates huge arrays of block ids that when visualized correspond exactly to what I see in game. It is possible I have made an error (who hasn't), but it is very unlikely in this circumstance. Ultimately, if you play the game you notice immediately that coal and iron are rare compared to 1.12.2. I am probably not the only person who has noticed this.
Snapshot 18w19b shows the same depressed density as seen in the plot above. You are probably a lucky diamond miner 🙂. Actually coal and iron ore are depressed most significantly compared to 1.12.2. To me it appears that the size of contiguous deposits of ore are smaller in 18w versions. Diamond and lapis have pretty small deposits on average anyway, but it is the coal that is most significantly affected.
[media]
We finally got internet back. Using version 18w10d and analyzing a 512x512x128 region, the density of nether_quartz_ore is about 0.0047 relative to netherrack between heights 10 and 110. Remember the same calculation gave 0.0087 for version 1.12.2. This confirms your suspicions that every ore is stingy, even in the nether. This has been true for every 18w version and it has not been fixed in 18w10d.
quartz_ore has a density of 0.0087 between heights 10 and 106 in 1.12.2 relative to bedrock plus netherack. I analyzed a 512x512x128 region. Density drops off below 10 and above 106.
Unfortunately we lost internet due to the "bomb cyclone". I can see the end of the FIOS cable laying on the ground. I can only run minecraft off line and it only lets me run 1.12.2 even though 18w08b is in my versions directory. I did not reach the nether while running 18w08b. I will finish the analysis for 18w08b when I am able to run 18w08b again.
I analyzed the same region in two worlds with the same seed, the only difference being the version numbers 1.12.2 and 18w08b. Same pattern of low coal_ore and iron_ore density.
[media][media]
The screenshots uploaded with FireFox, not Chrome. You can see coal_ore in the 1.12.2 world near the center and near the cow. There is no coal visible in the 18w08a version. This is a tiny example, but the general dearth of coal_ore everywhere adds up.
The screenshots I promised are not uploading. Jira is reporting issues.
I generated two worlds with seed 12345 and traveled to 0,0 in both 18w08b and 1.12.2. The attached screen shots show the terrain and biome are the same but trees, grass, flowers are in different places. The devil is in the details. It will take a while to force a save of a full region in both versions for analysis, unless you have a trick.
[media][media]
The volume analyzed was one region up to height 64 (512x512x64) for both versions. I believe the world generation algorithm changed for the 18w series, so the same seed doesn't generate the same world.
Seed = 100, version 21w43a, survival mode.
Cows, pigs, sheep, and chickens require grass blocks and, as you point out, a sufficient light level to spawn.
The first image is a crude map of biomes. Light green represents some form of grasslands, dark green represents some form of forest forest. The white is some kind of snowy biome. The black dots are either cows, pigs, sheep, or chickens. Notice that from X = 0 to X = 1024 and Y = 3100 and Y = 3700 the number of entities drops nearly to zero. Elsewhere the entities generate normally in both grassland and forest.
The second image is a map of grass blocks with cows, pigs, sheep, and chickens marked in red. You might need to blow up the images to see clearly. Grass blocks under trees were removed to make sure light level was not an issue. There is a huge area of grass blocks without any entities from X = 0 to 1024 and Y = 3100 to 3700.
Starting with 21w41a this issue occurs much less frequently, but it still occurs. I had to search for it in this world. I would be very curious to know how the algorithm works because it is not so easy to accidentally write an algorithm that excludes large areas but works perfectly in others.