Hello Tuna,
Thank you for posting question on Microsoft Windows Forum!
Based on your query of removing 239.0.12.1 address from the loopback interface and joined to interface 15. Well! The fact of the matter is that you cannot manually "delete or remove" a joined multicast address from an interface while it is active. Multicast joins are dynamic and tied directly to open network sockets created by applications. As long as the application is running and asking for that group, the OS is going to keep that join alive on whatever interface it originally picked. Windows chooses which interface to use based on its routing table and metrics at the exact moment the application joins the group.
Based on the above scenario, you can consider lowering the interface metric of interface 15. Since Windows calculates the total cost of a route by adding the Route Metric + Interface Metric. Loopback adapters often have extremely low default metrics, making them win the priority battle. You can try to give Interface 15 the highest priority on your system by forcing the interface metric of Interface 15 to be 1 (the highest priority possible). To make sure the Loopback adapter is not still competing with a metric of 1, you can check all your interface metrics by running this command netsh interface ipv4 show interfaces
You can refer to the following articles for more information regarding your concerns.
- https://learn.microsoft.com/en-us/windows/win32/winsock/ipproto-ip-socket-options
- https://learn.microsoft.com/en-us/windows/win32/api/ws2ipdef/ns-ws2ipdef-ip_mreq
Hope the above information is helpful! If it is. Free feel to hit "Accepted" for benefitting others in community having the same issue too.