Short: Is there a way to center navigation2d points to tilemap tiles?
Long:
In an attempt of using tilmap with navpoly for tilebased movement, I tried centering the navigation points (there is a thread about this around here somewhere, although I can't find it) like so:
#Calculate path from player/start position to a clicked position:
var clickpos = get_global_mouse_pos()
path =Array(nav.get_simple_path(player.get_global_pos(),clickpos,true))
#Store centered points in the array "centerpath":
for p in path:
var centerpoint =map.map_to_world(map.world_to_map(p)) +Vector2(0,map.get_cell_size().y/2.0)
centerpath.append(centerpoint)
#Use "centerpath" as actual navigation path:
path=centerpath
This will center the path's points (white dots) but also result in some problems:
green = walkable, gray = not walkable, red = Start & Click positions
I guess this is because navigation2d adds its points like this:

Replacing bits of the code in order to get the relevant 'walkable' tiles:
for p in path:
var tile= map.world_to_map(p) #Get tileset coordinates at p.
var tilepoint =map.map_to_world((tile)) #Get current tile's "global" coordinates.
...returns point 5 of 7 (in the example above) as a gray tile. Shouldn't this only return coordinates from 'walkable' tiles, since it was taken from navigation2d's path array in the first place?
The problem persists on square tilemaps and does not only allow cutting corners, but also stopping and traversing over some gray or empty tiles like this.
Is there a way of getting around this?