The reason I was wrestling with IS<->IS was a consequence of being a very early IPv6 adopter (including native multicast for IPv6 and IPv4, but that's a different story). It's just the incongruity of working with a routing protocol on an IP network that doesn't really want to believe that is it on an IP network. RIP was a nightmare, but I had to deal with it at the edge - because customers. MPLS has its good and bad points - if I were to be the one writing a layer 3 replacement for IP I would use a label switching protocol at its core, but not MPLS as is.
Yes, it is different. I think of IS-IS as "that more or less OOB (wrt IP routing table) hop-by-hop thing that keeps track of my links" and thus usually restrain IS-IS signalling to backbone links and passive loopbacks; nothing more, all in one area (Vijay Gill at AOL did OSPF->IS-IS there with one global area, so with reasonably new iron it scales) and no edge nets in the table at all, just the loopbacks and links. Key is convergence and a
fast one at that. You can recover from a link failure in as little as 200ms on a country-wide net; the limiting factor is that we now run SDH signalling (ie. BFD) on top of Ethernet, because "GNU/systemd x64 virtual machines running HTTP over NATed v4 and strangely named Ethernet cards" is the only thing those unsupervised glue-sniffers with their microservices understand.
Yes, I'm feeling old, and I'm turning 51 next week.