### Godot version

4.0.1-stable

### System information

Android 12, Mobile Renderer

### Issue description

When retrieving Mesh data from a MeshInstance3D like so...
```GDScript
var mesh = self.get_mesh()
var mesh_array = mesh.surface_get_arrays(0)
var vertex_array = mesh_array[Mesh.ARRAY_VERTEX]
var index_array = mesh_array[Mesh.ARRAY_INDEX]
```
...the index_array contains vertex indices that are not within the vertex_array.

This issue does not occur in the Linux editor, but does occur on my Android build:
Android 12
arm64v8
sdk version 32.0.0
ndk version 23.2.8568313

### Steps to reproduce

Download the minimal reproduction project, which contains an example ArrayMesh and GDScript script which has the code shown above. Build to Android using the 4.0.1 build template and test.

### Minimal reproduction project

[Array_Mesh_Test.zip](https://github.com/godotengine/godot/files/11133179/Array_Mesh_Test.zip)

uint32_t device_id;
		uint32_t driver_version;
		uint8_t uuid[VK_UUID_SIZE];
		uint8_t driver_abi;
	};
	struct PipelineCache {
		String file_path;
		PipelineCacheHeader header = {};
		size_t current_size = 0;
		LocalVector<uint8_t> buffer;
		VkPipelineCache cache_object = VK_NULL_HANDLE;
	};
	PipelineCache pipelines_cache;
	WorkerThreadPool::TaskID pipelines_cache_save_task = WorkerThreadPool::INVALID_TASK_ID;
	void _load_pipeline_cache();
	void _update_pipeline_cache(bool p_closing = false);
	static void _save_pipeline_cache(void *p_data);
	struct ComputePipeline {
		RID shader;
		Vector<uint32_t> set_formats;
		VkPipelineLayout pipeline_layout = VK_NULL_HANDLE; 
		VkPipeline pipeline = VK_NULL_HANDLE;
		uint32_t push_constant_size = 0;
		uint32_t push_constant_stages_mask = 0;
		uint32_t local_group_size[3] = { 0, 0, 0 };
	};
	RID_Owner<ComputePipeline, true> compute_pipeline_owner;