"I'm looking for a way to reverse my animation so it is identical the other way."
This is commonly asked and so I am presenting my solution.
This is a simple addon that using the scaling principle allowed by the NLA editor.
Click on "Raw" on the top left
Then right click anywhere and click "Save page as"
Save it as "AutoReverse.py"
Go into Blender and go to "Addons" in user preferences and click "Install from file"
Navigate to where you saved the .py, and then tick the box when it appears in Blender
Simply press "space" and type "Auto Reverse"
There are two different things this can be used on, normal animations, and rigid-body simulations.
For animations: You don't need to do anything except have at least two keyframes
For Rigid-body simulations: All you have to do is place a keyframe (of any type) at the start and end of the section you would like reversed. This is just so you can select part of the simulation, or all of it like in the picture. Keep in mind it will be baked and so the rigid-body nature will be removed, however this can be put back in afterwards.
This works on the principle of scaling a block of keyframes, but in this case by -1, in order to invert them. It is done around a central point so it's not shifted at all, and baked in order to produce a better result.
It automatically gets the first and last keyframe of any animation and then simply reverses it. It also works on objects that are already baked, meaning that you can repeat it on the same object, and just flip the animation backwards and forwards if you wish to.
So there you go, use it, mess around with it, it's all commented so you should be able to see what's going on. I welcome comments and suggested improvements.
This is my first addon and so I will have made mistakes but I just hope this saves people time and can be used for interesting projects!