char voxels[128][128][128];

i store the voxels like that and then i create 8x8x8 entities that contain 16x16x16 blocks in their mesh.

http://www.opserver.de/ubb7/ubbthreads.php?ubb=showflat&Number=342595#Post342595
the mesh gets generated like in this example. by checking the voxel data it's easy to just create faces for the actual surface area.

later if editing gets added it's only necessary to recreate the mesh of the entity you are located in. not the whole world. so it should be fast enough.

from what i have read on the ogre and gamedev forums this is very similar to how the minecraft engine works.

it still would be a lot of work though. i don't know how to calculate landscapes (i would have to look into noise functions and such things), a8 seems to have a bug with ent_setmesh() and it's a bit stupid that you can't freely assign textures to faces in the engine. as a workaround you have to prepare a dummy model in med that already contains all the needed block textures and has each of them applied to at least one face. only then the attribute buffer works if you substitute the mesh.