Does the minimum spanning tree tell us anything useful about evolutionary ancestry?
Your graphic is omitting nodes of the tree, branching points, which are essential for trees and phylogeny.

When you read the data file, you should count the brackets ((( ))) because they signify where the tree has nodes, common ancestors.

You should generate simple phylogeny trees, prior to doing complex data mining for similarity. The names are in latin? there are genetic distance numbers? What format and data are you using? You have given the common animal names. you may have to use a database of common-and-latin-names to be ables to search "tiger"... that database will return "panthera tigris tigris"... And then you can start crawling up and down the tree branches to search for animals related to tigris tigris, by counting brackets and marking species close to that name. 

To prevent the tree exploding to 5000 animals, you can 
1/define a search depth. Depth 5, Five, will not go further than five brackets: (((((panthera_tigris_tigris)(lion)(cheetah)))))
2/represent a random fraction of the species (1/100 gives 50 animals from a 5000 tree)
3/use statistics measures to select certain animals based on data mining. 

If you want to travel from whales to monkeys, you will have most of the mammalian family, and you will be able to count nodes and brackets by the dozens. 

Not that parsing 5000 species has a big computational load that can take 1 hour to read through once, let alone 40 times!

Whichever statistics you are using to measure similarity, number of brackets / genetic distance numbers, you should have once represented trees as branches, nodes and leaves, because that is what tree data is meant to represent. 

I'd recommend that you draw a tree using nodes and random animal selection, like 1% chance the animal is drawn in the final tree. When your tree has branches and is drawing OK, change the 1% selection line for the complex MST / MCD selection.