Its fixable for worlds corrupted. Open your level.dat with NBTEditor, then navigate to [Your World's Name] > level.dat > DragonFight. There should be a list of numbers from 0 to 19, randomly ordered, but the list will be empty. You can just add the numbers from 0 to 19, or create a new world and open this new world with NBTEdit, then copy the list from the new world to the old one.
@Gavin Pit , yes, fixing your seed and regenerating the terrain will generate a fresh witch hut. Works for all of the chunks you may have generated with this terrain issue as well. Also live an up on the solution, it's my post as well (:
@Nic Tapia ... there are two corruptions in place here. 20w20b may have corrupted your seed, 20w21a corrupted the farms. The link in my commment put together all the solutions but all of them involve third party tools. Your case is only the fix for the farms, not the seeds.
@Gavin Pitt , please refer to the following post for a more complete solution.
https://www.reddit.com/r/Minecraft/comments/gttlj1/fixing_world_corruptions_from_last_snapshots/
@Gavin Pitt ... Your seed is corrupted. If you open your chat and type /seed, you will probably receive "[0]" as output. The same way, you can open your level.dat and add the seed to the locations it needs to be (If I am not forgetting any, there are two references on each of your dimensions). But deleting the chunks with the seed valid for the world will generate the same terrain.
Also, if you go anwhere you never generated, it will generate with different terrain.
This issue is caused by oppening your world on 20w20b.
To mention, the solution on the previous issue works fine, but yes it's complicated. A more simple way of dealing with would probably be using a region editor, such as MCASelector to delete the chunks containing the structure. This would also mean loosing the farms themselves but the structure will generate its mobs again.
Yup, updated to 20w22a, still the same bug for ocean monument. Haven't checked other structures.
Added a video as requested. Please notice some points that could interfere on the reprodution:
1 : Was on the nether when the bug was reproduced
2 : The floor underneath both the shulker box and the player was made of half blocks on the bottom part of the block, making the shulker higher in comparison to the player.