Just a bit of my experience, I am a programmer and long time affiliate and MLM representative, I created two plugins for WordPress designed to help affiliates build their businesses using distributed traffic based on affiliate performance, i.e. send traffic to site, convert to sales and affiliate signups and you get bonus traffic from the site directly... etc.
There really isn't any difference between 'affiliate' software and 'MLM' software, typically however most Affiliate programs ONLY pay 1 level or 2 levels, i.e. on your personal sales and possibly on the sales of your 1st level affiliates on your team.
Most MLM programs also have a fee to join, affiliate programs do not, they are free to join and do not have requirements such as # of new reps to enroll, etc., in order to earn commissions, you send sales, you get paid, with MLM you may have to 'qualify' to earn in the program, which usually means recruiting 2 or more new reps to get qualified to earn, etc.
Here is a script we use on for our company affiliate program, it is a WordPress Plugin called AffiliateWP, I AM NOT affiliated with this plugin, I am only a customer of their product. They have several addons which would allow you to take the standard affiliate program and run as a MLM with multiple levels of affiliate sales commission payouts, you can decide what you want to run for your program and have a ton of flexibility.
The script is 'open source' so if you are like me and have custom needs for your program, you can develop around it and create what you need. For example, I needed the script to work with WHMCS, our shopping cart, which wasn't supported by AffiliateWP, so I just wrote the code to integrate, that and also to integrate with another system to reward traffic to our affiliates for sales, etc.
You will find that most MLM or Affiliate program scripts on the market are encoded if they are not a WordPress plugin, thus difficult to create custom solutions if you need to, leaving you having to seek paid support from the script vendor, expensive....
I hope all this helps you in your quest!
Let me know if I can help with any further questions you may have.
Attention: "role based name" email prefixes such as support, webmaster, info, contact, forum, service, affiliate, admin, traffic, partners, marketing, etc., for our member accounts are not permitted. They are acceptable for a vendor listing, but not for the member email. This is due to bulk email processors scrubbing them for delivery due to extremely high bounce rates. Please apply for membership using a personalized email prefix. Something like email@example.com.
If we discover you signed up with a role based name we will give you only one message to change it. After 3 days your account will be removed if the email is not changed.