Create your own movement engine. Allow it to move only if it is overlapping "passable" while on "solid", or if it is not overlapping "solid".
It can be tricky to develop your own movement engine, however I believe it is well worth it, since you can customize it to your heart's content. Double, triple jumps, slides, whatever. The platform movement behaviour is kind of a basic template that is there for less demanding users.