Can't do this. Currently each particle vertex uses 64 bytes of ram. To form a cube particle, we need 8 vertices. For efficiency we need a copy of the particle vertices on both system ram and video ram. So each particle requires 8 x 64 x 2 = 1024 bytes of RAM. The game currently allows for 4000 active particles = 4MB of ram.
To do texture mapping, we need 24 vertices per particle to correctly map the textures to each face, and another 4 bytes per vertex to hold the UV (texture) coords. So we would now require 24 * 68 * 2 * 4000 = 13MB of RAM. We can't afford that.
The particle shader would now have to process 3 x more vertices, and do a texture lookup for every pixel. So it's not just an extra RAM cost, but also a shader processing cost.
On top of that, we can't mix and match texture and non texture particles in the same particle system / shader, so I'd have to split it into 2 particle systems.
In short, not going to happen, the cost is too high.
Shapes Selector & Particles modeler:
We can't mix and match particle shapes, we'd need a different particle system per shape type. Plus shapes such as spheres and toruses require a lot more vertices than a cube, dramatically increasing the RAM usage and particle shader processing time.
Not going to happen.
Orbit, Vertical Rotation, Set Max Particle Expansion:
All of these are possible, but come at a cost.
Verticle rotation is the cheapest, it only requires another 2 bytes per vertex - 8 * 2 * 2 * 4000 = 128kb of RAM and the additional processing required in the shader is not too bad.
Set Max Particle Expansion:
This would require an extra 12 bytes of RAM per vertex = 8 * 12 * 2 * 4000 - 768kb of RAM. Quite a cost for something I think can be controlled well enough with the current options. There is also a cost for the shader as it has to calculate and react if a particle has reached the expansion limit.
Probably the most useful of all of the options here, but also the most costly. To handle Orbit we need an origin (12 bytes) and a 3D rotation vector (12 bytes) - So the RAM cost is 8 * 24 * 2 * 4000 = 1.5MB. Signficant. Also the shader cost is significant - it requires several matrix operations. The only way I could add this is to reduce the number of active particles.
Pitch & Yaw:
This is possible with little cost, because it does not require any new vertex data - the pitch and yaw can be calculated and set on the vertices when the particle is spawned - because it's a fixed value.