Rewriting example from Flash/Box2D

I've been going over some great demos and examples from Emanuele Feranto (a Flash developer who's done a lot with Box2D). I took his original Flash example for beginners and tried porting it to Farseer and XNA on the phone.

It works, for the most part. There are two or three big problems that I'm hoping someone can help a n00b out with:

The rotation of the boxes isn't right. I'm using the rotation of the object but not sure. If you put this into an application you'll see the boxes go spinning all over the place. I tried using MathHelper.WrapAngle(box.Rotation) but that didn't help

The boxes don't look like they're quite right so I think what I'm drawing on the screen isn't matching what Farseer is producing (I thought I was doing all the conversions right?)

This thing runs for awhile but then crawls, probably because in a few minutes there are hundreds of Body objects in the world. I'm assuming I should be doing something like checking if the box is on screen and if not remove it from the world?

The calls to ConvertUnits is just using the class from the WP7 samples.

Any help would be appreciated. I think I'm starting to grok this stuff. Thanks!

Update: After putzing around with transformations I just got lazy and dropped in the DebugViewXNA code from the sample and watched how it worked perfectly. I'm chasing down how it draws it's shape because I guess you have to do some matrix transformations
(even with a simple 2D phone surface that I'm drawing to) to get the right co-ordinates. In any case, the DrawShape method of DebugViewXNA works great, I just have to figure out how to extrapolate that into a regular XNA Rectangle to do something like render
a texture for the shape properly.

Hi nice tutorial! Also I'd like to point out that stacking boxess is not an easy task for a physics engine for several reasons:
1. Number of objects and performance.
2. Tunnelling because of fall speed (fast moving objects).
3. Stacking stability in general.
4. Stacking potentially heavy things on top of lighter things (that's actually a non solvable issue).

So all in all great demonstration of Farseer in a pretty difficult scenario. If I might add a suggestion can you post the code itself as a zip or at least make it so that it can be copy-pasted without the line numbers (which are a pain to remove). Also add
the usings section as beginners might have a problem with what references are needed.

As for your original code without the debugview there is something iffy. For example regarding rotation: in Farseer a body rotates around it's center but what about XNA? It rotates about the "origin" point which is passed as a parameter. It our case Vector(0,0)
doesn't correspond to the center but to the top-left corner. This would affect translation too etc. You can try to improve that manually or use the code from the samples which you are probably looking at right now.