Hello Walter,
I'm curious what form of data you have that always seem to look like valid pointers. There are a couple other options you can pursue - moving the gc pool to another location in the address space, or changing the alignment of your void[] data so it won't look like aligned pointers (the gc won't look for misaligned pointers).
Most (but not all) of the cases I can think of where you get false pointers, re-aligning stuff or moving the heap won't help as the false pointer source will hit the full address space.
