Sorry, I’m not sure I understand your question, or perhaps you didn’t understand my post. There’s only one file, the tile sheet.
Here’s an example of a tile sheet (scaled to 50%, and with the transparency grid visible behind the tiles, this one is for a side-scrolling game so there are a lot of transparent tiles):
Well, technically there are two files: there’s the exported PNG that goes into the game (either directly or as part of a larger atlas), and the layered source file (e.g. *.aseprite or *.psd) that has some additional guide layers such as templates.
Tiles are identified simply by their coordinate in the tile sheet.
As you can see, this particular tile sheet has a big gap in the lower left, this is space for future tiles. If that space isn’t enough, I could expand the image to add more space. If I end up with left-over space, I can stick non-tile stuff in there such as UI elements, and simply not use those “tiles” in the game’s maps. The tile sheet is just a single, simple texture and is used as such.
If your engine and level editor support it, you can have several tile sheets, you don’t have to pack everything into one. If you have some mutually exclusive tiles (e.g. tiles for a snow area, and tiles for a desert area), then you could have them in separate sheets and only have one loaded at a time.