(Now, i am just thinking this up on the spot now, like most things)
you could pull off a village size building cluster or larger by:
first it would need to be spread out
set a limit to the number of blocks you could use
have like 10,15, or 20 or so number of blocks (probably should make big)
For each block create a list of 10 or so (for positions)
Set these when a block is created by user
Then say if block is more than 50 meters away
set block isShowing to false (which will allow to to use more blocks)
but keep its position in the list!
Then when another block is "created" by the user
set that position to the second item, in the list
and so on
Of course, you would have to make sure none of the items of the list are within 50 or so meters of each other, but that shouldn't be hard if you make the blocks big.
I haven't used positions really, so if that can't work, i got a backup plan:
Create a lot of dummy objects and set isShowing to false
Lol, i only posted that because
1. i wanted to persuade you (and everyone else)

2.i'd forget otherwise