Ok, bmap_square_drawColor is generating a noise texture. I don't know if this is your original intention. A simple fill of the whole bitmap might be easier to identify as different for a start. But that's not the point.

The error is in here:
Code:
function asteroid_modify(ENTITY* ast_i)
{
	[...]
	ent_cloneskin(ast_i);
	bmap_square_drawColor(texture2, 255);
	ent_setskin(ast_i,texture2,1);
}


First you clone the entity and then you assign the same skin to all of them with ent_setskin. That does not make any sense at all. You have to call bmap_square_drawColor on every individual skin of the entities. You can grab the sking with bmap_for_entity. ent_setskin sets the skin as the name says. It does not copy any content.


Always learn from history, to be sure you make the same mistakes again...