Excuse the commenting etc, I'm still learning GDscript, but I think this is pretty straight forward. The problem is there is no method for getting the vertex position, just setting it....setter, no getter.
here is the script:
extends MeshInstance
var idx = []
var pos
func _ready():
var msh = mesh
var mdt = MeshDataTool.new()
mdt.create_from_surface(msh, 0)
mdt.get_vertex_count()
#print(String(self.name) +" has ("+String(mdt.get_vertex_count())+") verts") # debug
for i in range(mdt.get_vertex_count()):
idx.append(mdt.get_vertex(i))
pos = idx[i].global_transform.origin # + orientation + vertex offset or something
print(pos)
### add object instances and settings like pos, rot, mat etc here
### end of scorcery
#print("Array length is: " + String(idx.size())) # debug
mdt.clear() # clear data & free tool