Reverse Foot
1. Lets start by creating a simple skeleton from the hip down. Create the joints of the leg starting at the hip then knee, ankle, ball and tip of the toe (5 total). Adjust the joint placement. By hitting insert, individual joints can be moved without moving their children. Make sure that the knee is pulled out to give some angle from the hip to the ankle. This will help the ik solver find the preferred angle of the leg. After moving the joints run the jsOrientJointUI script to orient the joints. See Orienting Joints for how to use the script.
2. Now create an ik handle from the hip to the ankle. Move the ik handle and notice how the ball of the foot doesn't roll at all. The toe rolls very frequently and having to manually animate this every time would be very time consuming.
3. Now from your layer editor create a new display layer and place the skeleton and the ik on that layer and change the layer to reference mode.
4. Create the reverse foot. Start a new joint where the heel would be then snap another joint to the toe, the ball, and the ankle (in that order). It is important that these joints are snapped directly over the original joints so remember to use the point snap (hotkey 'v'). Name the joints rev_heel, rev_toe, rev_ball and rev_ankle. Create another layer and place the reverse foot on the layer and template it.
5. Unreference the original skeleton layer and place an ik handle on the foot from the ankle to the ball, then another from the ball to the toe. These are going to be controlled by the reverse foot with point constraints.
6. Template the original skeleton layer and untemplate the reverse foot (this is just a way to keep the joints organized because you are placing them right on top of each other). Now point constrain the toe ik_handle to the rev_toe joint, and the ball ik_handle to the rev_ball joint and the ik_ankle to the rev_ankle joint. The heel joint will control the foot from this point forward. Any foot controls will now have to be constrained to the rev_heel joint. Move the rev_heel and notice how the foot stays flat and rolls as the leg is extended in both directions.