### 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
int facecount = faces.size();
	ERR_FAIL_COND_MSG(!facecount, "Parent has no solid faces to populate.");
	const Face3 *r = faces.ptr();
	float area_accum = 0;
	RBMap<float, int> triangle_area_map;
	for (int i = 0; i < facecount; i++) {
		float area = r[i].get_area();
		if (area < CMP_EPSILON) {
			continue;
		}
		triangle_area_map[area_accum] = i;
		area_accum += area;
	}
	ERR_FAIL_COND_MSG(triangle_area_map.size() == 0, "Couldn't map area.");
	ERR_FAIL_COND_MSG(area_accum == 0, "Couldn't map area.");
	Ref<MultiMesh> multimesh = memnew(MultiMesh);
	multimesh->set_mesh(mesh);
	int instance_count = populate_amount->get_value();
	multimesh->set_transform_format(MultiMesh::TRANSFORM_3D);
	multimesh->set_use_colors(false);
	multimesh->set_instance_count(instance_count);
	float _tilt_random = populate_tilt_random->get_value();
	float _rotate_random = populate_rotate_random->get_value();
	float _scale_random = populate_scale_random->get_value();
	float _scale = populate_scale->get_value();
	int axis = populate_axis->get_selected();
	Transform3D axis_xform;
	if (axis == Vector3::AXIS_Z) {
		axis_xform.rotate(Vector3(1, 0, 0), -Math_PI * 0.5);
	}