### Godot version

v4.1.stable.mono.official [970459615]

### System information

Godot v4.1.stable.mono - Windows 10.0.22621 - Vulkan (Forward+) - dedicated GeForce GTX 1660 () - AMD Ryzen 7 2700 Eight-Core Processor (16 Threads)

### Issue description

In the TileSet module, the 'plus' icon to add an alternative tiles resizes when *interacting anywhere in the Tileset module* and obscures other alternative tiles, making them hard/impossible to select for tile sizes smaller than the default 16x16 (in my case, 8x8).

I have tried adjusting TileMap values in the inspector (and elsewhere) to see if this changes the behaviour, but it seems like the icon reverts to a 16x16 size if the TileSet Atlas' texture region is smaller than that, as sizes of 15x15, 14x14... demonstrate the overlapping issue. Larger tile sizes (e.g. 20x20, 32x32, etc.) are handled fine and the icon resizes accordingly.

It is possible to get around this by reopening the TileSet module (e.g. switching to TileMap and back) where the icon resizes correctly (even for smaller sizes), but breaks again when interacting with the module.

https://github.com/godotengine/godot/assets/1772788/01d6a942-b5fb-4a6b-8dbb-4a70280dc1ca



### Steps to reproduce

1. Navigate away from the TileSet module (so that it loses focus).
2. Navigate to the TileSet module.
3. Interact with any element that _forces the module to redraw_ (select a tile/tab, or change a property on a tile)
4. (Optional) Adjust the Tile Atlas `Texture Region Size` to a size smaller than 16x16 and repeat Steps 1-3.

### Minimal reproduction project

[AlternativeTileBugProject.zip](https://github.com/godotengine/godot/files/12256488/AlternativeTileBugProject.zip)
const Vector2i &coords = E.tile;
		const int &alternative = E.alternative;
		if (tile_set_atlas_source->has_tile(coords) && tile_set_atlas_source->has_alternative_tile(coords, alternative)) {
			TileData *tile_data = tile_set_atlas_source->get_tile_data(coords, alternative);
			if (!tile_data->is_connected(CoreStringNames::get_singleton()->property_list_changed, callable_mp((Object *)this, &Object::notify_property_list_changed))) {
				tile_data->connect(CoreStringNames::get_singleton()->property_list_changed, callable_mp((Object *)this, &Object::notify_property_list_changed));
			}
		}
	}
	notify_property_list_changed();
}
void TileSetAtlasSourceEditor::AtlasTileProxyObject::_bind_methods() {
	ADD_SIGNAL(MethodInfo("changed", PropertyInfo(Variant::STRING, "what")));
}
void TileSetAtlasSourceEditor::_inspector_property_selected(String p_property) {
	selected_property = p_property;
	_update_atlas_view();
	_update_current_tile_data_editor();
}
void TileSetAtlasSourceEditor::_update_tile_id_label() {
	if (selection.size() == 1) {
		TileSelection selected = selection.front()->get();
		tool_tile_id_label->set_text(vformat("%d, %s, %d", tile_set_atlas_source_id, selected.tile, selected.alternative));
		tool_tile_id_label->set_tooltip_text(vformat(TTR("Selected tile:\nSource: %d\nAtlas coordinates: %s\nAlternative: %d"), tile_set_atlas_source_id, selected.tile, selected.alternative));
		tool_tile_id_label->show();
	} else {
		tool_tile_id_label->hide();
	}
}
void TileSetAtlasSourceEditor::_update_source_inspector() {