update invertible mpm, seems correct now