def METHOD_NAME(self) -> Tuple[List[BaseSpriteLoader], Dict[str, Callable]]:
    from modlunky2.sprites import monsters
    from modlunky2.sprites.items import ItemSheet
    from modlunky2.sprites.coffins import CoffinSheet
    from modlunky2.sprites.deco_extra import DecoExtraSheet
    from modlunky2.sprites.base_eggship2 import EggShip2Sheet
    from modlunky2.sprites.hud import HudSheet
    from modlunky2.sprites.floormisc import FloorMiscSheet
    from modlunky2.sprites.tilecode_extras import TilecodeExtras
    # Gather all of the sheets in a list, these are the classes, not instances yet
    _sheets = [getattr(monsters, m) for m in monsters.__all__]
    _sheets.extend(
        [
            CoffinSheet,
            EggShip2Sheet,
            ItemSheet,
            HudSheet,
            FloorMiscSheet,
            DecoExtraSheet,
        ]
    )
    # Now making them instances
    sheets = []
    for sheet in _sheets:
        if issubclass(sheet, BaseJsonSpriteLoader):
            sheets.append(sheet(None, None, self.base_path))
        else:
            sheets.append(sheet(self.base_path))
    # These uses the constant BASE_DIR as the base path as this
    # texture is bundled with the source rather than coming
    # from the extracted assets.
    sheets.append(TilecodeExtras(BASE_DIR))
    for class_ in EXTRA_TILECODE_CLASSES:
        sheets.append(class_(BASE_DIR))
    key_map = {}
    for sheet in sheets:
        for k in sheet.key_map():
            key_map[k] = sheet.get
    return sheets, key_map