### Godot version

4.0.stable

### System information

Windows 10, MacOS

### Issue description

Some combination of ~~#72301~~#72031 and #73829 and the differing platform default settings + not including default values in project.godot has created a frustrating problem. 

When a developer on the project opens it in Windows, it deletes `rendering/textures/vram_compression/import_s3tc_bptc=true` from project.godot. When that happens, the MacOS version then re-imports everything as only ASTC and updates all the `.import` files. And then it deletes `rendering/textures/vram_compression/import_etc2_astc=true` from project.godot. Then the windows machine re-imports everything, and forever and ever they fight over import files, unless we're diligent about not letting that particular change in `project.godot`. 

This has made cross-platform development very obnoxious and with high quality textures, the constant re-imports can take a very long time. 

### Steps to reproduce

1. Add a VRAM Compressed Texture to a project. 
2. Attempt to make both platforms happy by enabling both VRAM compression formats.
3. Re-open on both Windows and MacOS.

### Minimal reproduction project

N/A
}
			} break;
			case RS::ARRAY_WEIGHTS: {
				Variant::Type type = p_arrays[ai].get_type();
				ERR_FAIL_COND_V(type != Variant::PACKED_FLOAT32_ARRAY && type != Variant::PACKED_FLOAT64_ARRAY, ERR_INVALID_PARAMETER);
				uint32_t bone_count = (p_format & ARRAY_FLAG_USE_8_BONE_WEIGHTS) ? 8 : 4;
				if (type == Variant::PACKED_FLOAT32_ARRAY) {
					Vector<float> array = p_arrays[ai];
					ERR_FAIL_COND_V(array.size() != (int32_t)(p_vertex_array_len * bone_count), ERR_INVALID_PARAMETER);
					const float *src = array.ptr();
					{
						uint16_t data[8];
						for (int i = 0; i < p_vertex_array_len; i++) {
							for (uint32_t j = 0; j < bone_count; j++) {
								data[j] = CLAMP(src[i * bone_count + j] * 65535, 0, 65535);
							}
							memcpy(&sw[p_offsets[ai] + i * p_skin_stride], data, 2 * bone_count);
						}
					}
				} else { 
					Vector<double> array = p_arrays[ai];
					ERR_FAIL_COND_V(array.size() != (int32_t)(p_vertex_array_len * bone_count), ERR_INVALID_PARAMETER);
					const double *src = array.ptr();
					{
						uint16_t data[8];
						for (int i = 0; i < p_vertex_array_len; i++) {
							for (uint32_t j = 0; j < bone_count; j++) {
								data[j] = CLAMP(src[i * bone_count + j] * 65535, 0, 65535);
							}
							memcpy(&sw[p_offsets[ai] + i * p_skin_stride], data, 2 * bone_count);