Started laying out the tiles in Max, being sure to use instancing when duplicating them so they use up far less memory. Also, the pivot point for each is set to the corner so I can quickly snap them along the grid, which saves me time and keeps things aligned. By the way, the colourful blocks along the bottom of the picture are the original base primitives that I made before sculpting, and the blue rectangle at the top is a reference to the player's scale in UDK.
The final layout of the high-poly meshes, now to do a low-poly retopology inside Max.
Even with the instanced tiles, I found Max was really chugging along at only a couple frames per second (and at around 10 million triangles in the scene I can't really blame it). Also, it turns out that Editable Meshes can't be used as reference for a retopology, which my entire layout was comprised of, so to work around this, I exported the entire layout as another OBJ, brought it into ZBrush again and decimated it down to something more workable. I'm keeping this original highpoly layout however for when I start baking textures in XNormal.
Now I'm back in Max, building up the low-poly geometry using the Freeform 'Step Build' and 'Extend' tools, trying to maintain the same basic form as the higher-poly layout. With the Freeform tools, when I extrude an edge or make a poly, the verts hover over the original mesh, with a slight offset so I can still see what I'm doing.