Voxelize a G4Multiunion results in memory problem


I tried to generate a very simple surface roughness by placing spikes using a G4Multiunion.
I was able to generate a surface with 1000 x 1000 spikes, all looking the same.
The Voxelization took a few minutes, but that’s okay.

Now I redid the surface roughness, again using a G4Multiunion, but this time the spikes have different heights chosen randomly.
If I try to generate 90 x 90 spikes I suddenly use several GB of RAM for Voxelization of the G4Multiunion (Its in the order of 20 GB).

I assume that this problem occurs because of the different height of the spikes and therefor because there are now several boundaries and not only two (bottom of spikes, top of spikes) stored in Z-direction (direction of height of spikes).
Is there a way of excluding one direction from splitting in several layers?
Or can I reduce the graining, reduce the number of slices?
Or do I have to extend the G4Voxelizer and Multiunion classes?