You should replace CSSafety and CSData with timer utils since that's the new standard. Timer utils only works with timers, not groups, the reason for that is because in vJass we don't really use dynamic groups anymore and for static groups NewGroup is useless, you can just replace all your NewGroup calls with CreateGroup and then replace CSSafety with timer utils, this will make your spell more up to date.
You could move a lot of function calls from the Conditions function to the MyStruct create method for organisational purposes. Since you flush the table data in the onDestroy method, it would be more fitting to set it in the create method. Similarly, since you remove the units from the groups in the onDestroy method, you should add them in the create method. Same for creating the timer. I understand why it's a pain to start the timer in the create method, so that can be left in the Conditions function, but the rest of the stuff there belongs in the create method more.
Perhaps a cool calibration option would be to allow the vertex colouring of the penguin to change over time as size does, but that would on the other hand mean you'd need a ton of calibration constants...
Other than that the spell seems ok.
Crap only now you say it !!
Arrghhh I will see what I can do with TimerUtils... So I will have to use "CreateGroup()" and "DestroyGroup()" once again right ?
That has to wait, I just downlaoded the new patch and now I can not start my JNGP ! help!
Anyway, When will my spell get approved ?
EDIT EDIT EDIT
Problem with JNGP solved. Now I will soon make some changes but I do not guarantee I will use TimerUtils .. I still need some answers because recycling groups looks very good and I am not sure of stop using it without any further advices.