This is my map ... it has no ground and no sky because I won't be doing those any more.

I get this for free ... (automatically generated) ... the ground is automatically constructed from an initial rect the size of the map bounding box. Each entity (the lake is a func_group, the hill is a func_group) clips away from the initial rect creating more smaller rects <=== that is your ground. Then it takes everything and slams a skybox around it.

And with this compiler directive for the grass ...
"q3map_surfaceModelCollide models/outdoors/variousveg/tree_autosprite2_16_16_32.ase maps/_collide_2_2_32.ase 38 0.00625 8 16 1 122 1"
I get this ...
Edited 1.4 minutes after the original posting.