I did a thing like this simple using the bitmap instructions...i made some 10x10 pixels tiles (grass, rock, sand ecc..), and a function copies them on the blank terrain texture, one for square (i have a 200x200 terrain with a 2000x2000 skin).
Then it's all antialiased by GSjanfx plugin.
This would require very much time normally, but place the painter function in a function with a while() loop called by another while() loop, and this requires only 20 seconds, because of thousands of functions called at the same time.

function paint_tile(type)
{
while()
{
....
}
}

function ...
{
while()
{
paint_tile(tile_type);
wait(1);
}
}