Hlods take everything into account. Not just the level tile or landscape.
It is possible the foliage alone being cut into a landscape could generate a 20gb mesh replacement. Unlikely, and it just shouldn’t happen, but it is possible.
If the idea is to create a proper mesh replacement for the landscape. Use the level tab and generate one.
I would even suggest removing the landscape entierly and going with the mesh on the final iteration (youll have to change a few things, grass output, physmat etc, but it will always perform better).
The hlod system is pretty much just as bugged in ue4: Your problem analysis and proposed solution is probably the most correct thing anyone shared on this forum in the last year.
Still, 20GB generated hlod, sounds like you should pack up the project and share it as a bug report for the epic slackers to figure out.
Wouldn’t be surprised if it is looping over and creating multiple non visible meshes, or similar…