Encountered similar issue (kinematic and dynamic collision objects interacting with static tilemap).
OS: Windows 10.
- Allow kinematic/dynamic collision objects to reach steady-state on collision tile. (e.g. player or object landing on tile)
- set_tile() sets the tile to one not included in the collision mask.
- kinematic/dynamic object remains at rest.
- Initiating movement on the kinematic object recognizes updated collision mask, but only when the contact normal vector changes/is refreshed (verified through physics debug view).
e.g. moving away and then re-initiating contact with where the ghost tile is will respect the updated collision mask. Moving laterally to the ghost tile will cause the collision to persist.
IMHO this limits potential for using dynamic tilemaps during gameplay.