Checks in this operator were simply not handling liboverrides properly. Also refactored that code, grouping & refining checks and error reports, add comment about why there is specific weird undo handling, improve variable namings, remove non-sensical assumptions and code regarding orig/eval objects, etc.