I did use the JSFL decomposition script originally and it gave a single poly with 16 points. (Actually 17 but 2 of those were really close). Didn't even time out unlike at other times with different shapes. That's why I was wondering if there was a limit when box2d couldn't handle that many points. I looked at it again after you mentioned the limit but didn't see anything related to that. Strange.
I looked at b2PolygonShape.Decompose and that was the function that I thought would only work for concave polygons. In the docs it says: "Decompose a concave polygon into a bunch of convex ones". That's why I didn't even try it.
In any event, b2PolygonShape.Decompose does work for what I wanted
Just to check if perhaps I'm taking a few extra steps:
-In my class that extends BodyShape, pass the coordinates to b2PolygonShape.Decompose
-Loop through the returned b2PolygonShape array
-Loop through each b2PolygonShape with GetVertexCount() and GetVertex()
-add those points to MyVertices arrray
-add the MyVertices arrray to a MyPolygons array
Sometimes the JSFL script did time out. I'm guessing it might have had something to do with this part in the script:
//If we still haven't found an ear, we're screwed.
//The user did Something Bad, so return null.
//This will probably crash their program, since
//they won't bother to check the return value.
//At this we shall laugh, heartily and with great gusto.