QUOTE(Ubershank @ Aug 23 2019, 01:58)

By observer, do you mean something that repeatedly checks to see if something has changed, and reapplies the script when it does? I'm not asking because I hope to make something that works, but just out of curiosity.
Yes, except the mutation observer just reapplies the callback function (named "onSubtreeChange" in the code below) instead of the whole script. This is how it works:
CODE
// ==UserScript==
// @name EH Hidden MPV Tooltips
// @namespace https://github.com/Mayriad
// @version 1.0.0
// @author Mayriad
// @description Disables the filename tooltips on main images in MPV
// @include https://e*hentai.org/mpv/*
// @run-at document-end
// ==/UserScript==
/* global MutationObserver */
;(function () {
const onSubtreeChange = function (mutations) {
for (const mutation of mutations) {
if (mutation.addedNodes.length === 0) {
// Do nothing when the images get dynamically removed.
continue
}
for (const addedNode of mutation.addedNodes) {
// Remove the title attribute from div.mi0 > a > img[id ^= "imgsrc_"] to remove the tooltip when a is loaded.
if (addedNode.nodeName === 'A') {
const mainImage = addedNode.querySelector('img[id ^= "imgsrc_"]')
if (mainImage !== null) {
mainImage.removeAttribute('title')
}
}
}
}
}
const mpvObserver = new MutationObserver(onSubtreeChange)
mpvObserver.observe(document.getElementById('pane_images_inner'), { childList: true, subtree: true })
})()
Aaannnd I have completed the feature request. Do you guys think people (besides OP) will need this feature though? I do not, but I would add this to my master script if it is deemed helpful enough.