Switching from a generated mesh per chunk to instanced rendering for each of the 6 faces per chunk worked to reduce memory usage on my minecraft clone!
The quick math of 9.3GB down to 300MB I did before starting was actually a little conservative.
It turned out to actually go down to ~240MB for 16*20*20 chunks.
Also, now that the data for each face is just a u32 the amount of uncovered faces doesn't affect the memory usage by a crazy amount (235MB in best case, 297MB in worst case).
derpsin.space is one server in the network