It sounds as though you wish to calculate the area to result in a positive value no matter what???
I read this several times, and I'm not understanding what your looking to do; then intent of the code?; and if there is a problem.
Judging from the line of code that performs a 'reverse' on list Mid_list, I think this isn't a qualified test if you've done things right or not.
Perhaps you are trying to compensate for different coordinate systems?? If yes, then post back as there are ways to handle UCS to WCS.
Can you ellaborate more, adding some comments inline of your code for each step?