I was able to get the Navigation Position to World Position working!
Though, it's been a while since Linear Algebra and I hardly understand how the transformation matrix works, haha.
I also used this as a reference for the math.
Here's my method:
(I divide my pos.z by 2 because each layer can contain tiles of either half height or full height. It was my work around for Godot's TileMap not supporting layer offsets)
func get_tile_world_transform(pos: Vector3):
pos.x += 1
var layer = int(pos.z)/2
var matrix = Transform3D()
var tile_length = map.tile_set.tile_size.x/2
matrix.basis.x = tile_length * Vector3(1.0, -1.0/2.0, -1.0/2.0/sqrt(2.0))
matrix.basis.y = tile_length * Vector3(-1.0, -1.0/2.0, -1.0/2.0/sqrt(2.0))
matrix.basis.z = tile_length * Vector3(0.0, 1.0, -1.0/2.0/sqrt(2.0))/2
matrix.origin = Vector3.ZERO
var world_pos = matrix * pos
world_pos.y *= -1
world_pos = map.to_global(Vector2(world_pos.x, world_pos.y))
return Vector3(world_pos.x,world_pos.y,map.get_layer_z_index(layer))
Though for some reason I need to offset the original Navigation Graph position by +1 in the X axis; I'm not sure why. Maybe some integer division I missed somewhere? Otherwise, it seems to be working as intended. Thanks for all the help!
But would you happen to know why I'm needing to add that pos.x offset?