Maybe I'm misreading the code, please correct me if I oversee something.
In ubifs/__init__.py you read only the first master node from UBIFS_MST_LNUM and UBIFS_MST_LNUM + 1.
But both LEBs usually contain a series of master nodes and you need to find the most recent one.
Otherwise you will start from oudated/wrong roots (for index, lpt, journal, ...).