### 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)

VkPipelineLayout pipeline_layout = VK_NULL_HANDLE;
			RID vertex_array;
			RID index_array;
			uint32_t pipeline_push_constant_stages = 0;
		} state;
#ifdef DEBUG_ENABLED
		struct Validation {
			bool active = true; 
			
			uint32_t dynamic_state = 0;
			VertexFormatID vertex_format = INVALID_ID;
			uint32_t vertex_array_size = 0;
			uint32_t vertex_max_instances_allowed = 0xFFFFFFFF;
			bool index_buffer_uses_restart_indices = false;
			uint32_t index_array_size = 0;
			uint32_t index_array_max_index = 0;
			uint32_t index_array_offset = 0;
			Vector<uint32_t> set_formats;
			Vector<bool> set_bound;
			Vector<RID> set_rids;
			
			bool pipeline_active = false;
			uint32_t pipeline_dynamic_state = 0;
			VertexFormatID pipeline_vertex_format = INVALID_ID;
			RID pipeline_shader;
			bool pipeline_uses_restart_indices = false;
			uint32_t pipeline_primitive_divisor = 0;
			uint32_t pipeline_primitive_minimum = 0;
			uint32_t pipeline_push_constant_size = 0;
			bool pipeline_push_constant_supplied = false;