Have a look at this, I think it is what you want! Basically I make a tetrahedron of tiles and then split each one along the longest side and project the new corners onto the surface of the shape (in this case a sphere, but it could be anything). The algorithm stops when the side length of the triangles gets less than a pre-defined setting. The meat of it is in SplitTile and SearchforSurface (these work on the body object to tell it what its new tiles are). I then inflate the sphere to get the bouncing effect, but you wouldn't do this so you don't need to worry about what happens next.
I am looking for work so if anyone sees this and likes it, give me a shout. I am a native English speaking database person in real life. Farting round with games and physics is for fun. From poking around on here it seems like a heartbreaking way to make a living! firstname.lastname@example.org
Steal away, all my work apart from the bits I have acknowledged, please acknowledge me in return.