private void registerMiscellaneousOptions(Options rootOptions, HelpLocation help) {
		List<String> optionNamesInDisplayOrder = new ArrayList<>();

		Options options = rootOptions.getOptions(MISCELLANEOUS_OPTIONS);

		optionNamesInDisplayOrder.add(MAX_NODES_SIZE);
		options.registerOption(MAX_NODES_SIZE, OptionType.INT_TYPE, maxNodeCount, help,
			"Graphs with more than this number of nodes will not be displayed. (Large graphs can cause Ghidra to become unstable/sluggish)");

		if (defaultRegistrations.containsKey(VERTEX_SELECTION_COLOR)) {
			optionNamesInDisplayOrder.add(VERTEX_SELECTION_COLOR);
			options.registerThemeColorBinding(VERTEX_SELECTION_COLOR,
				defaultRegistrations.get(VERTEX_SELECTION_COLOR), help,
				"Color for highlighting selected vertices");
		}

		if (defaultRegistrations.containsKey(EDGE_SELECTION_COLOR)) {
			optionNamesInDisplayOrder.add(EDGE_SELECTION_COLOR);
			options.registerThemeColorBinding(EDGE_SELECTION_COLOR,
				defaultRegistrations.get(EDGE_SELECTION_COLOR), help,
				"Color for highlighting selected edge");
		}

		if (defaultRegistrations.containsKey(DEFAULT_VERTEX_COLOR)) {
			optionNamesInDisplayOrder.add(DEFAULT_VERTEX_COLOR);
			options.registerThemeColorBinding(DEFAULT_VERTEX_COLOR,
				defaultRegistrations.get(DEFAULT_VERTEX_COLOR), help,
				"Color for vertices that have no vertex type defined");
		}

		if (defaultRegistrations.containsKey(DEFAULT_EDGE_COLOR)) {
			optionNamesInDisplayOrder.add(DEFAULT_EDGE_COLOR);
			options.registerThemeColorBinding(DEFAULT_EDGE_COLOR,
				defaultRegistrations.get(DEFAULT_EDGE_COLOR), help,
				"Color for edge that have no edge type defined");
		}

		optionNamesInDisplayOrder.add(DEFAULT_VERTEX_SHAPE);
		options.registerOption(DEFAULT_VERTEX_SHAPE, OptionType.STRING_TYPE,
			defaultVertexShape.getName(), help,
			"Shape for vertices that have no vertex type defined",
			() -> new StringWithChoicesEditor(VertexShape.getShapeNames()));

		optionNamesInDisplayOrder.add(FAVORED_EDGE_TYPE);
		List<String> edgeTypes = graphType.getEdgeTypes();
		if (!edgeTypes.isEmpty()) {
			options.registerOption(FAVORED_EDGE_TYPE, OptionType.STRING_TYPE, favoredEdgeType, help,
				"Favored edge is used to influence layout algorithms",
				() -> new StringWithChoicesEditor(edgeTypes));
		}

		optionNamesInDisplayOrder.add(DEFAULT_LAYOUT_ALGORITHM);
		options.registerOption(DEFAULT_LAYOUT_ALGORITHM, OptionType.STRING_TYPE,
			defaultLayoutAlgorithmName, help, "Initial layout algorithm",
			() -> new StringWithChoicesEditor(LayoutAlgorithmNames.getLayoutAlgorithmNames()));

		optionNamesInDisplayOrder.add(LABEL_POSITION);
		options.registerOption(LABEL_POSITION, OptionType.ENUM_TYPE, labelPosition, help,
			"Relative postion of labels to vertex shape (Only applicable if \"Use Icons\" is true");

		if (themeFontId != null) {
			optionNamesInDisplayOrder.add(FONT);
			options.registerThemeFontBinding(FONT, themeFontId, help,
				"Font to use for vertex labels");
		}

		optionNamesInDisplayOrder.add(USE_ICONS);
		options.registerOption(USE_ICONS, OptionType.BOOLEAN_TYPE, useIcons, help,
			"If true, vertices are drawn using pre-rendered images versus compact shapes");
		options.registerOptionsEditor(
			() -> new ScrollableOptionsEditor(MISCELLANEOUS_OPTIONS, optionNamesInDisplayOrder));
	}
Loads values from tool options

@param tool the tool from which to update values.
Ghidra/Framework/Graph/src/main/java/ghidra/service/graph/GraphDisplayOptions.java