Ok, I've done a little digging and found a solution. All credit to Stevest.
Action: Replace with regular expression
Field: _ALL
Regular expression: ^(.*)$
Replace matches with: $caps2($1)
[ ] case-sensitive comparison
I just replaced the Mixed Case action with this. Works like a charm. 