### Godot version

4.1.3 stable.arch_linux

### System information

Artix Linux Godot v4.1.3 stable.arch_linux

### Issue description

![2023-11-14T16:29:28,788232528+01:00](https://github.com/godotengine/godot/assets/92468390/a79027e2-1539-4ca9-9369-978c32dea26d)
Both "Target Surface:" and "Source Mesh:" accept non Node3D nodes which doesn't really make any sense as they need 3D geometry to function.

### Steps to reproduce

1. Add a MultiMeshInstance3D
2. Add a Node that doesn't inherit Node3D
3. Open the "Populate Surface" menu and click the right button of either "Target Surface:" or "Source Mesh:"

### Minimal reproduction project

N/A
if (axis == Vector3::AXIS_X) {
		axis_xform.rotate(Vector3(0, 0, 1), -Math_PI * 0.5);
	}
	for (int i = 0; i < instance_count; i++) {
		float areapos = Math::random(0.0f, area_accum);
		RBMap<float, int>::Iterator E = triangle_area_map.find_closest(areapos);
		ERR_FAIL_COND(!E);
		int index = E->value;
		ERR_FAIL_INDEX(index, facecount);
		
		Face3 face = r[index];
		
		Vector3 pos = face.get_random_point_inside();
		Vector3 normal = face.get_plane().normal;
		Vector3 op_axis = (face.vertex[0] - face.vertex[1]).normalized();
		Transform3D xform;
		xform.set_look_at(pos, pos + op_axis, normal);
		xform = xform * axis_xform;
		Basis post_xform;
		post_xform.rotate(xform.basis.get_column(1), -Math::random(-_rotate_random, _rotate_random) * Math_PI);
		post_xform.rotate(xform.basis.get_column(2), -Math::random(-_tilt_random, _tilt_random) * Math_PI);
		post_xform.rotate(xform.basis.get_column(0), -Math::random(-_tilt_random, _tilt_random) * Math_PI);
		xform.basis = post_xform * xform.basis;
		
		xform.basis.scale(Vector3(1, 1, 1) * (_scale + Math::random(-_scale_random, _scale_random)));
		multimesh->set_instance_transform(i, xform);
	}
	node->set_multimesh(multimesh);
}
void MultiMeshEditor::_browsed(const NodePath &p_path) {