Yeah, I went with 16x256x16 because the position can be stored with just 2 bytes (2 characters). Halving the height would, of course, reduce the amount of data each filled chunk would take. That would be 32,768 blocks at 163.84 KB of data. But, regardless of what optimizations you make, it’s still 1 MB per player. With 1 MB and half a chunk, you can still only store 6 chunks with 65.536 KB left over. That would also be for one user, for the entire experience and all worlds/servers, just 6 chunks.
If we got the full 4 MB of a DataStore per user, like we should, then each player could have 25 chunks with 98.304 KB left over. (Or 12 chunks with 262.144 KB left over, if we’re talking about the full 256 height.) While it can never compare to Minecraft, 25 savable chunks per player seems at least reasonable.