ParticleShape1.rotation=<>, but it rotates around the world axes 
Your information is worng. Its actually rotating around local axes, buts since your particle object is unlikely to be rotated that would coencide with world directions yes.
Rotations are in fact a bit convoluted to understand*, esepecially if you intend to do the opeartion in euler space. In fact you may find its mathematically near impossible to do. Rotations are quite the highest order math a TD is normally ever asked to work with. Euler rotations are terminally broken in design, wich is why internaly the engines use matrixes for rotations because the eunler solutions are frequantrly non solvable. In this case it might be easily solvabe, IF ou happened to choose the right direction for yoru geometry that happens the be te euler operand last to react.**
In any case the problem is thet you have in fact 2 rotations and summing them is not entirely trivial. There is probably a easy solution tough, since your using normals its more natural to use aim direction drive the rotation then your NOT actually using rotations at all to do the driving of final values. But see normal aiming works a bit like axis angles, and its just a matter of changing the aim up axisvector
The particles align to a surface closest point's normal vector
Somebody has been looking at pretty old teaching material
- well in fact very hard, wich is why you wnt find anybody who can readily do it. Theyd all do it in diferent math and convert to eulers.
** problem with elers is that eler + euler resuklts in garbage. so to sum 2 euler angles you have to convert eulers to either matrices or quats then do multiplication (matrix) or sum (quat) and sum back but seriously dont do this.
VBut eulers work in succession so just as long as your local happens t be the last rotation to react your in luck,