Ah ha. You use looping. With the 3D array system I invented for GameMaker, you do not need to loop through things, it is very fast, and can store infinite n dimensional arrays! I will not tell the GMC how I do it until after my project is released, but I may tell you in a PM in return for your cooperation. It is the looping-through-the-array part that takes all the CPU power... the algorithm itself is actually very fast.
I know looping is bad but for now it is the only way, thats why i set up this thread to figure out better ways of lighting